環境說明:本人在Mac Os系統i7、16G下,使用Docker for Mac安裝kubernetes随後開展後續的實操。
Docker版本:20.10.2
k8s版本:1.19.3
Istio版本:1.8.1
Istio安裝
安裝istioctl
基于brew一鍵安裝
istioctl是指令操作istio的工具
brew install istioctl
安裝Istio-operator
istio-operator是用來安裝部署,自動運維istio的工具
istioctl operator init
安裝Istio-system
kubectl create ns istio-system
kubectl apply -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: example-istiocontrolplane
spec:
profile: demo
EOF
Istio可選元件控制
https://istio.io/latest/zh/docs/setup/additional-setup/config-profiles/
檢查安裝情況
kubectl get svc -n istio-system
kubectl get pods -n istio-system
Istio實踐
自動注入
标記istio-injection=enabled後,namespace可以自動注入
kubectl label namespace default istio-injection=enabled
bookinfo架構
Bookinfo 應用分為四個單獨的微服務:
- productpage. 這個微服務會調用 details 和 reviews 兩個微服務,用來生成頁面。
- details. 這個微服務中包含了書籍的資訊。
- reviews. 這個微服務中包含了書籍相關的評論。它還會調用 ratings 微服務。
- ratings. 這個微服務中包含了由書籍評價組成的評級資訊。
reviews 微服務有 3 個版本:
- v1 版本不會調用 ratings 服務。
- v2 版本會調用 ratings 服務,并使用 1 到 5 個黑色星形圖示來顯示評分資訊。
- v3 版本會調用 ratings 服務,并使用 1 到 5 個紅色星形圖示來顯示評分資訊。
部署bookinfo-demo
部署bookinfo-demo,在istio項目的samples目錄下
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
測試bookinfo-demo部署成功
建立bookinfo-gateway
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
Istio對接skywalking可觀測性
todo
使用Nacos作為注冊中心
todo
跟進産品
https://www.tetrate.io/