將 Config Sync 安裝為機群預設設定

您可以將 Config Sync 安裝為機群預設值,這樣一來,所有新增至機群的叢集都會自動啟用 Config Sync,並採用您想要的設定。設定機群層級的預設值,可確保註冊至機群的每個新 GKE on Google Cloud 叢集,都會繼承標準的 Config Sync 設定,包括版本和與真實來源的連線。這個程序可簡化叢集佈建作業,並協助維護統一的設定管理基準。

本頁面說明下列事項:

  • 如何使用 Google Cloud CLI、 Google Cloud 控制台或 Terraform 設定這些機群層級的預設設定。
  • 如何將預設設定套用至現有叢集。
  • 如何視需要停用機群預設設定。

如需機群預設設定的一般資訊,請參閱「管理機群層級功能」。

事前準備

安裝 Config Sync 前,請準備單一事實來源和合適的叢集。

授予 Config Sync 存取可靠來源的權限

如要將可靠來源的設定同步至叢集,Config Sync 需要存放區的唯讀權限。如要授權 Config Sync 讀取設定,請完成下列步驟:

查看叢集需求

建立叢集前,請先查看叢集需求

限制

  • 系統不支援將 Helm 設定為叢集預設來源類型。
  • Google Cloud 控制台不支援以預設設定連線至單一事實來源。您必須在建立叢集後,使用「部署套件」功能。

設定 Git 存放區的機群層級預設值

如要設定 Config Sync 的機群層級預設值,請完成下列步驟:

gcloud

  1. 建立名為 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:如果 gcpserviceaccountsecretType,請取消註解這個欄位,並新增 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

  2. 執行下列指令,套用含有預設機群設定的 apply-spec 檔案:

    gcloud beta container fleet config-management enable \
        --fleet-default-member-config=apply-spec.yaml
    

主控台

  1. 前往 Google Cloud 控制台的「Feature Manager」頁面。

    前往功能管理工具

  2. 在「Config Sync」窗格中,按一下「Configure」

  3. 檢查機群層級設定。您在機群中建立的所有新叢集都會沿用這些設定。

  4. 選用:如要變更預設設定,請按一下「自訂車隊設定」。 然後在隨即顯示的對話方塊中,執行以下操作:

    1. 選取要使用的 Config Sync 版本。
    2. 按一下 [儲存變更]。
  5. 按一下 [設定]

  6. 在「Configuring fleet settings」(設定車隊設定) 確認對話方塊中,按一下「Confirm」(確認)。 如果您先前未啟用 Config Sync,按一下「確認」也會啟用 anthosconfigmanagement.googleapis.com API。

雖然您無法從 Google Cloud 控制台將可靠來源設定設為叢集預設值,但使用「Deploy a package」(部署套件) 功能時,可以選取多個叢集。

Terraform

如要將 Config Sync 設為機群預設值,請參閱下列範例:

resource "google_gke_hub_feature" "default" {
  name     = "configmanagement"
  location = "global"

  fleet_default_member_config {
    configmanagement {
      config_sync {
        # The field `enabled` was introduced in Terraform version 5.41.0, and
        # needs to be set to `true` explicitly to install Config Sync.
        enabled = true
        git {
          sync_repo   = "REPO"
          sync_branch = "BRANCH"
          policy_dir  = "DIRECTORY"
          secret_type = "SECRET"
        }
      }
    }
  }
}

更改下列內容:

  • REPO:包含設定檔的 Git 存放區網址。
  • BRANCH:存放區分支,例如 main
  • DIRECTORY:Git 存放區中的路徑,代表要同步處理的存放區頂層。
  • SECRET:密鑰驗證類型。

如要進一步瞭解如何使用 Terraform,請參閱「使用 Terraform 佈建 Config Sync 資源」。

設定 OCI 映像檔的機群層級預設值

如要設定 Config Sync 的機群層級預設值,請完成下列步驟:

