https://istio.io/latest/zh/docs/setup/install/istioctl/ (官方文档)
https://istio.io/latest/zh/docs/setup/getting-started/#dashboard (入门教程—bookinfo)
安装
检查 Istio 状态
kubectl get pods -n istio-system

开启边车
默认 Istio 不会开启 Sidecar 注入,这个需要我们手动开启。
我们可以通过给命名空间 default 打上 label,让我们部署的 Pod 自动打开 Sidecar。
kubectl label ns default istio-injection=enabled
部署测试样例bookinfo应用

https://istio.io/latest/zh/docs/examples/bookinfo/
Bookinfo 应用中的几个微服务是由不同的语言编写的。 这些服务对 Istio 并无依赖,但是构成了一个有代表性的服务网格的例子:它由多个服务、多个语言构成,并且 reviews 服务具有多个版本。
部署
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
查看资源
开启istio网关—让外部可以访问
https://istio.io/latest/zh/docs/tasks/traffic-management/ingress/ingress-control/
kubectl delete -f samples/bookinfo/networking/bookinfo-gateway.yaml
网关需要配置vitrueService才能使用
apiVersion: networking.istio.io/v1alpha3kind: Gatewaymetadata:name: bookinfo-gatewayspec:selector:istio: ingressgateway # use istio default controllerservers:- port:number: 80name: httpprotocol: HTTPhosts:- "*"---apiVersion: networking.istio.io/v1alpha3kind: VirtualServicemetadata:name: bookinfospec:hosts:- "*"gateways:- bookinfo-gatewayhttp:- match:- uri:exact: /productpage- uri:prefix: /static- uri:exact: /login- uri:exact: /logout- uri:prefix: /api/v1/productsroute:- destination:host: productpageport:number: 9080
访问异常—503
解决
暂时没搞明白具体原因,跟着issuse走,解决了问题
https://github.com/istio/istio/issues/14942
kubectl -n istio-system delete pod $(kubectl -n istio-system get pod -lapp=istio-ingressgateway -ojsonpath=’{.items[0].metadata.name}’)
访问bookinfo正常
开启Istio 的控制面板服务 kiali
https://istio.io/latest/zh/docs/ops/integrations/kiali/
Istio 提供了一个基础的安装示例用于快速使用和运行 Kiali:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.12/samples/addons/kiali.yaml
解决国内镜像问题
https://www.imlc.me/zai-guo-nei-ru-he-la-qu-quay.io-de-jing-xiang
重新部署
开启kali web UI
istioctl dashboard kiali
如果zsh找不到istioctl,则
~/istio-1.12.2/bin/istioctl dashboard kiali
网络可视化—通过kiali观测
https://istio.io/latest/zh/docs/tasks/observability/kiali/
通过浏览器访问服务,可以实时在kiali看到网络流量拓扑图
下图可以看到流量通过istio-gateway —> vitrue service —> sidecar —> 实际的应用服务容器






