本地安装 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专业版):https://www.cnblogs.com/samwu/p/10360943.html
开启 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/