適用於 Azure Kubernetes Service 的 Istio 型服務網格附加元件
Istio 提供分散式或微服務架構,解決開發人員和操作員面對的挑戰。 Istio 型服務網格附加元件針對 Azure Kubernetes Service (AKS) 提供正式支援和通過測試的整合。
什麼是服務網格?
現代的應用程式通常架構為微服務的分散式集合,而每個微服務集合都會執行一些離散的商務功能。 服務網格是一個專用的基礎結構層,您可將其新增至應用程式。 其可讓您以透明方式新增可檢視性、流量管理和安全性等功能,而不需將它們新增至您自己的程序碼。 服務網格一詞描述您用來實作此模式的軟體類型,以及使用該軟體時所建立的安全性或網路網域。
隨著分散式服務部署 (例如在 Kubernetes 型系統中) 的大小和複雜度持續成長,因此越來越難理解和管理。 您可能需要實作探索、負載平衡、失敗復原、計量和監控等功能。 服務網格也可以解決更複雜的作業需求,例如 A/B 測試、Canary 部署、速率限制、存取控制、加密和端對端驗證。
服務對服務通訊是讓分散式應用程式得以實現的要素。 隨著服務數量增加,在應用程式叢集內和跨應用程式叢集之間路由通訊變得越來越複雜。 Istio 不只有助於降低這種複雜性,同時還能減輕開發小組的壓力。
什麼是 Istio?
Istio 是開放原始碼服務網格,可透明地分層至現有的分散式應用程式。 Istio 擁有強大功能,可提供統一且更有效率的方式,來保護、連線及監控服務。 Istio 可啟用負載平衡、服務對服務驗證,以及監控,且僅需少部分或完全不需變更服務程式碼。 其強大的控制平面提供了重要功能,包括:
- 使用 TLS(傳輸層安全性)加密、強式身分識別型驗證和授權來保護叢集中的服務對服務通訊。
- HTTP、gRPC、WebSocket 和 TCP 流量的自動負載平衡。
- 使用多樣化的路由規則、重試、容錯移轉和錯誤插入,更精細地控制流量行為。
- 支援存取控制、速率限制和配額的插入式原則層和設定 API。
- 叢集中所有流量的自動計量、記錄和追蹤,包括叢集輸入和輸出。
附加元件與開放原始碼 Istio 有何不同?
此服務網格附加元件使用並建置在開放原始碼 Istio 之上。 附加元件變體提供下列額外優點:
- Istio 版本經過測試和驗證,與支援的 Azure Kubernetes Service 版本相容。
- Microsoft 處理 Istio 控制平面的縮放和設定
- Microsoft 會在啟用 Istio 時調整
coredns
等 AKS 元件的縮放比例。 - Microsoft 會在使用者觸發時為 Istio 元件提供受控生命週期(升級)。
- 已驗證的外部和內部輸入設定。
- 通過驗證,可搭配適用於 Prometheus 的 Azure 監視器受管理服務和 Azure 受控 Grafana。
- 為附加元件提供的官方 Azure 支援。
限制
AKS 的 Istio 型服務網格附加元件有下列限制:
附加元件不適用於使用適用於 AKS 的 Open Service Mesh 附加元件的 AKS 叢集。
附加元件不適用於具有 Istio 自我管理安裝的 AKS 叢集。
附加元件不支援新增與網格下要新增之虛擬節點相關聯的 Pod。
附加元件尚未支援輸出流量控制的 Engress 閘道。
附加元件尚未支援無側車環境模式。 Microsoft 目前在 Istio 開放原始碼下為環境工作流程做出貢獻。 環境模式的產品整合在藍圖中,並且隨著環境工作流程的發展而持續評估。
附加元件尚不支援多叢集部署。
附加元件尚不支援 Windows Server 容器。 目前 開放原始碼 Istio 尚不支援 Windows Server 容器。 您可以在 這裡 找到追蹤這項功能的問題。
目前封鎖透過下列自訂資源的網格自訂 -
ProxyConfig, WorkloadEntry, WorkloadGroup, IstioOperator, WasmPlugin
。附加元件允許使用下列
EnvoyFilter
篩選類型,並封鎖其他篩選類型:- 盧亞(
type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
)。 - 壓縮機 (
type.googleapis.com/envoy.extensions.filters.http.compressor.v3.Compressor
) - 本機速率限制 (
type.googleapis.com/envoy.extensions.filters.http.local_ratelimit.v3.LocalRateLimit
)
注意
雖然允許這些
EnvoyFilter
,但來自它們的任何問題(例如 Lua scipt 或壓縮連結庫)都超出 Istio 附加元件的支援範圍。 如需 Istio 附加元件功能和組態選項支援類別的詳細資訊,請參閱支援原則檔。- 盧亞(
Istio 輸入閘道或管理網格流量的閘道 API 目前尚不支援 Istio 附加元件。 不過,適用於 Istio 輸入流量管理的閘道 API 目前在附加元件的作用中開發中。 雖然附加元件支援 Istio 輸入閘道 的批注自定義,但目前不支援埠或通訊協議設定。
意見反應和功能詢問
您可以藉由在 AKS GitHub 存放庫上建立標籤 'service-mesh' 的問題,來提供 Istio 附加元件的意見反應和功能要求。