Istio架构概览
文章目錄
- Istio工作機制
- 工作機制
- 服務模型
- 服務模型約束
- istio服務
- istio服務版本
- istio服務實例
- istio的主要組件
- istio-pilot
- istio-telemetry
- istio-policy
- istio-citadel
- istio-galley
- istio-sidecar-injector
- istio-proxy
- istio-ingressgateway
- 其它組件
- 博客原文
Istio工作機制
Istio主要架構分為控制面和數據面兩部分。
數據面: Envoy
控制面: Pilot、Mixer、Citadel
工作機制
服務模型
由istio服務、服務版本、服務實例幾個對象構成
服務模型約束
- 端口命名: name: <protocol>[-<suffix>],協議支持常用的服務協議,如mysql、redis,如無指定,默認為tcp協議
- 服務關聯: pod需要關聯到服務
- deployment使用app和version標簽: 區分版本
istio服務
k8s只要滿足上文提到的服務模型約束,就可以轉為 istio 的服務并配置規則進行流量治理。如最小的k8s模型加上端口命名
k8s主體是 workload,istio 的對象主體是 service,沒有訪問方式的workload 不是 istio 治理對象。Kubernetes 的 Service 定義 就是 Istio 服務 的 元 數據。
istio服務版本
通過deployment的app: service-name 來關聯服務。 通過version: v<version> 標簽來區分服務不同版本。 可以根據這個實現灰度發布等功能。
istio服務實例
Istio 的 ServiceInstance 主要包括 Endpoint、 Service、 Labels、 AvailabilityZone 和 ServiceAccount 等屬性, Endpoint 是其中最主要 的屬性,表示這個實例對應的網絡后端( ip: port), Service 表示這個服務 實例歸屬的服務。
istio的主要組件
kubectl get svc -n istio-system 可以查看完整組件列表
istio-pilot
pilot領航員的意思,顧名思義,是istio的控制中樞,向數據平面下發規則。
包括 VirtualService、DestinationRule、Gateway、ServiceEntry等一系列的流量治理規則。將規則轉換成Envoy規則,通過xDS協議發送給Envoy。Envoy平時通過gRPC流式訂閱Pilot的配置資源。
istio-telemetry
Mixer服務組件之一,專門收集遙測數據。服務間交互時,兩邊的Envoy均會將遙測數據上報給該組件。
istio-policy
Mixer服務組件之一,機制和流程同telemetry。 作用主要是服務間調用時,兩邊Envoy均會請求istio-policy來檢查接口是否允許訪問。
istio-citadel
citadel是城堡,象征著安全。是istio平時容易忽視但是又很重要的組件。負責自動生成、分發、輪換、撤銷密鑰和證書。它會監聽apiserver,以secret形式為每個服務生成證書,并在pod創建時掛載到創建的pod上。可以建立雙向TLS通道。
istio-galley
galley是戰艦。負責配置管理,驗證配置信息格式和正確性。并提供這些配置給Pilot和Mixer使用。
istio-sidecar-injector
負責注入組件。只要開啟了自動注入。它會監聽apiserver,當有Pod創建的時候,講sidecar容器 istio-proxy(Envoy)注入到原來Pod中,并修改iptables來將請求都經過Envoy。
istio-proxy
istio中的輕量數據代理,默認是用Envoy實現。istio-proxy容器中除了有Envoy,還有pilot-agent的守護進程。
istio-ingressgateway
入口網關。外部訪問內部服務都經過它。是一個LoadBalance類型的Service
其它組件
除了以“ istio” 為前綴的以上幾個 Istio 自有的組件,在集群中一般還安裝 Jaeger- agent、 Jaeger- collector、 Jaeger- query、 Kiali、 Prometheus、 Tracing、Zipkin 組件,這些組件提供了 Istio 的調用鏈、 監控等功能,可以選擇安裝來完成完整的服務監控管理功能。
博客原文
- Istio架構概覽
總結
- 上一篇: contentprovider数据获取
- 下一篇: 中兴手机怎么与计算机连接网络,中兴v5怎