本页面介绍如何在使用 Google Cloud 控制台或 Google Cloud CLI 安装 Config Sync 后,使用 kubectl
命令配置 Config Sync。
虽然您可以使用控制台或 CLI 进行许多配置更改,但您仍需要使用 kubectl
命令来替换一些 Config Sync 默认配置以控制 SSL 证书验证以及使用证书授权机构。
创建和修改 RootSync 配置文件
如需使用 kubectl
命令配置 Config Sync,请创建 YAML 文件以修改 RootSync 对象。
当您使用 Google Cloud 控制台或 Google Cloud CLI 安装 Config Sync 时,Config Sync 会自动创建一个名为 root-sync
的 RootSync 对象。此对象包含 Config Sync 的最新配置信息。每当您在 Google Cloud 控制台或 Google Cloud CLI 中进行更改时,root-sync
都会进行更新。
了解您可以使用 kubectl
修改的字段
您可以对 Google Cloud 控制台或 Google Cloud CLI 中不支持的字段使用 kubectl
命令对 root-sync
进行高级更改。如果您要直接使用 kubectl
命令创建 RootSync 或 RepoSync 对象,然后进行更新,请参阅 RootSync 和 RepoSync 字段。
在对您在下一部分中创建的 YAML 文件进行任何更改之前,请先熟悉下表。下表列出了您可以修改和添加的字段。如果您修改此表中未列出的字段,Config Sync 会自动将更改还原为您之前在 Google Cloud 控制台或 Google Cloud CLI 中配置 Config Sync 时设置的值。
键 | 说明 |
---|---|
spec.git.noSSLVerify |
noSSLVerify 指定是启用还是停用 SSL 证书验证。默认值:false 。如果 noSSLVerify 设置为 true ,则会指示 Git 跳过 SSL 证书验证。 |
spec.git.caCertSecretRef.name |
包含证书授权机构 (CA) 证书的 Secret 的名称。如果提供此字段,则 Git 服务器必须使用由此 CA 颁发的证书。CA 证书必须存储在 Secret 中名为“cert”的密钥下。 |
spec.override.resources |
容器资源请求和限制替换值的列表。可选。 列表中的每一项均包含三个字段:
如果未提供资源请求或限制的替换值,则使用默认资源请求或限制值。 |
spec.override.gitSyncDepth |
gitSyncDepth 允许您替换要提取的 Git 提交次数。不得小于 0。 如果此字段为 0,则 Config Sync 执行完整克隆;如果此字段大于 0,则会执行浅层克隆。 如果未提供此字段,Config Sync 会自动进行配置。 |
spec.override.statusMode |
statusMode 可让您启用或停用资源级状态捕获。默认值为 enabled 。如需停用资源级状态捕获,请将此字段设置为 disabled 。 |
spec.override.reconcileTimeout |
reconcileTimeout 允许您替换放弃操作之前等待应用组中的资源进行协调所花费时间的阈值。一个提交作业中的所有资源可以位于多个应用组中,具体取决于依赖项。默认超时为 5m 。使用字符串指定此字段值,例如 30s 或 5m 。 |
spec.override.enableShellInRendering |
enableShellInRendering 指定在渲染过程中是要启用还是停用 shell 访问。Kustomize 远程库需要 shell 访问。将此字段设置为 true 可在渲染过程中启用 shell 访问,并支持从公共代码库中拉取远程库。默认值为 false 。 |
创建文件
如需创建和修改 root-sync
的配置文件,请完成以下步骤:
如需确保您检索的是正确集群的配置信息,请配置
kubectl
命令行访问权限:gcloud container clusters get-credentials CLUSTER_NAME \ --zone ZONE \ --project PROJECT_ID
请替换以下内容:
CLUSTER_NAME
:包含要更改的 Config Sync 配置的集群的名称ZONE
:您在其中创建集群的可用区PROJECT_ID
:您的项目 ID
将配置信息从 Config Sync 创建的 RootSync 对象复制到 YAML 文件中:
kubectl get rootsync root-sync -n config-management-system -o yaml > FILE_NAME.yaml
将
FILE_NAME
替换为您的配置文件的名称。打开您创建的 YAML 文件并进行所需的配置更改。例如,如需替换
git-sync
容器的内存限制,请添加以下的粗体字段:apiVersion: v1 items: - apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: annotations: configmanagement.gke.io/managed-by-hub: "true" configmanagement.gke.io/update-time: "1644945169" creationTimestamp: "2022-02-15T17:12:52Z" generation: 1 name: root-sync namespace: config-management-system resourceVersion: "211980457" uid: aa30a94b-2825-4590-ad30-5af848403502 spec: git: auth: none branch: main dir: /quickstart/config-sync period: 15s repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples revision: HEAD secretRef: {} override: resources: - containerName: "git-sync" memoryLimit: "400Mi" sourceFormat: unstructured # Remainder of RootSync omitted
将更改应用于 YAML 文件:
kubectl apply -f FILE_NAME.yaml
如需验证 Config Sync 是否已应用您的更改,请查看 RootSync 对象:
kubectl describe rootsync root-sync -n config-management-system
如需确认您的更改没有引入任何错误,请使用
nomos status
命令:nomos status
配置证书授权机构
对于使用非可信证书授权机构 (CA) 颁发的证书进行配置的服务器,Config Sync 可以配置为使用 CA 证书来验证与服务器的 HTTPS 连接。Git、Helm 和 OCI 服务器都支持此操作。CA 证书必须包含完整的 SSL 证书(根证书/中间证书/叶证书)。如果您的服务器已在使用可信 CA,或者没有通过 HTTPS 进行连接,则可以跳过此步骤并且无需设置 caCertSecretRef
。
RootSync
提取用于为 Git 服务器颁发证书的 CA 证书,并将其保存到一个文件中。
对于
RootSync
对象,必须在config-management-system
命名空间中创建 Secret。例如:kubectl create secret generic ROOT_CA_CERT_SECRET_NAME
--namespace=config-management-system
--from-file=cert=/path/to/CA_CERT_FILE配置
RootSync
对象时,将RootSync
对象中caCertSecretRef.name
字段的值设置为 ROOT_CA_CERT_SECRET_NAME。
RepoSync
提取用于为 Git 服务器颁发证书的 CA 证书,并将其保存到一个文件中。
对于
RepoSync
对象,必须在 RepoSync 所在的命名空间中创建 Secret。例如:kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME
--namespace=REPO_SYNC_NAMESPACE
--from-file=cert=/path/to/CA_CERT_FILE配置
RepoSync
时,将RepoSync
对象中caCertSecretRef.name
字段的值设置为 NAMESPACE_CA_CERT_SECRET_NAME。
移除 RootSync 对象
如需删除 root-sync
,请运行以下命令:
kubectl delete -f FILE_NAME
将 FILE_NAME
替换为您的 RootSync 配置文件的名称。例如 root-sync.yaml
。
删除 RootSync 或 RepoSync 对象不会清理 Config Sync 注解和标签。如需清理任何托管式资源,请从空 Git 目录进行同步。
后续步骤
- 详细了解 RootSync 和 RepoSync 字段。
- 了解如何监控 RootSync 和 RepoSync 对象。