本頁面說明規劃叢集以搭配使用 Config Sync 時的設定選項和需求。
如要進一步瞭解規劃 GKE 叢集時的一般最佳做法,請參閱 GKE 說明文件中的叢集設定選項。
Autopilot 模式的資源需求
GKE Autopilot 模式會自動修改資源要求,以維持工作負載的穩定性。如要瞭解如何規劃這些要求,請參閱 Autopilot 資源要求的 GKE 說明文件。
由於 Autopilot 會修改資源要求,Config Sync 會進行下列調整:
- 調整使用者指定的資源覆寫限制,以符合要求。
- 只有在有一或多個資源要求高於註解中宣告的相應調整後輸出,或資源要求低於註解中宣告的相應輸入時,才會套用覆寫。
支援的 GKE Enterprise 平台和版本
如要使用 Config Sync,叢集必須位於 GKE Enterprise 支援的平台和版本。
Workload Identity Federation for GKE
建議您使用 Workload Identity Federation for GKE,安全地連線至 Google Cloud服務。Autopilot 叢集預設會啟用 Workload Identity Federation for GKE。
如要搭配 Config Sync 使用機群套件 (搶先版),必須使用 GKE 適用的 Workload Identity Federation。
如果您在 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 會新增預設汙點,確保沒有對應容許度的工作負載不會排定至該處。無須採取任何額外行動。