​Release Istio 1.11.4 · istio/istio · GitHubConnect, secure, control, and observe services. Contribute to istio/istio development by creating an account on GitHub.https://github.com/istio/istio/releases/tag/1.11.4​

本地安装 kubernetes,可以用 Docker Desktop、Minikube、VM,本文选用 Docker Desktop,主要需要安装的:Docker、kubernetes、istio。

Docker Desktop for Windows 安装
下载地址:https://hub.docker.com/editions/community/docker-ce-desktop-windows 默认安装即可。

安装 docker 遇到 windows 10 家庭版的问题,解决办法(开启Hyper-V、伪装成win10专业版)

开启 Kubernetes
完全参照:https://github.com/AliyunContainerService/k8s-for-docker-desktop 

开启后访问 k8s dashboard 的地址:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/overview?namespace=default

Tip:

windows上使用 PowerShell 执行脚本
阿里云加速,"registry-mirrors": ["https://quafwto8.mirror.aliyuncs.com"]
Helm 没有安装
istio 安装
istio 下载地址:https://github.com/istio/istio/releases/tag/1.6.8,istio-1.6.8-win.zip
istio 安装:zip 解压后,在 bin 目录下 cmd 运行 istioctl manifest apply --set profile=demo
bookinfo
安装参考:https://istio.io/latest/docs/examples/bookinfo/

到 istio 目录下运行: 自动注入 sidecar,部署 bookinfo

kubectl label namespace default istio-injection=enabled
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
kubectl get pods 可以看到多个 pods Running状态,而且是 2/2(默认注入了 sidecar)

确认示例应用在运行中:kubectl exec -it $(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}') -c ratings -- curl productpage:9080/productpage

export GATEWAY_URL=localhost:80 这步没有做,访问页面成功:http://localhost/productpage

开启 kiali
参考:https://istio.io/latest/docs/tasks/observability/kiali/

在 istio bin 目录下运行 .\istioctl dashboard kiali

打开显示的地址,默认用户名密码:admin admin

Graph (Namespace:default, Versioned app graph)可以看到 bookinfo 的 拓扑图

开启 grafana
参考:https://istio.io/latest/docs/tasks/observability/metrics/using-istio-dashboard/

利用 bookinfo 学习 istio 配置
配置请求路由,https://istio.io/latest/zh/docs/tasks/traffic-management/request-routing/

故障注入(在路由里注入一个延时,或者直接500),https://istio.io/latest/zh/docs/tasks/traffic-management/fault-injection/

流量转移(逐步将流量从一个版本的微服务迁移到另一个版本),https://istio.io/latest/zh/docs/tasks/traffic-management/traffic-shifting/

熔断(配置最大连接数),https://istio.io/latest/zh/docs/tasks/traffic-management/circuit-breaking/