昨天簡單介紹了istio,今天來詳細講講istio是怎麼運作的
在istio 架構中,分為Data Plane 與 Control Plane,藉由兩者彼此合作,來達成istio 的核心功能,包括流量控制、可觀測性、安全性與容錯等機制。
使用開源專案Envoy 作為代理,且該代理通常被部屬於微服務旁,在Kubernetes中,也就是與微服務的Pod一同部屬,此部屬模式被稱為Sidecar。Sidecar負責協調和控制微服務之間的所有通訊,還可以蒐集所有流量與數據。簡單來說此代理會攔截進到微服務的所有流量,進行各種操作。
Control Plane 負責各項功能的集成與管理Data Plane中的代理,其中包括各項配置、服務發現與路由等。
Control Plane 包含了以下組件,分別為
服務發現:蒐集所有網格中的服務發現訊息並發送給各個代理,使其能進行正確的路由
配置管理:管理並配置代理的路由規則、負載平衡與故障復原等策略。
身分驗證:為微服務之間的通訊提供安全配置如:強身分驗證與mTLS加密等。
證書管理:為微服務簡化證書管理,包括證書的生成、輪換與管理
配置驗證:負責驗證配置的合法與正確性。
配置分發:將經過驗證的配置分給其他控制平面,確保控制平面間配置的一致性。
配置管理:提供配置管理與分發,包括版本控制與回滾等
以上元件都被整合至istiod中,所以之後在安裝時只需要安裝istiod就可以包含以上功能了