将 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。请将 HTTPS 格式用于网址,如果 ssh 是 sourceType,则使用 SSH 格式。
    • REVISION:需与其同步的 Git 修订版本(标记或哈希)或是分支名称。使用哈希时,哈希必须是完整哈希,而不是缩写形式。
    • SECRET_TYPE:用于连接到 Git 仓库的身份验证方法。对于公共仓库,请使用 none。对于私有仓库,请使用以下方法之一:

      • ssh:使用 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 的 Google Cloud服务账号 (GSA) 的邮箱。如需详细了解如何设置指标导出,请参阅监控 Config Sync

    如需查看可添加到 apply-spec 清单的完整字段列表,请参阅 gcloud apply spec 字段

  2. 运行以下命令,应用包含默认舰队设置的 apply-spec 文件:

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

控制台

  1. 在 Google Cloud 控制台中,前往 Feature Manager 页面。

    前往 Feature Manager

  2. Config Sync 窗格中,点击配置

  3. 查看舰队级设置。您在舰队中创建的所有新集群都会继承这些设置。

  4. 可选:如需更改默认设置,请点击自定义舰队设置。在显示的对话框中,执行以下操作:

    1. 选择要使用的 Config Sync 版本。
    2. 点击保存更改
  5. 点击配置

  6. 配置舰队设置确认对话框中,点击确认。 如果您之前未启用 Config Sync,则点击确认还会启用 anthosconfigmanagement.googleapis.com API。

虽然您无法通过 Google Cloud 控制台将可信来源设置配置为舰队默认设置,但使用部署软件包功能时可以选择多个集群。

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 的 Google Cloud服务账号 (GSA) 的邮箱。如需详细了解如何设置指标导出,请参阅监控 Config Sync

    如需查看可添加到 apply-spec 清单的完整字段列表,请参阅 gcloud apply spec 字段

  2. 运行以下命令,应用包含默认舰队设置的 apply-spec 文件:

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

控制台

  1. 在 Google Cloud 控制台中,前往 Feature Manager 页面。

    前往 Feature Manager

  2. Config Sync 窗格中,点击配置

  3. 查看舰队级设置。您在舰队中创建的所有新集群都会继承这些设置。

  4. 可选:如需更改默认设置,请点击自定义舰队设置。在显示的对话框中,执行以下操作:

    1. 选择要使用的 Config Sync 版本。
    2. 点击保存更改
  5. 点击配置

  6. 配置舰队设置确认对话框中,点击确认。 如果您之前未启用 Config Sync,则点击确认还会启用 anthosconfigmanagement.googleapis.com API。

虽然您无法通过 Google Cloud 控制台将可信来源设置配置为舰队默认设置,但使用部署软件包功能时可以选择多个集群。

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
    

    此命令的输出应显示为 Yes,表示您同步的成员处于 Synced_to_Fleet_Default 状态。

控制台

  1. 前往 Feature Manager

    前往“Feature Manager: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
    

后续步骤