安装 Anthos Config Management

本页面适用于平台管理员

本页面介绍如何安装 Anthos Config Management。

Anthos Config Management 可让您通过从中央 Git 存储库自动部署新配置,以声明方式将政策和配置应用于您的 Anthos 集群。如需了解详情,请参阅 Anthos Config Management 文档。

您可以使用管理中心或使用 kubectl 来安装 Anthos Config Management。您需要一个 Git 代码库才能安装 Anthos Config Management。

从管理中心安装

导航到配置管理标签页,然后点击安装,在用户集群上安装 Anthos Config Management。然后,按照页面上的说明完成设置。

您还可以更新或升级现有的 Anthos Config Management 安装。点击版本列下的链接以修改现有配置。

使用 kubectl 安装

使用 kubectl 安装 Anthos Config Management 包含两个步骤。首先,设置 Config Sync 用于向 Git 代码库进行身份验证的 SSH 密钥。然后,在集群中安装 Anthos Config Management 资源 ConfigManagementFeatureSpecConfigManagementBinding

您还可以使用 kubectl 来更新或升级现有 Anthos Config Management 安装。

设置 SSH 密钥

SSH 密钥对由两个文件组成:公钥和私钥。公钥通常具有 .pub 扩展名。

  1. 创建 SSH 密钥对,以允许 Config Sync 向您的 Git 代码库进行身份验证。您可以对所有集群使用一个密钥对,也可以对每个集群各使用一个密钥对,具体取决于您的安全性和合规性要求。

    以下命令会创建 4096 位 RSA 密钥。建议不要使用较小的值:

    ssh-keygen -t rsa -b 4096 \
      -C GIT_REPOSITORY_USERNAME \
      -N '' \
      -f /path/to/KEYPAIR_FILENAME
    

    请替换以下内容:

    • GIT_REPOSITORY_USERNAME:您希望 Config Sync 用于向代码库进行身份验证的用户名。
    • /path/to/KEYPAIR_FILENAME:将密钥对输出到的路径。
  2. 配置您的代码库以识别新创建的公钥。请参阅 Git 托管服务提供商的文档。

  3. 将私钥添加到用户集群中的新 Secret 对象

    kubectl create ns config-management-system --kubeconfig=USER_CLUSTER_KUBECONFIG && \
    kubectl create secret generic git-creds --kubeconfig=USER_CLUSTER_KUBECONFIG \
     --namespace=config-management-system \
     --from-file=ssh=/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
    

    请替换以下内容:

    • USER_CLUSTER_KUBECONFIG:用户集群的配置文件。您可以从管理中心获取此配置文件。
    • /path/to/KEYPAIR_PRIVATE_KEY_FILENAME:私钥的名称(不含 .pub 后缀的文件)。
  4. 从本地磁盘中删除私钥或以其他方式保护私钥。

配置 ConfigManagementFeatureSpecConfigManagementBinding

接下来,在您的集群中创建一个 ConfigManagementFeatureSpec 资源:

kubectl apply -f CONFIG_MANAGEMENT_YAML --kubeconfig=ADMIN_OIDC_KUBECONFIG

请替换以下内容:

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.12.0"
  git:
    syncRepo: "git@GIT_HOST_ADDRESS:REPO_NAME.git"
    policyDir: "."
    secretType: "ssh"
    syncBranch: "master"
    syncRev: "HEAD"
    syncWait: 15
  policyController:
    enabled: true
---
apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementBinding
metadata:
  name: config-management-binding-sample
  namespace: anthos-management-center
spec:
  configs:
  - configRef:
      name: config-management-spec-sample
      namespace: anthos-management-center
    placement:
      clusterIDs:
      - "CLUSTER-NAME"

请替换以下内容:

  • GIT_HOST_ADDRESS:Git 代码库的主机地址。
  • REPO_NAME:Git 代码库的名称。
  • CLUSTER-NAME:集群的名称。

更新和升级

您可以通过修改相应的 ConfigManagementFeatureSpec 来更新或升级 Anthos Config Management。

例如,如需启用非结构化代码库功能,请更新 ConfigManagementFeatureSpec

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.12.0"
  sourceFormat: "unstructured"
  git:
    syncRepo: "git@<YOUR_GIT_HOST_ADDRESS>:<YOUR_UNSTRUCTURED_REPO>.git"
    policyDir: "."
    secretType: "ssh"
    syncBranch: "master"
    syncRev: "HEAD"
    syncWait: 15
  policyController:
    enabled: true

查看 Anthos Config Management 状态

您可以通过查询 ConfigManagementBinding 资源来查看 Anthos Config Management 状态。

kubectl get ConfigManagementBinding -o \
jsonpath="{range .items[*].status.bindingItemStatuses[*]}{'\n'}{['clusterID', 'configRef', 'conditions']}" \
--namespace=anthos-management-center \
--kubeconfig=ADMIN_OIDC_KUBECONFIG \
| grep CLUSTER-NAME

请替换以下内容:

以下是 Anthos Config Management 运行状况良好的示例输出:

target-user-cluster-1 {"name":"new-spec-f75y8","namespace":"anthos-management-center"} [{"lastTransitionTime":"2021-05-27T18:06:27Z","message":"","observedGeneration":1,"reason":"Healthy","status":"True","type":"Ready"}]

后续步骤