本頁面說明規劃叢集以搭配使用 Config Sync 時的設定選項和需求。
如要進一步瞭解規劃 GKE 叢集時的一般最佳做法,請參閱 GKE 說明文件中的叢集設定選項。
選擇 GKE 作業模式
Config Sync 支援 Autopilot 和 Standard GKE 叢集。
如要根據資訊做出選擇,決定要使用哪種作業模式,請參閱「GKE 作業模式」。
將叢集註冊至機群
如要使用 Config Sync,叢集必須註冊至機群。
如果您打算使用 Google Cloud 控制台安裝及設定 Config Sync,可以在安裝 Config Sync 時註冊叢集。
否則,您必須先將叢集註冊至機群,才能啟用 Config Sync。
授予必要權限
由於 Config Sync 規定叢集必須註冊至機群,因此安裝 Config Sync 時,您可能需要額外權限。
如要取得將叢集註冊至機群所需的權限,請要求管理員授予您專案的機群管理員 (原稱 GKE Hub 管理員) (roles/gkehub.admin
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
Autopilot 模式的資源需求
GKE Autopilot 模式會自動修改資源要求,以維持工作負載的穩定性。如要瞭解如何規劃這些要求,請參閱 Autopilot 資源要求的 GKE 說明文件。
由於 Autopilot 會修改資源要求,Config Sync 會進行下列調整:
- 調整使用者指定的資源覆寫限制,以符合要求。
- 只有在有一或多個資源要求高於註解中宣告的相應調整後輸出,或資源要求低於註解中宣告的相應輸入時,才會套用覆寫。
支援的 GKE 平台和版本
如要使用 Config Sync,叢集必須採用 GKE 支援版本。
Workload Identity Federation for GKE
建議您使用 Workload Identity Federation for GKE,安全地連線至 Google Cloud服務。Autopilot 叢集預設會啟用 Workload Identity Federation for GKE。
如要搭配 Config Sync 使用機群套件,請務必啟用 GKE 適用的工作負載身分聯盟。
如果您在 GKE 連結叢集上安裝 Config Sync,就無法搭配使用 Active Directory 和 Workload Identity Federation。由於 Config Sync 使用連線閘道連線至 GKE 連結的叢集,而連線閘道不支援這項功能,因此有這項限制。
網路
以下章節列出您可能需要對 GKE 叢集進行的變更,具體情況取決於網路設定。
如要進一步瞭解 GKE 網路選項,請參閱網路總覽。
私人叢集
如果您使用私人叢集,請透過下列其中一種方式設定叢集,確保 Config Sync 能夠存取並驗證單一事實來源:
啟用「私人 Google 存取權」,即可連線至 Google API 和服務所用的一組外部 IP 位址。
公開叢集
如果您使用公開叢集,但有嚴格的虛擬私有雲防火牆規定,會封鎖任何不必要的流量,則必須建立防火牆規則,允許下列流量:
- TCP:允許通訊埠 53 和 443 的輸入和輸出流量
- UDP:允許通訊埠 53 的輸出流量
如果未加入這些規則,Config Sync 就無法正確同步處理,且 nomos status
會回報下列錯誤:
Error: KNV2004: unable to sync repo Error in the git-sync container
透過 Compute Engine 預設服務帳戶驗證的 Cloud Source Repositories
如果您使用 Config Sync 連線至 Cloud Source Repositories,且未啟用 GKE 的 Workload Identity Federation,則可使用 Compute Engine 預設服務帳戶進行驗證。您必須使用存取權範圍,並為叢集中的節點設定唯讀範圍。
如要新增 Cloud Source Repositories 的唯讀範圍,請在建立叢集時指定的 --scopes
清單中加入 cloud-source-repos-ro
,或在建立叢集時使用 cloud-platform
範圍。例如:
gcloud container clusters create CLUSTER_NAME --scopes=cloud-platform
將 CLUSTER_NAME
替換為叢集名稱。
節點集區建立後,存取權範圍便無法修改。不過,您可以在使用相同叢集的同時,建立具有適當存取範圍的新節點集區。預設的 gke-default
範圍不包含 cloud-source-repos-ro
。
Arm 節點
Config Sync 只能在 x86 型節點上執行,無法在 Arm 節點上執行。不過,如要在具有多個架構的叢集上執行 Config Sync,請視叢集類型採取下列行動:
- GKE on AWS 或 GKE on Azure:在 Arm 節點中新增汙染,避免將 Pod 排程至沒有相應容忍度的 Arm 節點。
- GKE:GKE 會新增預設汙點,確保沒有對應容許度的工作負載不會排定至該處。無須採取任何行動。