GKE 上 Cloud Service Mesh 的調整上限

本文件說明 GKE 上代管 Cloud Service Mesh 架構控制層的資源調度限制,協助您做出明智的部署決策。

總覽

GKE 上 Cloud Service Mesh 的可擴充性取決於其兩個主要元件 (資料層和控制層) 的運作效率。本文著重於控制平面的調整限制。如要瞭解資料平面可擴充性最佳做法,請參閱「可擴充性最佳做法」。

部分說明的調整限制會受到配額限制。如要超過這些限制,就必須提出配額提高要求。其他限制則不會嚴格執行,但如果超過限制,可能會導致行為和效能不明確。

如要瞭解 Istio 資源如何轉譯為 Google Cloud 資源,請先參閱「瞭解 API 資源」指南。

服務資源調度限制

服務資源調度僅限於兩個維度

請注意,一旦為特定會員資格 (即 GKE 叢集) 啟用 Cloud Service Mesh,叢集中的所有 Kubernetes 服務都會轉譯為 Cloud Service Mesh 服務,包括以沒有 Cloud Service Mesh 附屬程式的工作負載為目標的工作負載。Cloud Service Mesh 會為 GKE 叢集中的所有服務建立區域網路端點群組。如果叢集是區域叢集,系統會為該區域中的所有節點集區區域建立網路端點群組。

Cloud Service Mesh 服務與 Kubernetes 服務

Cloud Service Mesh 服務與 Kubernetes 服務不同,因為 Cloud Service Mesh 服務是每個連接埠一個服務。

舉例來說,這個 Kubernetes 服務會在內部轉譯為兩個 Cloud Service Mesh 服務,每個通訊埠各一個。

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
    -   port: 80
      targetPort: 80
      protocol: TCP
      name: http
    -   port: 443
      targetPort: 443
      protocol: TCP
      name: https

目的地規則子集

使用子集設定 Istio Destination Rule API 時,每個子集可能會產生多個新的 Cloud Service Mesh 服務。

舉例來說,請考慮以下以先前定義的 Kubernetes 服務為目標的 DestinationRule

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: my-service-destinationrule
spec:
  host: my-service
  subsets:
  -   name: testversion
    labels:
      version: v3
  -   name: prodversion
    labels:
      version: v2

系統會為每個定義的子集建立新的合成服務。如果原始 Kubernetes 服務建立了兩個 Cloud Service Mesh 服務,DestinationRule 就會額外建立 4 個 Cloud Service Mesh 服務,每個子集各 2 個,總計 6 個 Cloud Service Mesh 服務。

多專案部署

當單一網格在不同 Google Cloud專案的工作負載中部署時,所有 Cloud Service Mesh 服務資源都會在機群主機專案中建立。也就是說,這些服務都受限於車隊主機專案中的 Cloud Service Mesh 可擴充性限制。

Kubernetes 無頭服務

與一般服務相比,Kubernetes 無介面服務的限制較低。Cloud Service Mesh 每個叢集僅支援 50 個無頭 Cloud Service Mesh 服務。如需範例,請參閱 Kubernetes 網路說明文件

端點調度限制

端點資源調度限制通常如下:

  • Cloud Service Mesh 服務

  • GKE 叢集

一般 Kubernetes 服務

每個 NEG 的端點配額會影響可屬於單一 Kubernetes 服務的端點上限。

Kubernetes 無頭服務

針對 Kubernetes 無頭服務,Cloud Service Mesh 支援每項無頭服務的端點不超過 36 個。如需範例,請參閱 Kubernetes 網路說明文件

GKE 叢集限制

Cloud Service Mesh 每個叢集最多可支援 5000 個端點 (Pod IP)。

閘道調度限制

使用 Istio Gateway 時,尤其是使用 Kubernetes 密鑰中的 TLS 憑證終止 HTTPS 連線,Cloud Service Mesh 最多支援以下數量的 Pod:

  • 使用區域性 GKE 叢集時的 1,500 個閘道 Pod

  • 使用區域或 Autopilot GKE 叢集時的 500 個閘道 Pod