Istio

什么是Istio

Istio是一個提供連接、保護、控制以及觀測功能的開放平臺,通過提供完整的非侵入式的微服務治理解決方案,能夠很好的解決 云原生 服務的管理、網(wǎng)絡連接以及安全管理等服務網(wǎng)絡治理問題。

隨著微服務的大量應用,其構成的分布式應用架構在運維、調試、和安全管理等維度變得更加復雜,開發(fā)者需要面臨更大的挑戰(zhàn),如:服務發(fā)現(xiàn)、 負載均衡 、故障恢復、指標收集和監(jiān)控,以及A/B測試、灰度發(fā)布、藍綠發(fā)布、限流、訪問控制、端到端認證等。

在較高的層次上,Istio有助于降低這些部署的復雜性,并減輕開發(fā)團隊的壓力。它是一個完全開源的服務網(wǎng)格,可以透明地分層到現(xiàn)有的分布式應用程序上。它也是一個平臺,包括允許集成到任何日志記錄平臺、遙測或策略系統(tǒng)的API。Istio的多樣化功能使您能夠成功高效地運行分布式微服務架構,并提供保護、連接和監(jiān)控微服務的統(tǒng)一方法。

服務網(wǎng)格

服務網(wǎng)格(Service Mesh)通常用于描述構成應用程序的微服務網(wǎng)絡以及應用之間的交互。它的需求包括服務發(fā)現(xiàn)、負載均衡、故障恢復、指標收集和監(jiān)控以及通常更加復雜的運維需求,例如 A/B 測試、金絲雀發(fā)布、限流、訪問控制和端到端認證等。

為什么要使用Istio

Istio提供了一個完整的解決方案,通過為整個服務網(wǎng)格提供行為洞察和操作控制來滿足微服務應用程序的多樣化需求。

Kubernetes提供了部署、升級和有限的運行流量管理能力,但并不具備熔斷、限流降級、調用鏈治理等能力。Istio是基于Kubernetes構建的開放平臺,它很好的補齊了Kubernetes在微服務治理上的諸多能力。

Istio和Kubernetes的關系

想要讓服務支持Istio,只需要在您的環(huán)境中部署一個特殊的sidecar代理,使用Istio控制平面功能配置和管理代理,攔截微服務之間的所有網(wǎng)絡通信:

-實現(xiàn)HTTP、gRPC、WebSocket 和 TCP 流量的自動負載均衡。

-通過豐富的路由規(guī)則、重試、故障轉移和故障注入,可以對流量行為進行細粒度控制。

-可插入的策略層和配置 API,支持訪問控制、速率限制和配額。

-對出入集群入口和出口中所有流量自動度量指標、日志記錄和追蹤。

-通過強大的基于身份的驗證和授權,在集群中實現(xiàn)安全的服務間通信。

Istio 旨在實現(xiàn)可擴展性,滿足各種部署需求。