本页面适用于平台管理员。
本页面介绍如何安装 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 资源 ConfigManagementFeatureSpec
和 ConfigManagementBinding
。
您还可以使用 kubectl
来更新或升级现有 Anthos Config Management 安装。
设置 SSH 密钥
SSH 密钥对由两个文件组成:公钥和私钥。公钥通常具有 .pub
扩展名。
创建 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
:将密钥对输出到的路径。
配置您的代码库以识别新创建的公钥。请参阅 Git 托管服务提供商的文档。
将私钥添加到用户集群中的新 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
后缀的文件)。
从本地磁盘中删除私钥或以其他方式保护私钥。
配置 ConfigManagementFeatureSpec
和 ConfigManagementBinding
接下来,在您的集群中创建一个 ConfigManagementFeatureSpec
资源:
kubectl apply -f CONFIG_MANAGEMENT_YAML --kubeconfig=ADMIN_OIDC_KUBECONFIG
请替换以下内容:
- ADMIN_OIDC_KUBECONFIG:管理员集群的 OIDC 凭据。如需查看相关说明,请参阅使用 OIDC 登录到管理员集群 Kubernetes API 服务器。
- CONFIG_MANAGEMENT_YAML:
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"
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
请替换以下内容:
ADMIN_OIDC_KUBECONFIG
:管理员集群的 OIDC 凭据。如需查看相关说明,请参阅使用 OIDC 登录到管理员集群 Kubernetes API 服务器。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"}]