使用istio可以很簡單的創建Service Mesh,而不需要對Service的程式碼進行任何修改與添加。你只需要在Deployment的時候,Ex:Kubernetes的pod Injection一個特別的sidecar proxy,在Istio Default Injection採用的是Envoy Proxy,用來管理服務之間的連接。
自動針對HTTP,gRPC,WebSocket和TCP流量的做負載平衡。
可以對流量進行細微控制,Ex:路由規則,重試,故障轉移和故障注入。
提供集群入口(ingress)和出口(egress)以及完整的Tracing,Metrics and Logs。
如果是採用這篇[Day06]如何安裝Istio Use Helm
K3d的Istio服務應該會是下面的狀況
Istio Pods
Istio Service
會發現到與上圖的istio Architecture基本上相去不遠,因為我們是採用Demo的設定值進行Deployment,會有許多非Istio的服務一起被Deployment,如果只想Deployment純Istio服務可以參考這邊。
Istio的最強大之處就是採用Sidecar的概念,讓開發者把許多跟網路相關以及路由規則等設定,直接切割給Istio去做,降低程式碼對於環境的相依性,明天會開始針對Istio各服務的功能以及Envoy Proxy做更詳細的介紹。
IstioServiceMesh
IstioArchitecture