準備叢集以使用 Config Sync

在安裝 Config Sync 之前,請先規劃 Google Kubernetes Engine (GKE) 叢集設定,確保各環境的政策和設定同步作業穩定可靠。叢集必須符合特定要求,包括叢集運作模式、機群註冊、Identity and Access Management (IAM) 權限、平台版本、驗證、網路和節點架構。

如需規劃 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) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

Autopilot 模式的資源需求

GKE Autopilot 模式會自動修改資源要求,維持工作負載穩定性。如要瞭解如何規劃這些要求,請參閱 GKE 說明文件中的 Autopilot 資源要求。

由於 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 使用機群套件,則必須啟用 Workload Identity Federation for GKE。

如果您在 GKE 附加叢集上安裝 Config Sync,則無法搭配使用 Active Directory 和 Workload Identity Federation。這項限制是因為 Config Sync 使用 Connect 閘道連線至 GKE 附加叢集,而 Connect 閘道不支援這項功能。

網路

視網路設定而定,您可能需要對 GKE 叢集進行一些變更,詳情請參閱下節。

如要進一步瞭解 GKE 網路選項,請參閱「網路總覽」。

私人叢集

如果您使用具有私人節點的 GKE 叢集,請透過下列任一方式設定叢集,確保 Config Sync 具有存取權,且可向可靠資料來源進行驗證:

公開叢集

如果您使用公開叢集,但有嚴格的虛擬私有雲防火牆規定,會封鎖任何不必要的流量,則必須建立防火牆規則,允許下列流量:

  • TCP:允許通訊埠 53 和 443 的輸入和輸出
  • UDP:允許透過通訊埠 53 輸出

如未加入這些規則,Config Sync 就無法正確同步,且 nomos status 會回報下列錯誤:

Error: KNV2004: unable to sync repo Error in the git-sync container

Cloud Source Repositories 搭配 Compute Engine 預設服務帳戶驗證

如果您使用 Config Sync 連線至 Cloud Source Repositories,且未啟用 Workload Identity Federation for GKE,則可使用 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,請根據叢集類型採取下列行動:

  • AWS 中的 GKE 或 Azure 中的 GKE:在 Arm 節點中新增污點,避免在沒有對應容忍度的情況下,將 Pod 排定至 Arm 節點。
  • GKE:GKE 會新增預設污點,確保沒有對應容忍度的工作負載不會排定到該處。無須採取其他行動。

後續步驟

安裝 Config Sync。