sidecar构架之istio部署实践(k8s)
istio安装
命令行下载Istio
1 | curl -L https://istio.io/downloadIstio | sh - |
安装目录包含:
- samples/ 目录下的示例应用程序
- bin/ 目录下的 istioctl 客户端二进制文件。
把bin目录下的istioctl添加到PATH,方便后续使用istioctl命令操作。
1 | export PATH=$PWD/bin:$PATH |
安装istio:
1 | istioctl install --set profile=demo -y |
卸载
1 | istioctl uninstall --purge |
注入代理
给命名空间添加标签,指示 Istio 在部署应用的时候,自动注入 Envoy 边车代理:
1 | kubectl label namespace default istio-injection=enabled |
实践
- 部署
1
2kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml - 将LB修改为NodePort查看80绑定的端口为30984
1
kubectl patch service istio-ingressgateway -n istio-system -p '{"spec":{"type":"NodePort"}}'
1
kubectl -n istio-system get service istio-ingressgateway
- 本地
1
2export INGRESS_HOST=127.0.0.1
export INGRESS_PORT=30984 - 最终网关地址
1
export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT