Istio 动手玩

09 Jun 2019

安装

获取 Istio 安装包

Istio Git 下载最新的二进制包(注意不一定是排在第一位的),上传到 k8s 的 master 节点,执行:

tar zxvf istio-*

修改镜像来源

大家应该看出套路了,凡是在国内或者内网倒腾 k8s 系列玩具,总免不了要在容器镜像上下点文章。不过 istio 的大部分镜像都是在 docker hub 上的,没有用到 gcr,会省事很多。首先获取镜像列表。

cd istio-*/install/kubernetes
grep -r image: istio-demo.yaml | egrep -o -e "image:.*" | sort | uniq

大概输出如下:

image: "docker.io/istio/citadel:1.1.8"
image: "docker.io/istio/galley:1.1.8"
image: "docker.io/istio/kubectl:1.1.8"
image: "docker.io/istio/kubectl:1.1.8"
image: "docker.io/istio/mixer:1.1.8"
image: "docker.io/istio/pilot:1.1.8"
image: "docker.io/istio/proxy_init:1.1.8"
image: "docker.io/istio/proxyv2:1.1.8"
image: "docker.io/istio/sidecar_injector:1.1.8"
image: "docker.io/jaegertracing/all-in-one:1.9"
image: "docker.io/kiali/kiali:v0.16"
image: "docker.io/prom/prometheus:v2.3.1"
image: "grafana/grafana:6.0.2"
image: [[ annotation .ObjectMeta `sidecar.istio.io/proxyImage`  "docker.io/istio/proxyv2:1.1.8"  ]]

这些 docker.io 开头需要 login,所以也建议先抓下来。

如有必要,可以修改 install/kubernetes/helm/istio-init/values.yaml 中的镜像地址。

准备模板文件

执行:

helm template install/kubernetes/helm/istio --name istio --namespace istio-system > my-istio.yaml

部署集群

执行:

kubectl create ns istio-system
kubecty apply -f my-istio.yaml

查看 Istio 服务状态

执行:

kubectl get pod -n istio-system -w