您可以将 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
。请将 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
:如果gcpserviceaccount
是secretType
,请取消注释此字段并添加 Google 服务账号邮箱,例如config-sync@PROJECT_ID.iam.gserviceaccount.com
。METRICS_EMAIL
:用于将 Config Sync 指标导出到 Cloud Monitoring 的 Google Cloud服务账号 (GSA) 的邮箱。如需详细了解如何设置指标导出,请参阅监控 Config Sync。
如需查看可添加到
apply-spec
清单的完整字段列表,请参阅 gcloud apply spec 字段。运行以下命令,应用包含默认舰队设置的
apply-spec
文件:gcloud beta container fleet config-management enable \ --fleet-default-member-config=apply-spec.yaml
控制台
在 Google Cloud 控制台中,前往 Feature Manager 页面。
在 Config Sync 窗格中,点击配置。
查看舰队级设置。您在舰队中创建的所有新集群都会继承这些设置。
可选:如需更改默认设置,请点击自定义舰队设置。在显示的对话框中,执行以下操作:
- 选择要使用的 Config Sync 版本。
- 点击保存更改。
点击配置。
在配置舰队设置确认对话框中,点击确认。 如果您之前未启用 Config Sync,则点击确认还会启用
anthosconfigmanagement.googleapis.com
API。
虽然您无法通过 Google Cloud 控制台将可信来源设置配置为舰队默认设置,但使用部署软件包功能时可以选择多个集群。
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 的 Google Cloud服务账号 (GSA) 的邮箱。如需详细了解如何设置指标导出,请参阅监控 Config Sync。
如需查看可添加到
apply-spec
清单的完整字段列表,请参阅 gcloud apply spec 字段。运行以下命令,应用包含默认舰队设置的
apply-spec
文件:gcloud beta container fleet config-management enable \ --fleet-default-member-config=apply-spec.yaml
控制台
在 Google Cloud 控制台中,前往 Feature Manager 页面。
在 Config Sync 窗格中,点击配置。
查看舰队级设置。您在舰队中创建的所有新集群都会继承这些设置。
可选:如需更改默认设置,请点击自定义舰队设置。在显示的对话框中,执行以下操作:
- 选择要使用的 Config Sync 版本。
- 点击保存更改。
点击配置。
在配置舰队设置确认对话框中,点击确认。 如果您之前未启用 Config Sync,则点击确认还会启用
anthosconfigmanagement.googleapis.com
API。
虽然您无法通过 Google Cloud 控制台将可信来源设置配置为舰队默认设置,但使用部署软件包功能时可以选择多个集群。
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
此命令的输出应显示为
Yes
,表示您同步的成员处于Synced_to_Fleet_Default
状态。
控制台
前往 Feature Manager:
在集群表中,选择要同步到舰队设置的集群。
点击同步到舰队设置。
停用舰队默认设置
如需在舰队中停用 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 权限。