共用方式為


適用於 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 附加元件的意見反應和功能要求。

下一步