本文记录用 demo 配置 + DaoCloud 镜像 + 阿里云 SLB 一键安装 Istio 1.22.3,并部署示例应用与插件。
1. 下载 Istio 参考官方文档 下载对应版本的安装文件。我这里下载的是1.22.3 版本。
blaze@MACBOOK ~ % istioctl version client version: 1.22.3 control plane version: 1.22.3 data plane version: 1.22.3 (4 proxies)
2. 安装 Istio 一键安装(demo profile + DaoCloud 镜像 + 指定 SLB)
istioctl install \ --set hub=docker.m.daocloud.io/istio \ --set tag=1.22.3 \ --set profile=demo \ --set values.gateways.istio-ingressgateway.serviceAnnotations.'service\.beta\.kubernetes\.io/alibaba-cloud-loadbalancer-id' ="lb-xxxxxxxxxxxxxxxxxxxxx" \ --set values.gateways.istio-ingressgateway.serviceAnnotations.'service\.beta\.kubernetes\.io/alibaba-cloud-loadbalancer-force-override-listeners' ="true" \ --set values.gateways.istio-ingressgateway.serviceAnnotations.'service\.beta\.kubernetes\.io/alibaba-cloud-loadbalancer-address-type' ="intranet" \ --set values.gateways.istio-ingressgateway.serviceAnnotations.'service\.beta\.kubernetes\.io/alibaba-cloud-loadbalancer-ip-version' ="ipv4" \ -y kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \ { kubectl kustomize "github.com/kubernetes-sigs/gateway-api/config/crd?ref=v0.6.0" | kubectl apply -f -; }
3. 部署示例应用 参考官方文档 部署一个简单的服务。
blaze@MACBOOK ~ % k get po -n blazehu NAME READY STATUS RESTARTS AGE rollout-demo1-64bdbc558c-flvtf 1/1 Running 0 29s rollout-demo1-64bdbc558c-gt26s 1/1 Running 0 29s rollout-demo1-64bdbc558c-kd7n4 1/1 Running 0 29s blaze@MACBOOK ~ % kubectl label namespace blazehu istio-injection=enabled namespace/blazehu labeled blaze@MACBOOK ~ % k get po -n blazehu NAME READY STATUS RESTARTS AGE rollout-demo1-64bdbc558c-5789g 2/2 Running 0 3m46s rollout-demo1-64bdbc558c-8vp8s 2/2 Running 0 3m46s rollout-demo1-64bdbc558c-ncwzl 2/2 Running 0 3m46s
4. 安装插件 安装Kiali 和其他插件 。
kubectl apply -f samples/addons kubectl apply -f samples/addons/kiali.yaml kubectl apply -f samples/addons/prometheus.yaml istioctl dashboard kiali
5. 卸载 Istio 卸载 Istio(防止 webhook/CRD 残留)
kubectl delete -f samples/addons istioctl uninstall --purge -y kubectl delete namespace istio-system kubectl delete mutatingwebhookconfiguration istio-revision-tag-default --ignore-not-found kubectl delete validatingwebhookconfiguration istiod-istio-system --ignore-not-found