您可以將 Config Sync 安裝為機群預設值,這樣一來,所有新增至機群的叢集都會自動啟用 Config Sync,並採用您想要的設定。設定機群層級的預設值,可確保註冊至機群的每個新 GKE on Google Cloud 叢集,都會繼承標準的 Config Sync 設定,包括版本和與真實來源的連線。這個程序可簡化叢集佈建作業,並協助維護統一的設定管理基準。
本頁面說明下列事項:
- 如何使用 Google Cloud CLI、 Google Cloud 控制台或 Terraform 設定這些機群層級的預設設定。
- 如何將預設設定套用至現有叢集。
- 如何視需要停用機群預設設定。
如需機群預設設定的一般資訊,請參閱「管理機群層級功能」。
事前準備
安裝 Config Sync 前,請準備單一事實來源和合適的叢集。
授予 Config Sync 存取可靠來源的權限
如要將可靠來源的設定同步至叢集,Config Sync 需要存放區的唯讀權限。如要授權 Config Sync 讀取設定,請完成下列步驟:
建立或存取可靠來源,其中包含您要讓 Config Sync 同步至叢集的設定檔。詳情請參閱下列資源:
- 將設定新增至單一事實來源:設定的概念資訊。
- GitOps 最佳做法:提供整理及管理存放區的訣竅和一般最佳做法。
- 使用非結構化存放區:使用及整理非結構化存放區的建議。
如果您的單一事實來源是公開的,則無須採取任何行動。 Config Sync 不需要額外權限。
如果你的單一事實來源是私人來源,請按照下列其中一個頁面的操作說明完成設定:
查看叢集需求
建立叢集前,請先查看叢集需求。
限制
- 系統不支援將 Helm 設定為叢集預設來源類型。
- Google Cloud 控制台不支援以預設設定連線至單一事實來源。您必須在建立叢集後,使用「部署套件」功能。
設定 Git 存放區的機群層級預設值
如要設定 Config Sync 的機群層級預設值,請完成下列步驟:
gcloud
建立名為
apply-spec.yaml
的資訊清單,並在其中加入下列內容:如果已建立資訊清單,就不需要建立新資訊清單。applySpecVersion: 1 spec: configSync: enabled: true sourceType: git sourceFormat: unstructured syncRepo: REPO syncRev: REVISION secretType: SECRET_TYPE # only required if gcpserviceaccount is the secretType # gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL preventDrift: false
更改下列內容:
REPO
:Git 存放區的網址,例如https://github.com/GoogleCloudPlatform/anthos-config-management-samples
。 如果ssh
是 sourceType,請使用網址的 HTTPS 格式或 SSH 格式。REVISION
:要從中同步處理的 Git 修訂版本 (標記或雜湊) 或分支名稱。使用雜湊時,必須是完整雜湊,不得使用縮寫形式。SECRET_TYPE
:用於連線至 Git 存放區的驗證方法。如果是公開存放區,請使用none
。如果是私人存放區,請使用下列其中一種方法:ssh
:使用安全殼層金鑰組。cookiefile
:使用cookiefile
。token
:使用權杖。gcpserviceaccount
:如果已啟用 Workload Identity Federation for GKE,請使用 Google 服務帳戶。僅限 Secure Source Manager 或 Cloud Source Repositories。gcenode
:如果未啟用 Workload Identity Federation for GKE,請使用 Google 服務帳戶。僅限 Secure Source Manager 或 Cloud Source Repositories。githubapp
:使用 GitHub 應用程式向 GitHub 存放區進行驗證。
如要進一步瞭解如何將 Git 存放區連線至 Config Sync,請參閱「授予 Config Sync Git 存取權」。
EMAIL
:如果gcpserviceaccount
是secretType
,請取消註解這個欄位,並新增 Google 服務帳戶電子郵件地址,例如config-sync@PROJECT_ID.iam.gserviceaccount.com
。METRICS_EMAIL
:用於將 Config Sync 指標匯出至 Cloud Monitoring 的服務帳戶 (GSA) 電子郵件地址。 Google Cloud如要進一步瞭解如何設定指標匯出功能,請參閱「監控 Config Sync」。
如需可新增至
apply-spec
資訊清單的完整欄位清單,請參閱 gcloud apply spec fields。執行下列指令,套用含有預設機群設定的
apply-spec
檔案:gcloud beta container fleet config-management enable \ --fleet-default-member-config=apply-spec.yaml
主控台
前往 Google Cloud 控制台的「Feature Manager」頁面。
在「Config Sync」窗格中,按一下「Configure」。
檢查機群層級設定。您在機群中建立的所有新叢集都會沿用這些設定。
選用:如要變更預設設定,請按一下「自訂車隊設定」。 然後在隨即顯示的對話方塊中,執行以下操作:
- 選取要使用的 Config Sync 版本。
- 按一下 [儲存變更]。
按一下 [設定]。
在「Configuring fleet settings」(設定車隊設定) 確認對話方塊中,按一下「Confirm」(確認)。 如果您先前未啟用 Config Sync,按一下「確認」也會啟用
anthosconfigmanagement.googleapis.com
API。
雖然您無法從 Google Cloud 控制台將可靠來源設定設為叢集預設值,但使用「Deploy a package」(部署套件) 功能時,可以選取多個叢集。
Terraform
如要將 Config Sync 設為機群預設值,請參閱下列範例:
更改下列內容:
REPO
:包含設定檔的 Git 存放區網址。BRANCH
:存放區分支,例如main
。DIRECTORY
:Git 存放區中的路徑,代表要同步處理的存放區頂層。SECRET
:密鑰驗證類型。
如要進一步瞭解如何使用 Terraform,請參閱「使用 Terraform 佈建 Config Sync 資源」。
設定 OCI 映像檔的機群層級預設值
如要設定 Config Sync 的機群層級預設值,請完成下列步驟:
gcloud
建立名為
apply-spec.yaml
的資訊清單,並在其中加入下列內容:如果已建立資訊清單,就不需要建立新資訊清單。applySpecVersion: 1 spec: configSync: enabled: true sourceType: oci sourceFormat: unstructured syncRepo: REPO secretType: SECRET_TYPE # only required if gcpserviceaccount is the secretType # gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL preventDrift: false
更改下列內容:
REPO
:OCI 映像檔的網址,格式為LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
。 根據預設,系統會從latest
標記提取圖片,但您也可以改用TAG
或DIGEST
提取圖片。在PACKAGE_NAME
中指定TAG
或DIGEST
:- 如要依
TAG
提取:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- 如要依
DIGEST
提取:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- 如要依
SECRET_TYPE
:用於連線至 OCI 映像檔的驗證方法。如果是公開圖片,請使用none
做為值。 如果是私人映像檔,請使用下列其中一種方式:gcpserviceaccount
:僅適用於 Secure Source Manager 或 Cloud Source Repositories。如果已啟用 Workload Identity Federation for GKE,請使用 Google 服務帳戶。gcenode
:僅適用於 Secure Source Manager 或 Cloud Source Repositories。如果未啟用 Workload Identity Federation for GKE,請使用 Google 服務帳戶。
如要進一步瞭解如何將 OCI 映像檔連結至 Config Sync,請參閱「授予 Config Sync OCI 或 Helm 的存取權」。
EMAIL
:如果gcpserviceaccount
是secretType
,請取消註解這個欄位,並新增 Google 服務帳戶電子郵件地址,例如config-sync@PROJECT_ID.iam.gserviceaccount.com
。METRICS_EMAIL
:用於將 Config Sync 指標匯出至 Cloud Monitoring 的服務帳戶 (GSA) 電子郵件地址。 Google Cloud如要進一步瞭解如何設定指標匯出功能,請參閱「監控 Config Sync」。
如需可新增至
apply-spec
資訊清單的完整欄位清單,請參閱 gcloud apply spec fields。執行下列指令,套用含有預設機群設定的
apply-spec
檔案:gcloud beta container fleet config-management enable \ --fleet-default-member-config=apply-spec.yaml
主控台
前往 Google Cloud 控制台的「Feature Manager」頁面。
在「Config Sync」窗格中,按一下「Configure」。
檢查機群層級設定。您在機群中建立的所有新叢集都會繼承這些設定。
選用:如要變更預設設定,請按一下「自訂車隊設定」。 然後在隨即顯示的對話方塊中,執行以下操作:
- 選取要使用的 Config Sync 版本。
- 按一下 [儲存變更]。
按一下 [設定]。
在「Configuring fleet settings」(設定車隊設定) 確認對話方塊中,按一下「Confirm」(確認)。 如果您先前未啟用 Config Sync,按一下「確認」也會啟用
anthosconfigmanagement.googleapis.com
API。
雖然您無法從 Google Cloud 控制台將可靠來源設定設為叢集預設值,但使用「Deploy a package」(部署套件) 功能時,可以選取多個叢集。
Terraform
如要將 Config Sync 設為機群預設值,請參閱下列範例:
更改下列內容:
REPO
:OCI 映像檔存放區的網址,內含設定檔。DIRECTORY
:含有要同步處理資源的目錄絕對路徑。如要使用根目錄,請將這個欄位留空。SECRET
:密鑰驗證類型。
如要進一步瞭解如何使用 Terraform,請參閱「使用 Terraform 佈建 Config Sync 資源」。
更新現有叢集,以沿用機群預設值
如要更新現有叢集,使其使用預設的 Config Sync 設定,可以透過 Google Cloud 主控台或 gcloud CLI,將所選機群叢集與機群預設值同步。或者,您也可以使用 Terraform 手動設定每個叢集,並按照上一節的 Config Sync 安裝說明操作,如果您先前使用 Terraform 指定車隊預設值,請使用與設定預設值時相同的 configmanagement
和 config_sync
區塊,設定所選叢集。
如要在整個機群中同步處理 Config Sync 預設設定,請按照下列步驟操作:
gcloud
將現有成員資格與機群預設設定同步:
gcloud beta container fleet config-management apply \ --origin=FLEET \ --membership=MEMBERSHIP_NAME
將
MEMBERSHIP_NAME
替換為要與機群預設設定同步的叢集機群成員名稱。確認會員設定已與車隊預設設定同步:
gcloud beta container fleet config-management status
這個指令的輸出內容應顯示您同步的成員資格的
Synced_to_Fleet_Default
狀態為Yes
。
主控台
前往功能管理工具:
在叢集表格中,選取要與機群設定同步的叢集。
按一下「與機群設定同步」。
停用機群預設值
如要為整個機群停用 Config Sync 預設設定,請按照下列步驟操作:
如要停用車隊預設設定,請執行下列指令:
gcloud beta container fleet config-management disable --fleet-default-member-config
確認機群預設設定已停用:
gcloud beta container fleet config-management status
後續步驟
- 瞭解如何升級 Config Sync。
- 瞭解如何設定同步處理多個存放區。
- 使用
nomos
指令。 - 查看預設 Config Sync 權限。