Config Controller 可擴充性指南

本頁提供建議,協助您在 Config Controller 執行個體上規劃設定管理架構,並將 Google Cloud 資源建立和管理作業維持在服務等級目標 (SLO) 內。

本頁面適用於管理基礎技術基礎架構生命週期,以及規劃容量和基礎架構需求的管理員、架構師和營運人員。如要進一步瞭解我們在 Google Cloud 內容中提及的常見角色和範例工作,請參閱「常見的 GKE Enterprise 使用者角色和工作」。

使用命名空間模式

建議您在命名空間模式中使用 Config Connector,因為這樣管理大量資源會比較容易。您可以將每個命名空間設為對應單一命名空間,這有助於管理配額和設定,因為資源在每個專案中都有讀取和寫入配額。從 1.119.0 版開始,您可以提高命名空間的對帳速率限制。提高速率限制後,您就能在 10 分鐘間隔內,為每個命名空間調解超過 10,000 個資源。Config Connector 和 Config Sync 都支援命名空間模式,可將每個命名空間對應至單一 Google Cloud 專案。

擴充性目標

下表列出我們定期測試的值。我們知道 Config Connector 可以處理更多數量。我們已證明單一命名空間可管理 30,000 個資源。不過,您需要進行一些調整才能讓這項功能正常運作。建議您查看建議的命名空間模式,瞭解這些異動。

Config Controller 可擴充性目標是 Google 測試的資源群組,並使用 Config Sync GitOps。您可以利用這些目標,規劃設定管理架構。

這些目標並非硬性限制。如果某種資源的數量超出上限,Config Controller 執行個體不一定會無法使用,但可能會減少您在同一個 Config Controller 執行個體中可部署的其他資源種類總數。

本頁面的表格僅供參考,並非完整清單。

單一命名空間

以下範例顯示叢集中的 Config Controller 執行個體,以及一個 Config Connector 命名空間。Config Connector 可在該命名空間中建立及管理下列數量的資源:

資源類型

建議上限

SQLInstance

450

SQLDatabase

2,250

SQLUser

2,500

StorageBucket

5,000

ContainerCluster

50

ContainerNodepool

200

IAMServiceAccount

2,500

IAMPartialPolicy

7,500

多個命名空間

以下範例顯示叢集中的 Config Controller 執行個體,其中有 50 個 Config Connector 命名空間。Config Connector 可在每個命名空間中建立及管理下列數量的資源:

資源類型

建議上限

SQLInstance

9

SQLDatabase 45
SQLUser 45
StorageBucket 100
ContainerCluster 1
ContainerNodepool 4
IAMServiceAccount 50
IAMPartialPolicy 150

Config Connector 命名空間

Config Controller 預設會使用Config Connector 命名空間模式。下表顯示單一 Config Connector 執行個體可擁有的 Config Connector 命名空間數量範例。

--cluster-ipv4-cidr-block

節點數量

Config Connector 命名空間數量

/18

64

600

/19

32

300

/20 (預設和建議)

16

120

/21

8

60

檢查擴充性目標

您可以參考下列資源,判斷是否已達到擴充性目標。

Google Cloud API 配額

您可以在控制台 Google Cloud 中 Google Cloud 查看 API 配額。如果某些配額即將達到上限,請考慮依專案分片 API 配額 Google Cloud 。如要進一步瞭解如何監控配額指標及設定相關快訊,請參閱「監控配額指標及設定相關快訊」。

Config Connector 記憶體用量

您可以在 GKE 監控資訊主頁中查看 Config Connector 的記憶體用量。如果 Config Connector 的記憶體用量即將達到上限,請考慮依命名空間分片

擴大 Config Controller

如果已達到擴充性目標,請考慮進一步擴大 Config Controller 執行個體。本節說明幾種可讓您用來擴大 Config Controller 執行個體的方式。

依命名空間進行分片

如果使用單一 Config Connector 命名空間達到可擴充性目標,您可以設定 Config Connector 來管理命名空間中的資源

每個命名空間都會使用自己的服務帳戶和運算子工作負載,因此 Config Connector 可以大規模管理資源。如果您使用一個 Config Connector 執行個體管理多個 Google Cloud 專案,可以為每個 Google Cloud 專案使用一個 Config Connector 命名空間。

依 Google Cloud 專案分片 API 配額

如果因達到 Google Cloud API 配額而達到可擴充性目標,您可以將不同 Google Cloud 專案擁有的不同 IAM 服務帳戶,繫結至以命名空間模式安裝 Config Connector 的不同命名空間。然後將資源分割到不同專案

依 Config Connector 執行個體分片

如果使用多個 Config Connector 命名空間達到可擴充性目標,可以建立及使用多個 Config Controller 執行個體。 如果有多個 Config Controller 執行個體,您可以將資源設定管理作業分片,例如依據貴機構內的不同開發環境、應用程式團隊或 GitOps 目錄。

其他擴充性注意事項

Google Cloud API 配額

如果發生錯誤,指出您已超出 API 配額限制,可能是因為您在同一個專案中,建立了太多相同類別的 Config Connector 資源。由於 Config Connector 中的協調策略,這些資源可能會對同一個 API 端點產生過多 API 要求。

如要解決這個問題,您可以依專案劃分 API 配額,或申請調整配額。 Google Cloud

GKE 限制

由於 Config Controller 是以 GKE 為基礎建構,因此您應考量 GKE 的限制。下列各節將說明與 Config Controller 相關的特定考量事項。如要進一步瞭解大型 GKE 叢集的一般限制和最佳做法,請參閱「規劃大型 GKE 叢集」。

Kubernetes 服務帳戶限制

單一 GKE 叢集中建立的 Kubernetes 服務帳戶 (KSA) 數量不得超過 3,000 個,否則可能會發生 gke-metadata-server Pod 異常終止問題

每當您新增 Config Connector 命名空間時,系統也會建立 Kubernetes 服務帳戶。

GKE 控制層效能問題

如果 Config Controller 執行個體有太多 Config Connector 命名空間,GKE 叢集的控制層可能會發生效能問題。每個叢集的 Config Connector 命名空間數量應少於 500 個。

每當您新增 Config Connector 命名空間時,系統也會建立控制器 Pod。

後續步驟