安装配置连接器

Config Connector 是一个 Kubernetes 插件,可让您通过 Kubernetes 配置管理您的 Google Cloud 资源。使用 Anthos Config Management,Anthos 用户可以自动安装卸载 Config Connector。

准备工作

  • 您必须具有 Anthos 授权才能使用 Anthos Config Management 安装 Config Connector。如果没有 Anthos 授权,则必须对 Config Connector 使用替代安装方法之一,而不是遵循本主题中的说明。

  • 您必须在遵循以下说明之前将 Anthos Config Management 升级到 v1.1.0 或更高版本。

  • 您必须具有未安装 Config Connector 的集群。

使用 Anthos Config Management 安装 Config Connector

要使用 Anthos Config Management 安装 Config Connector,请配置 Anthos Config Management 以在您的一个集群上安装 Config Connector,然后配置 cnrm-system 服务帐号

配置 Anthos Config Management

  1. Anthos Config Management 配置文件中,将 spec.configConnector.enabled 的值设置为 true

    # config-management.yaml
    
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      # Set to true to install and enable Config Connector
      configConnector:
        enabled: true
    
      # ...other fields...
      ```
    
  2. 使用 kubectl apply 应用配置。

    kubectl apply -f config-management.yaml
    

已创建 Pod,但直到您配置 cnrm-system 服务帐号以管理项目中的 Google Cloud 资源后,该 Pod 才能运行。

应用配置还可以创建 cnrm-system 命名空间,您可对其进行注释

配置 cnrm-system 服务帐号

在 Anthos Config Management 可以创建 Google Cloud 资源之前,Config Connector 需要使用 Identity and Access Management 服务帐号进行身份验证。

  1. 创建 cnrm-system 服务帐号:

    gcloud iam service-accounts create cnrm-system --project [PROJECT_ID]
    
  2. 该服务帐号具有自动生成的与之关联的电子邮件地址。要获取此电子邮件地址,请使用以下命令:

    gcloud iam service-accounts list | grep cnrm-system
    

    在以下命令中显示 [SERVICE_ACCOUNT_EMAIL] 的位置使用此值。

  3. 授予所需的 cnrm-system 服务帐号角色和权限,以配置您需要的特定 Google Cloud 资源。此示例授予 roles/owner 角色:

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
     --member "serviceAccount:[SERVICE_ACCOUNT_EMAIL]" \
     --role "roles/owner"
    
  4. 为服务帐号创建一个密钥,该密钥在本地存储为 key.json

    gcloud iam service-accounts keys create \
     --iam-account "[SERVICE_ACCOUNT_EMAIL]" \
     ./key.json
    
  5. 将密钥插入集群中的 cnrm-system 命名空间:

    kubectl create secret generic gcp-key \
     --from-file ./key.json \
     --namespace cnrm-system
    
  6. 移除密钥的本地副本,因为它包含敏感数据:

    rm ./key.json
    

Config Connector 现在可以通过将存储在代码库中的配置同步到 Anthos Config Management 中注册的集群来管理 Google Cloud 资源。

指定创建资源的位置

在使用 Anthos Config Management 创建资源之前,您必须先配置创建资源的位置。为了确定创建资源的位置,Config Connector 会在资源配置或命名空间中使用注释。如需了解详情,请参阅整理资源

您可以在项目、文件夹或组织中创建资源,这与使用 Google Cloud 整理资源的方法相同。

项目

在某个项目中创建资源,请运行以下命令,将 [NAMESPACE_NAME] 替换为您的命名空间名称,并将 [PROJECT_ID] 替换为您的 Google Cloud 项目 ID:

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/project-id=[PROJECT_ID]

文件夹

在某个文件夹中创建资源,请运行以下命令,将 [NAMESPACE_NAME] 替换为您的命名空间名称,并将 [FOLDER_ID] 替换为您的 Google Cloud 文件夹 ID:

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/folder-id=[FOLDER_ID]

组织

在某个组织中创建资源,请运行以下命令,将 [NAMESPACE_NAME] 替换为您的命名空间名称,并将 [ORGANIZATION_ID] 替换为您的 Google Cloud 组织 ID:

kubectl annotate namespace \
[NAMESPACE_NAME] cnrm.cloud.google.com/organization-id=[ORGANIZATION_ID]

为命名空间添加注释时,Config Connector 将在相应的项目、文件夹或组织中创建资源。如需详细了解 Config Connector 如何使用 Kubernetes 命名空间,请参阅 Kubernetes 命名空间和 Google Cloud 项目

验证安装

如果正确安装了 Config Connector,则其 Pod 和 CRD 将存在于集群中。

  1. 验证 Config Connector Pod 是否正在运行:

    kubectl wait -n cnrm-system \
     --for=condition=Initialized pod \
     cnrm-controller-manager-0
    

    如果正确安装了 Config Connector,则输出类似于以下内容:

    pod/cnrm-controller-manager-0 condition met

  2. 验证每种受支持的 Google Cloud 资源类型的 CRD 是否安装在集群中:

    kubectl get crds | grep cnrm.cloud.google.com
    

    如果正确安装了 Config Connector,该命令将列出以 .cnrm.cloud.google.com 结尾的资源,例如 bigquerydatasets.bigquery.cnrm.cloud.google.com

卸载 Config Connector

要停用和卸载 Config Connector,请编辑 Anthos Config Management 的配置文件,并将 spec.configConnector.enabled 的值设置为 false。

停止并移除 Config Connector Pod,并移除每种 Google Cloud 资源类型的 CRD。现有的 Google Cloud 资源修改。

后续步骤