Istio 來自希臘語,英文意思是“ Sail”,中文是“啟航”之意。Istio 的底層實現依賴Envoy,并且直接定位于Kubernetes 平台。
Istio 與希臘語為“舵手”的Kubernetes結合在一起,意思就是“掌舵啟航”。
Service Mesh - 是一個用于處理服務與服務之間通信(調用)的複雜的基礎架構設施。
Service Mesh 通常是一組輕量級的網絡代理程序,這些網絡代理程序就部署在用戶的應用程序旁邊(Sidecar),而應用代碼感知不到它們的存在。
Istio 将會成為市場主流,因為Istio 開源、免費,而且還有巨頭們的大力支持,小清新的Conduit 則會在中小企業中赢得一定的口碑和市場份額。
服務網格Service Mesh 原理從ServiceA到ServiceB的訪問流量,要先後經過ServiceA的Sidecar層、ServiceA 所在機器的TCP/IP網絡棧,之後通過網絡到達ServiceB所在機器的TCP/IP網絡棧、ServiceB的Sidecar 層,之後才能抵達ServiceB 服務層。
Service Mesh産品更适合部署在容器環境中。
Sidecar 非常類似于傳統網絡中的“智能路由器”。
依托Sidecar,Service Mesh 提供了包括服務路由、負載均衡、流量控制、熔斷機制、服務安全及服務監控等高級功能在内的、采用全新思路的無侵入的一整套微服務架構解決方案。
Pilot(Istio-Manager)
Pilot 提供給Envoy 的主要是配置相關的接口,如服務發現、負載均衡池、路由表動态更新。
Envoy API 負責和Envoy 通信,主要用來發送服務發現信息、服務路由表、流量控制規則給Envoy 實例。
Mixer用來實現服務與周邊基礎設施的隔離問題;
Mixer 采用了插件機制,每個插件都被稱為适配器,比如日志插件、監控插件、配額插件、ACL插件等;
策略(Policy) - (1)服務訪問限速(Rate Limit);(2)黑白名單(Blacklist、Whitelist)
Citadel(Istio-Auth)負責解決微服務架構中的安全問題。
Citadel 首先會創建 Kubernetes Secret 來保存Service的私鑰和證書,然後通過 Kubernetes Volume将Secret中的私鑰和證書映射到容器裡。
這樣,兩個Service 就可以在彼此對應的代理,即Envoy之間,建立一個加密的TLS通道來實現數據傳輸的安全了。
Envoy 與對應的Service 之間,還是普通的TCP 傳輸,因為它們是本地 Socket通信,并不通過網絡。
Service Mesh 産品提供的基本功能:,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!