本页面介绍了您可以使用 Google Cloud CLI
apply
命令中的 --config 标志和
enable
命令中 beta 发布轨道中的 --fleet-default-member-config 标志来配置
Config Sync 的不同字段。现在,我们不建议在
命令的
alpha发布轨道中使用此字段架构
,而是建议使用
新的 API 架构
。enable
与这些 gcloud CLI 标志配合使用的文件格式类似于 ConfigManagement 对象的格式。但是,两者的格式并不相同,而且不能互换使用。
Config Management 的常见配置
| 键 | 说明 |
|---|---|
spec.version |
Config Management 的版本。如果您要为集群配置 Config Management,则默认版本是该集群上安装的 Config Management 的当前版本。否则,对于舰队范围的配置或目标集群上没有现有安装的情况,默认版本是最新版本。 |
Config Sync 的配置
| 键 | 说明 |
|---|---|
spec.cluster |
Config Sync
cluster-name-selector
annotation 或 ClusterSelector,
使用的集群名称,用于将配置仅应用于部分集群。如果 Config Sync cluster-name-selector 注解或 ClusterSelector 使用的名称与集群的舰队成员资格名称不同,请设置此字段。 |
spec.upgrades |
(预览版)Config Sync 的升级设置。
默认值和唯一支持的值是 manual。
|
spec.configSync.enabled |
如果为 true,则安装和管理
Config Sync。
如果为 false,则卸载之前管理的任何 Config Sync
并忽略其余的 .spec.configSync 配置。
对于 gcloud CLI 429.0.0 及更低版本是必需的。对于 gcloud CLI 430.0.0 及更高版本是可选的。默认值:true |
spec.configSync.sourceType |
Config Sync 应同步的来源类型。接受 git 或 oci。默认值:git。 |
spec.configSync.syncRepo |
用作可靠来源的 Git 代码库或 OCI 映像的网址。 如果您没有准备好代码库,则可以省略此字段。 |
spec.configSync.syncBranch |
要用作同步来源的 Git 代码库分支。如果
.spec.configSync.sourceType 设置为 oci,则此字段将被忽略。此
字段是可选字段,默认值为master。我们建议使用
spec.configSync.syncRev 字段来指定分支名称。如果同时使用这两个字段,则 spec.configSync.syncRev 字段优先于 spec.configSync.syncBranch。 |
spec.configSync.policyDir |
Git 代码库或 OCI 映像中的路径,其中包含您要同步的配置的根目录。默认值:代码库的根目录。 |
spec.configSync.syncWait |
连续两次同步操作之间的间隔时长(以秒为单位)。默认值:15。 |
spec.configSync.syncRev |
要用作同步来源的 Git 修订版本(标记或哈希)或分支。如果
.spec.configSync.sourceType 设置为 oci,则此字段将被忽略。此
字段是可选字段,默认值为 HEAD。使用哈希时,
哈希必须是完整哈希,而不是缩写形式。 |
spec.configSync.preventDrift |
如果为 true,则允许 Config Sync 准入网络钩子通过拒绝有冲突的更改推送到活跃集群来
防止偏移
。默认值:false。
无论此字段的值如何,Config Sync 始终会修复偏移。 |
spec.configSync.stopSyncing |
如果为 true,则停止同步单个集群的配置。
默认值为 false。 |
spec.configSync.secretType |
为访问 .spec.configSync.syncRepo 而配置的 Secret 类型。
如果选择 git 作为来源类型,该值必须为 ssh、cookiefile、gcenode、gcpserviceaccount、token 或 none。如果您选择了 oci 作为来源类型,则值必须为 gcenode、gcpserviceaccount 或 none。此字段的验证区分大小写。必填。 |
spec.configSync.gcpServiceAccountEmail |
用于为 RootSync 或
RepoSync 控制器的 Kubernetes 服务账号添加注解的服务账号。 Cloud de Confiance by S3NS 此字段仅在 spec.configSync.secretType 为 gcpserviceaccount 时使用
。 |
spec.configSync.metricsGcpServiceAccountEmail |
已弃用:如果启用了 Workload Identity Federation for GKE, Cloud de Confiance 则导出 Config Sync 指标不需要服务账号。请改用 Kubernetes 服务账号。 |
spec.configSync.sourceFormat |
设置为 unstructured 时,配置 a
non-hierarchical repo。
默认值:hierarchy。 |
spec.configSync.deploymentOverrides |
Config Sync 部署的资源替换配置列表。
此字段仅适用于容器不是根协调器或命名空间协调器的 Config Sync 部署,例如reconciler-manager。如果您必须替换根协调器或命名空间
协调器,请改用
rootsync 或 reposync 字段。可选。 |
spec.configSync.deploymentOverrides.name |
要替换的 Config Sync 部署的名称。 值不能留空。 |
spec.configSync.deploymentOverrides.namespace |
要替换的 Config Sync 部署的命名空间。 值不能留空。 |
spec.configSync.deploymentOverrides.containers |
Config Sync 容器的请求和限制的替换配置列表。可选。 |
spec.configSync.deploymentOverrides.containers.name |
要替换的 Config Sync 容器的名称。 值不能留空。 |
spec.configSync.deploymentOverrides.containers.cpuRequest |
容器的 CPU 请求。使用 Kubernetes 中的 CPU 资源单位。可选。 |
spec.configSync.deploymentOverrides.containers.cpuLimit |
容器的 CPU 限制。使用 Kubernetes 中的 CPU 资源单位。可选。 |
spec.configSync.deploymentOverrides.containers.memoryRequest |
容器的内存请求。使用 Kubernetes 中的内存资源单位。可选。 |
spec.configSync.deploymentOverrides.containers.memoryLimit |
容器的内存限制。使用 Kubernetes 中的内存资源单位。可选。 |
Git 代码库的代理配置
如果您的组织的安全政策要求您通过 HTTPS 代理路由流量,则可以使用该代理的 URI 将 Config Sync 配置为与 Git 主机进行通信。仅当使用 cookiefile、none 或 token 授权类型时才支持代理。
| 键 | 说明 |
|---|---|
spec.configSync.httpsProxy |
定义用于访问 Git 代码库的 HTTPS_PROXY 环境变量。例如 https://proxy.internal.business.co:443。HTTPS 代理仅接受 https 或未修饰的网址。包含 http:// 的网址会被拒绝。如果使用未修饰的网址,请确保代理服务器和 Git 主机之间的通信安全。 |
gcloud apply spec 的示例
applySpecVersion: 1
spec:
configSync:
enabled: true
sourceFormat: unstructured
syncRepo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples
syncBranch: main
secretType: none
policyDir: config-sync-quickstart/multirepo/root
包含部署资源替换的 gcloud apply spec 的示例
如果您想自定义 Config Sync 资源请求和限制,请在 apply spec 中添加 deploymentOverrides 字段。例如,以下
YAML 会替换 reconciler-manager 容器的 CPU 和内存限制:
applySpecVersion: 1
spec:
configSync:
enabled: true
deploymentOverrides:
- name: reconciler-manager
namespace: config-management-system
containers:
- name: reconciler-manager
cpuRequest: 50m
cpuLimit: 100m
memoryRequest: 256Mi
memoryLimit: 512Mi