istio环境安装

istio官网地址

  • istio中文

istio安装三步走:

  • 搭建kubernets平台:已完成
  • 下载istio
    istio下载地址
[root@192 ~]# wget https://github.com/istio/istio/releases/download/1.6.3/istio-1.6.3-linux-amd64.tar.gz
  • 安装istio->环境准备
    • 解压
[root@192 ~]# tar -zvxf istio-1.6.3-linux-amd64.tar.gz 
  • 切换到 Istio 包所在目录下。例如:Istio 包名为 istio-1.6.3,则:
[root@192 ~]# cd istio-1.6.3
[root@192 istio-1.6.3]# pwd
/root/istio-1.6.3
[root@192 istio-1.6.3]#   
  • 安装目录包含如下内容:
    nstall/kubernetes 目录下,有 Kubernetes 相关的 YAML 安装文件
    samples/ 目录下,有示例应用程序
    bin/ 目录下,包含 istioctl 的客户端文件。istioctl 工具用于手动注入 Envoy sidecar 代理。
[root@192 istio-1.6.3]# ls
bin  LICENSE  manifests  manifest.yaml  README.md  samples  tools
[root@192 istio-1.6.3]# 
  • 将 istioctl 客户端路径增加到 path 环境变量中,macOS 或 Linux 系统的增加方式如下:
[root@192 istio-1.6.3]# export PATH=$PWD/bin:$PATH
[root@192 istio-1.6.3]# 

安装istio:

安装须知:

下表中标记为 X 的组件就是包含在配置文件里的内容:

image.png

为了进一步自定义 Istio 和安装插件,您可以在安装 Istio 时所使用的 istioctl manifest 命令中添加一个或多个 --set = 选项。 安装选项中列出了完整的当前所支持的安装键值对集合

  • 安装 demo 配置:中间可能会出错,反复运行几遍
[root@192 istio-1.6.3]# istioctl manifest apply --set profile=demo
  • 为了验证是否安装成功,需要先确保以下 Kubernetes 服务正确 :
[root@192 istio-1.6.3]# kubectl get svc -n istio-system
NAME                        TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                      AGE
grafana                     ClusterIP      10.104.219.172           3000/TCP                                                                     16h
istio-egressgateway         ClusterIP      10.109.152.218           80/TCP,443/TCP,15443/TCP                                                     16h
istio-ingressgateway        LoadBalancer   10.104.232.15         15020:31400/TCP,80:32650/TCP,443:30151/TCP,31400:32330/TCP,15443:32481/TCP   16h
istiod                      ClusterIP      10.96.73.45              15010/TCP,15012/TCP,443/TCP,15014/TCP,53/UDP,853/TCP                         16h
jaeger-agent                ClusterIP      None                     5775/UDP,6831/UDP,6832/UDP                                                   16h
jaeger-collector            ClusterIP      10.108.17.66             14267/TCP,14268/TCP,14250/TCP                                                16h
jaeger-collector-headless   ClusterIP      None                     14250/TCP                                                                    16h
jaeger-query                ClusterIP      10.100.47.16             16686/TCP                                                                    16h
kiali                       ClusterIP      10.104.219.35            20001/TCP                                                                    16h
prometheus                  ClusterIP      10.101.160.56            9090/TCP                                                                     16h
tracing                     ClusterIP      10.110.74.146            80/TCP                                                                       16h
zipkin                      ClusterIP      10.109.61.247            9411/TCP                                                                     16h
[root@192 istio-1.6.3]# 
  • 如果集群运行在一个不支持外部负载均衡器的环境中(例如:minikube),istio-ingressgateway 的 EXTERNAL-IP 将显示为 状态。请使用服务的 NodePort 或 端口转发来访问网关

请确保关联的 Kubernetes pod 已经部署,并且 STATUS 为 Running

[root@192 istio-1.6.3]# kubectl get pods -n istio-system
NAME                                    READY   STATUS    RESTARTS   AGE
grafana-b54bb57b9-tlgl8                 1/1     Running   1          16h
istio-egressgateway-77c7d594c5-8szp5    1/1     Running   1          16h
istio-ingressgateway-766c84dfdc-d6tdp   1/1     Running   1          16h
istio-tracing-9dd6c4f7c-8n2zr           1/1     Running   2          16h
istiod-7b69ff6f8c-lwth5                 1/1     Running   1          16h
kiali-d45468dc4-2d7p9                   1/1     Running   1          16h
prometheus-5fdfc44fb7-9vxh9             2/2     Running   2          16h
[root@192 istio-1.6.3]# 
  • 安装 Istio 后,就可以部署您自己的服务,或部署安装程序中系统的任意一个示例应用

当使用 kubectl apply 来部署应用时,如果 pod 启动在标有 istio-injection=enabled 的命名空间中,那么,Istio sidecar 注入器将自动注入 Envoy 容器到应用的 pod 中:

[root@192 istio-1.6.3]# kubectl label namespace default istio-injection=enabled    
namespace/default labeled
[root@192 istio-1.6.3]# 
  • 在没有 istio-injection 标记的命名空间中,在部署前可以使用 istioctl kube-inject 命令将 Envoy 容器手动注入到应用的 pod 中
istioctl kube-inject -f .yaml | kubectl apply -f -

卸载

- 卸载程序将删除 RBAC 权限、istio-system 命名空间和所有相关资源。可以忽略那些不存在的资源的报错,因为它们可能已经被删除掉了。

istioctl manifest generate --set profile=demo | kubectl delete -f -

你可能感兴趣的:(istio环境安装)