天天看點

ServiceMesh(istio)系統實踐

環境說明:本人在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 個紅色星形圖示來顯示評分資訊。
ServiceMesh(istio)系統實踐

部署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/

繼續閱讀