本页面介绍如何在使用 Cloud de Confiance 控制台或 Google Cloud CLI 安装 Config Sync 后,使用 kubectl 命令配置 Config Sync。
虽然您可以使用控制台或 CLI 进行许多配置更改,但您仍需要使用 kubectl 命令来替换一些 Config Sync 默认配置以控制 SSL 证书验证以及使用证书授权机构。
创建和修改 RootSync 配置文件
如需使用 kubectl 命令配置 Config Sync,请创建 YAML 文件以修改 RootSync 对象。
当您使用 Cloud de Confiance 控制台或 Google Cloud CLI 安装 Config Sync 时,Config Sync 会自动创建名为 root-sync 的 RootSync 对象。此对象包含 Config Sync 的最新配置信息。每当您在 Cloud de Confiance 控制台或 Google Cloud CLI 中进行更改时,root-sync 都会进行更新。
了解您可以使用 kubectl 修改的字段
对于 Cloud de Confiance 控制台或 Google Cloud CLI 中不支持的字段,您可以使用 kubectl 命令对 root-sync 进行高级更改。如果您要直接使用 kubectl 命令创建 RootSync 或 RepoSync 对象,然后进行更新,请参阅 RootSync 和 RepoSync 字段。
在对您在下一部分中创建的 YAML 文件进行任何更改之前,请先熟悉下表。下表列出了您可以修改和添加的字段。如果您修改此表中未列出的字段,Config Sync 会自动将更改还原为您上次在 Cloud de Confiance 控制台或 Google Cloud CLI 中配置 Config Sync 时设置的值。
| 键 | 说明 |
|---|---|
spec.helm |
Helm 代码库配置的所有字段。 |
spec.override |
用于替换默认配置的所有字段。 |
spec.git.noSSLVerify |
指定是为 Git 启用还是停用 SSL 证书验证。默认值为 false。
|
spec.git.caCertSecretRef.name |
包含 Git 代码库的证书授权机构 (CA) 证书的 Secret 的名称。 |
spec.oci.caCertSecretRef.name |
包含 OCI 代码库的证书授权机构 (CA) 证书的 Secret 的名称。 |
创建文件
如需创建和修改 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 对象。