本文参照jimmysong
的安装并试用Istio service mesh以及Istio官网 Setup。
本文安装Istio0.5.1.
先决条件:拥有k8s集群。
1.下载安装包
首先使用如下命令下载istio0.5.1安装包
wget https://github.com/istio/istio/releases/download/0.5.1/istio-0.5.1-linux.tar.gz
2.解压并查看文件结构
tar -xzvf istio-0.5.1-linux.tar.gz
然后安装软件tree,以方便查看文件的树形结构。
yum install tree
之后进入istio目录
cd istio-0.5.1
tree
输出结果(省略部分,这里直接扒的jimmysong
的图。。。比较懒)
├── bin
│ └── istioctl
├── install
│ ├── ansible
│ ├── consul
│ ├── eureka
│ ├── gcp
│ ├── kubernetes
│ ├── README.md
│ └── tools
├── istio.VERSION
├── LICENSE
├── README.md
├── samples
│ ├── bookinfo
│ ├── CONFIG-MIGRATION.md
│ ├── helloworld
│ ├── httpbin
│ ├── kubernetes-blog
│ ├── rawvm
│ ├── README.md
│ └── sleep
└── tools
├── cache_buster.yaml
├── deb
├── githubContrib
├── minikube.md
├── perf_istio_rules.yaml
├── perf_k8svcs.yaml
├── README.md
├── rules.yml
├── setup_perf_cluster.sh
├── setup_run
├── update_all
└── vagrant
在使用这个命令前,我们需要将istioctl命令添加到PATH环境变量中。
$ export ISTIO_HOME=~/istio-0.5.1(将这个换为自己的istio安装路径)
$ export PATH=$ISTIO_HOME/bin:$PATH
然后执行
kubectl apply -f install/kubernetes/istio.yaml
kubectl apply -f install/kubernetes/istio-auth.yaml
这两个选项都会创建istio-system命名空间以及所需的RBAC权限,并部署Istio-Pilot,Istio-Mixer,Istio-Ingress和Istio-CA(证书颁发机构)。
然后我们验证一下istio是否安装完毕:
kubectl get svc -n istio-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-ingress LoadBalancer 172.21.6.103 47.95.49.189 80:30625/TCP,443:31403/TCP 15d
istio-mixer ClusterIP 172.21.3.232 <none> 9091/TCP,15004/TCP,9093/TCP,9094/TCP,9102/TCP,9125/UDP,42422/TCP 15d
istio-pilot ClusterIP 172.21.12.55 <none> 15003/TCP,8080/TCP,9093/TCP,443/TCP 15d
kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istio-ca-797dfb66c5-bcszg 1/1 Running 1 14d
istio-ingress-84f75844c4-2rlf5 1/1 Running 1 14d
istio-mixer-9bf85fc68-wpzrn 3/3 Running 3 14d
istio-pilot-575679c565-8769d 2/2 Running 2 14d
只要这几个pod起来了就ok。至此,验证完毕,istio安装成功。