一、service mesh概述
Service Mesh 的中文譯為 “服務網格” ,是一個用於處理服務和服務之間通信的基礎設施層,它負責為構建復雜的雲原生應用傳遞可靠的網絡請求,並為服務通信實現了微服務所需的基本組件功能,例如服務發現、負載均衡、監控、流量管理、訪問控制等。在實踐中,服務網格通常實現為一組和應用程序部署在一起的輕量級的網絡代理,但對應用程序來說是透明的。
上圖,綠色方塊為應用服務,藍色方塊為 Sidecar Proxy,應用服務之間通過 Sidecar Proxy 進行通信,整個服務通信形成圖中的藍色網絡連線,圖中所有藍色部分就形成一個網絡,這個就是服務網格名字的由來。
二、service mesh特點
1、治理能力獨立
2、應用程序無感知
3、服務通信的基礎設施層
4、解耦應用程序的重試、超時、監控、追蹤和服務發現
三、istio概述
1、架構與組件組成
1) 數據平面
由一組proxy組成,這些Proxy負責所有微服務網絡通信,實現高效轉發和策略。使用envoy實現,envoy是一個基於C++實現的L4/L7 Proxy轉發器,是Istio在數據平面唯一的組件。
2) 控制平面
使用全新的部署模式:
istiod,這個組件負責處理Sidecar注入、證書分發、配置管理等功能,替代原有組件,降低復雜度,提高易用性。
•
Pilot:策略配置組件,為Proxy提供服務發現、智能路由、錯誤處理等。
•
Citadel:安全組件,提供證書生成下發、加密通信、訪問控制。
•
Galley:配置管理、驗證、分發。
2、版本變化
1.5版本之后棄用了mixer
將原有多個組件整合為 istiod
3、可配置資源
1)VirtualService(虛擬服務)
實現服務請求路由規則的功能。
2)DestinationRule(目標規則)
實現目標服務的負載均衡、服務發現、故障處理和故障注入的功能。
3)Gateway(網關)
讓服務網格內的服務,可以被全世界看到。
4)ServiceEntry(服務入口)
允許管理網格外的服務的流量。
4、可實現功能
1)連接(Connect)
1)流量管理
2)負載均衡
3)灰度發布
2)安全(Secure)
1)認證
2)鑒權
3)控制(Control)
1)限流
2)ACL
4)觀察(Observe)
1)監控
2)調用鏈
