Config Sync 会将您的 Kubernetes 配置与集群同步。本文档介绍了如何使用默认设置启用和配置 Config Sync。本教程重点介绍如何从非结构化 Git 代码库同步配置。
本页面适用于希望实现 GitOps 工具来集中管理团队配置的运维人员。如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE 用户角色和任务。
如需了解如何使用高级设置安装 Config Sync,请参阅自定义 Config Sync 安装。
准备工作
在安装 Config Sync 之前,请准备好 Git 代码库和 GKE 集群。
创建 Git 代码库并向 Config Sync 授予访问权限
为了将配置从 Git 代码库同步到集群,Config Sync 需要对您的代码库具有只读访问权限。如需授权 Config Sync 读取您的配置,请完成以下步骤:
创建或有权访问一个 Git 代码库,其中包含您希望 Config Sync 同步到集群的配置文件。
如果您的 Git 代码库是公开的,则无需执行任何进一步操作。 Config Sync 不需要额外的权限。
如果您的 Git 代码库是私有的,请按照向 Config Sync 授予对 Git 的访问权限中的说明操作。
创建集群
如果您已准备好集群(例如,您已按照步骤向 Config Sync 授予对 Git 的访问权限),请继续安装 Config Sync。
Config Sync 要求集群注册到舰队。如需注册集群,请完成以下步骤:
控制台
无需进行任何操作。安装 Config Sync 时,您的集群会自动注册到舰队。
gcloud
如需创建已注册到舰队的 Autopilot 集群,请运行以下命令:
gcloud container clusters create-auto CLUSTER_NAME --enable-fleet
如需创建已注册到舰队的标准集群,请运行以下命令:
gcloud container clusters create CLUSTER_NAME --enable-fleet \ --workload-pool=PROJECT_ID.svc.id.goog
替换以下内容:
CLUSTER_NAME
:您的集群的名称。PROJECT_ID
:您的项目 ID。
如需详细了解如何注册集群,请参阅向舰队注册集群。
安装 Config Sync
如需启用并配置 Config Sync 以将配置从 Git 代码库同步到已注册的集群,请完成以下步骤:
控制台
如果您使用 Google Cloud 控制台,请先在集群上安装 Config Sync,然后配置一个软件包,使 Config Sync 能够从 Git 代码库进行同步。
安装 Config Sync
前往 Google Cloud 控制台中的 Config Sync 页面。
点击安装 Config Sync。
选择在舰队中的所有集群上安装。
所有其他设置都保留默认值。
点击安装 Config Sync。
在设置标签页中,几分钟后,您应该会在舰队中集群的状态列中看到已启用。
部署软件包
点击部署集群软件包。
在选择集群标签页中,选择要部署软件包的集群,然后点击继续。
点击配置软件包标签页,然后输入软件包的名称。
在来源部分,完成以下操作:
在代码库网址字段中,输入 Git 代码库的网址。
可选:查看并更新其他字段设置。根据代码库结构,您可能不需要更新这些设置。
可选:如果您的代码库是私有的,请展开高级设置部分以配置身份验证方法。 Google Cloud 控制台提供了嵌入式说明,可帮助您配置身份验证设置。
所有其他设置都保留默认值。
点击部署软件包。
系统会将您重定向至 Config Sync 软件包页面。几分钟后,您应该会在配置的集群的同步状态列中看到已同步。
gcloud
如果您使用 gcloud CLI,则可以通过创建包含 Config Sync 设置的清单,然后将这些设置应用到集群来安装 Config Sync。
启用
ConfigManagement
舰队功能:gcloud beta container fleet config-management enable
创建名为
apply-spec.yaml
的清单。此示例清单包含建议的默认设置:applySpecVersion: 1 spec: configSync: enabled: true sourceFormat: unstructured syncRepo: REPO_URL # syncRev: REVISION secretType: none preventDrift: false
替换以下内容:
REPO_URL
:您的 Git 代码库的网址,例如https://github.com/GoogleCloudPlatform/anthos-config-management-samples
。(可选)
REVISION
:您要同步的 Git 修订版本(标记或哈希)或分支。如果您需要从HEAD
以外的位置进行同步,请取消此字段的注释并替换它。对于私有代码库,您可以将
secretType
字段更改为受支持的身份验证方法。一般建议使用具有 Secure Source Manager 的 Google 服务账号 (gcpserviceaccount
)。或者,使用ssh
,因为它适用于大多数 Git 提供商。如需详细了解支持的身份验证方法,请参阅授予对 Git 的访问权限。
将清单应用到您的集群:
gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=apply-spec.yaml \ --project=PROJECT_ID
替换以下内容:
MEMBERSHIP_NAME
:您在注册集群时选择的舰队成员资格名称。使用gcloud container fleet memberships list
命令获取名称。PROJECT_ID
:您的项目 ID。
验证安装
安装和配置 Config Sync 后,请验证安装是否成功完成。
控制台
前往 Google Cloud 控制台中的 Config Sync 页面。
在软件包标签页上,检查集群表中的同步状态列。Config Sync 成功安装的状态为已安装。成功配置的 Git 代码库的状态为已同步。
gcloud
运行以下命令:
nomos status
成功安装后,状态会显示为 SYNCED
或 PENDING
。
如需详细了解 nomos status
命令提供的信息(包括报告的错误),请参阅 nomos
命令行工具文档中的检查 Config Sync 状态。