gcloud

  1. 建立名為 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 標記提取圖片,但您也可以改用 TAGDIGEST 提取圖片。在 PACKAGE_NAME 中指定 TAGDIGEST

      • 如要依 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:如果 gcpserviceaccountsecretType,請取消註解這個欄位,並新增 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

  2. 執行下列指令,套用含有預設機群設定的 apply-spec 檔案:

    gcloud beta container fleet config-management enable \
        --fleet-default-member-config=apply-spec.yaml
    

主控台

  1. 前往 Google Cloud 控制台的「Feature Manager」頁面。

    前往功能管理工具

  2. 在「Config Sync」窗格中,按一下「Configure」

  3. 檢查機群層級設定。您在機群中建立的所有新叢集都會繼承這些設定。

  4. 選用:如要變更預設設定,請按一下「自訂車隊設定」。 然後在隨即顯示的對話方塊中,執行以下操作:

    1. 選取要使用的 Config Sync 版本。
    2. 按一下 [儲存變更]。
  5. 按一下 [設定]

  6. 在「Configuring fleet settings」(設定車隊設定) 確認對話方塊中,按一下「Confirm」(確認)。 如果您先前未啟用 Config Sync,按一下「確認」也會啟用 anthosconfigmanagement.googleapis.com API。

雖然您無法從 Google Cloud 控制台將可靠來源設定設為叢集預設值,但使用「Deploy a package」(部署套件) 功能時,可以選取多個叢集。

Terraform

如要將 Config Sync 設為機群預設值,請參閱下列範例:

resource "google_gke_hub_feature" "configmanagement_feature_member" {
  name     = "configmanagement"
  location = "global"

  fleet_default_member_config {
    configmanagement {
      config_sync {
        # The field `enabled` was introduced in Terraform version 5.41.0, and
        # needs to be set to `true` explicitly to install Config Sync.
        enabled = true
        oci {
          sync_repo   = "REPO"
          policy_dir  = "DIRECTORY"
          secret_type = "SECRET"
        }
      }
    }
  }
}

更改下列內容:

  • REPO:OCI 映像檔存放區的網址,內含設定檔。
  • DIRECTORY:含有要同步處理資源的目錄絕對路徑。如要使用根目錄,請將這個欄位留空。
  • SECRET:密鑰驗證類型。

如要進一步瞭解如何使用 Terraform,請參閱「使用 Terraform 佈建 Config Sync 資源」。

更新現有叢集,以沿用機群預設值

如要更新現有叢集,使其使用預設的 Config Sync 設定,可以透過 Google Cloud 主控台或 gcloud CLI,將所選機群叢集與機群預設值同步。或者,您也可以使用 Terraform 手動設定每個叢集,並按照上一節的 Config Sync 安裝說明操作,如果您先前使用 Terraform 指定車隊預設值,請使用與設定預設值時相同的 configmanagementconfig_sync 區塊,設定所選叢集。

如要在整個機群中同步處理 Config Sync 預設設定,請按照下列步驟操作:

gcloud

  1. 將現有成員資格與機群預設設定同步:

    gcloud beta container fleet config-management apply \
        --origin=FLEET \
        --membership=MEMBERSHIP_NAME
    

    MEMBERSHIP_NAME 替換為要與機群預設設定同步的叢集機群成員名稱。

  2. 確認會員設定已與車隊預設設定同步:

    gcloud beta container fleet config-management status
    

    這個指令的輸出內容應顯示您同步的成員資格的 Synced_to_Fleet_Default 狀態為 Yes

主控台

  1. 前往功能管理工具

    前往功能管理工具:Config Sync

  2. 在叢集表格中,選取要與機群設定同步的叢集。

  3. 按一下「與機群設定同步」

停用機群預設值

如要為整個機群停用 Config Sync 預設設定,請按照下列步驟操作:

  1. 如要停用車隊預設設定,請執行下列指令:

    gcloud beta container fleet config-management disable --fleet-default-member-config
    
  2. 確認機群預設設定已停用:

    gcloud beta container fleet config-management status
    

後續步驟