服務網格Service Mesh & Istio重要概念

服務網格Service Mesh & Istio 基本概念

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 & Istio重要概念

Service Mesh產品更適合部署在容器環境中。

Sidecar 非常類似於傳統網絡中的“智能路由器”。

依託Sidecar,Service Mesh 提供了包括服務路由、負載均衡、流量控制、熔斷機制、服務安全及服務監控等高級功能在內的、採用全新思路的無侵入的一整套微服務架構解決方案。

服務網格Service Mesh & Istio重要概念

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 產品提供的基本功能:

  • 服務發現、服務路由;
  • 負載均衡、服務熔斷;
  • 安全的TLS服務間通信;
服務網格Service Mesh & Istio重要概念


分享到:


相關文章: