官網
Istio 是一個開放的、與平臺無關的服務網格,提供了流量管理,策略下發,和遠程收集能力。
什么是服務網格?
現代應用程序通常被設計成微服務的分布式集合,每個服務執行一些離散的業務功能。服務網格是專門的基礎設施層,包含了組成這類體系結構的微服務網絡。 服務網格不僅描述了這個網絡,而且還描述了分布式應用程序組件之間的交互。所有在服務之間傳遞的數據都由服務網格控制和路由。
功能包括發現、負載均衡、故障恢復、度量和監視。微服務體系結構通常還有更復雜的操作需求,比如 A/B 測試、金絲雀部署、速率限制、訪問控制、加密和端到端身份驗證。
Istio特點
Istio 是一個開源服務網格,Istio 的控制平面運行在Kubernetes上。您可以將部署在該集群中的應用程序添加到您的網格中,將網格擴展到其他集群,甚至連接 VM 或運行在 Kubernetes 之外的其他端點。
- 使用 TLS 加密、強身份認證和授權的集群內服務到服務的安全通信
- 自動負載均衡的 HTTP、gRPC、WebSocket 和 TCP 流量
- 通過豐富的路由規則、重試、故障轉移和故障注入對流量行為進行細粒度控制
- 一個可插入的策略層和配置 API,支持訪問控制、速率限制和配額
- 對集群內的所有流量(包括集群入口和出口)進行自動度量、日志和跟蹤
工作原理
Istio 由兩個部分組成:控制平面和數據平面。
- 數據平面:業務之間的通信平面。
如果沒有一個服務網格,網絡就無法理解正在發送的流量,也無法根據它是哪種類型的流量, 或者它從誰那里來,到誰那里去做出任何決定。
服務網格使用代理攔截所有的網絡流量,允許根據您設置的配置提供廣泛的應用程序感知功能。
代理與您在集群中啟動的每個服務一起部署,或者與運行在虛擬機上的服務一起運行。
-
控制平面:獲取您所需的配置和服務視圖,并動態地對代理服務器進行編程,隨著規則或環境的變化更新它們。
工作原理