使用 GKE 插件进行安装
本页面介绍如何使用 Config Connector 插件在 Google Kubernetes Engine (GKE) 集群上安装 Config Connector。
如需详细了解每种安装方案及其优缺点, 请参阅 选择安装类型。
准备工作
在开始之前,请确保您已执行以下任务:
- 启用 Google Kubernetes Engine API。 启用 Google Kubernetes Engine API
- 如果您要使用 Google Cloud CLI 执行此任务,请安装并初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行
gcloud components update
以获取最新版本。
选择或创建 Google Cloud 项目以在其中安装 Config Connector。
如果您以前 手动安装 Config Connector, 请先卸载它,然后再安装 Config Connector 插件:
安装 Config Connector 插件
通过创建新 GKE 集群或在现有集群上启用 Config Connector 插件,您就可以使用该插件。安装 Config Connector 插件后,使用 Google 服务账号和命名空间配置 Config Connector 安装。
要求
Config Connector 插件有以下要求:
您必须使用以下 GKE 版本:
- 1.15.11-gke.5 及更高版本
- 1.16.8-gke.8 及更高版本
- 1.17.4-gke.5 及更高版本
您必须在启用了 Config Connector 的集群上启用 Workload Identity 池和 Kubernetes Engine Monitoring。
设置 GKE 集群
您可以在新集群或现有集群上使用 Config Connector 插件。
创建启用了 Config Connector 插件的新集群
您可以使用 gcloud CLI 或 Google Cloud 控制台。
gcloud
如需使用 Google Cloud CLI 创建集群,请运行以下命令:
gcloud container clusters create CLUSTER_NAME \
--release-channel CHANNEL \
--addons ConfigConnector \
--workload-pool=PROJECT_ID.svc.id.goog \
--logging=SYSTEM \
--monitoring=SYSTEM
请替换以下内容:
- 将 CLUSTER_NAME 替换为您的 GKE 集群的名称。
- 将 CHANNEL 替换为 GKE 发布渠道,支持
rapid
和regular
。 - 将 PROJECT_ID 替换为 Google Cloud 项目 ID。
Google Cloud 控制台
如需使用 Google Cloud 控制台创建集群,请执行以下步骤:
访问 Google Cloud 控制台中的 Google Kubernetes Engine 菜单。
点击创建。此时会显示创建一个 Kubernetes 集群页面。
为集群指定名称。
选择支持的主版本。
根据需要配置集群的其余部分。
在导航窗格的集群下,点击安全。
选中启用 Workload Identity 复选框。
在左侧的导航窗格中,点击集群下的功能。
选中启用 Config Connector 复选框。
点击创建。
创建集群后,请转至创建身份。
在现有集群上启用 Config Connector 插件
您可以使用 gcloud
或 Google Cloud 控制台在现有 GKE 集群上启用 Config Connector 插件。
前提条件
在现有集群上启用 Config Connector 插件需要满足以下前提条件:
- 您需要一个满足 Config Connector 插件要求的集群。
在要安装 Config Connector 的集群上设置 Workload Identity。
如需为节点池启用 Workload Identity,请使用 gcloud
命令行工具:
gcloud container node-pools update NODE_POOL \
--workload-metadata=GKE_METADATA \
--cluster CLUSTER_NAME
请替换以下内容:
- 将 NODE_POOL 替换为您的节点池的名称
- 将 CLUSTER_NAME 替换为您的集群的名称
启用 Config Connector 插件
您可以在现有 GKE 集群中启用 Config Connector 插件 Google Cloud CLI 或 Google Cloud 控制台。
gcloud
如需在现有 GKE 集群中启用 Config Connector 插件,请使用 Google Cloud CLI:
gcloud container clusters update CLUSTER_NAME \
--update-addons ConfigConnector=ENABLED
将 CLUSTER_NAME 替换为 GKE 集群的名称。
Google Cloud 控制台
访问 Google Cloud 控制台中的 Google Kubernetes Engine 菜单。
选择要在其中安装 Config Connector 的集群。此时会显示集群详情页面。
在功能部分下,找到 Config Connector 行,然后点击
修改。选中启用 Config Connector 复选框,然后点击保存更改以更新您的集群。
创建身份
Config Connector 通过使用 Identity and Access Management (IAM) 服务账号进行身份验证以及使用 GKE 的 Workload Identity 将 IAM 服务账号与 Kubernetes 服务账号绑定来创建和管理 Google Cloud 资源。
如需创建身份,请完成以下步骤:
-
创建 IAM 服务账号。 如果您希望使用现有服务账号,则可以使用该账号并跳过此步骤。
如需创建服务账号,请使用以下命令: 将gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAME
替换为您的服务账号的名称。 - 向 IAM 服务账号授予对项目的提升权限:
替换以下内容:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/editor"
PROJECT_ID
替换为您的项目 ID。- 将
SERVICE_ACCOUNT_NAME
替换为您的服务账号的名称。
- 在 IAM 服务账号与 Config Connector 运行的预定义 Kubernetes 服务账号之间创建 IAM 政策绑定:
替换以下内容:gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager]" \ --role="roles/iam.workloadIdentityUser"
- 将
SERVICE_ACCOUNT_NAME
替换为您的服务账号的名称。 PROJECT_ID
替换为您的项目 ID。
- 将
如需详细了解如何创建服务账号,请参阅创建和管理服务账号。
配置 Config Connector
要完成安装,请为 ConfigConnector
CustomResource 创建配置文件,然后使用 kubectl apply
命令应用该配置文件。Config Connector Operator 会安装
集群中的 Google Cloud 资源 CRD 和 Config Connector 组件。
如需将 Operator 配置为集群模式,请完成以下步骤:
- 将以下 YAML 文件复制到名为
configconnector.yaml
的文件中: 替换以下内容:# configconnector.yaml apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only one # ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster googleServiceAccount: "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" # Setting `stateIntoSpec` to `Absent` is recommended. It means setting `cnrm.cloud.google.com/state-into-spec` # annotation to `absent` for all Config Connector resources created in the cluster in the future. # It prevents Config Connector from populating unspecified fields into the spec. stateIntoSpec: Absent
- 将
SERVICE_ACCOUNT_NAME
替换为您的服务账号的名称。 PROJECT_ID
替换为您的项目 ID。
- 将
- 使用
kubectl apply
将配置应用到集群:kubectl apply -f configconnector.yaml
指定创建资源的位置
Config Connector 可以按项目、文件夹或组织整理资源,这与使用 Google Cloud 整理资源的方式相同。
在使用 Config Connector 创建资源之前,必须先配置创建资源的位置。为了确定创建资源的位置,Config Connector 会在资源配置或现有命名空间中使用注释。如需了解详情,请参阅整理资源。
如果您没有可用于此目的的命名空间,请使用kubectl
创建一个命名空间。kubectl create namespace NAMESPACE
将 NAMESPACE
替换为您的命名空间名称。 例如 config-connector
。
选择一个标签页以便选择 Config Connector 创建资源的位置。
项目
如需在特定项目中创建资源,请运行以下命令:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID
请替换以下内容:
- 将
NAMESPACE
替换为您的命名空间名称。 - 将
PROJECT_ID
替换为 Google Cloud 项目 ID。
Folder
如需在特定文件夹中创建资源,请运行以下命令:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID
请替换以下内容:
- 将
NAMESPACE
替换为您的命名空间名称。 - 将
FOLDER_ID
替换为您的 Google Cloud 文件夹 ID。
组织
如需在特定组织中创建资源,请运行以下命令:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID
请替换以下内容:
- 将
NAMESPACE
替换为您的命名空间名称。 - 将
ORGANIZATION_ID
替换为您的 Google Cloud 组织 ID。
为命名空间添加注释时,Config Connector 将在相应的项目、文件夹或组织中创建资源。如需详细了解 Config Connector 如何使用 Kubernetes 命名空间,请参阅 Kubernetes 命名空间和 Google Cloud 项目。
验证安装
Config Connector 在命名空间 cnrm-system
中运行其所有组件。您可以通过运行以下命令来验证 Pod 是否准备就绪:
kubectl wait -n cnrm-system \
--for=condition=Ready pod --all
如果正确安装了 Config Connector,则输出类似于以下内容:
pod/cnrm-controller-manager-0 condition met
升级 Config Connector
集群 Config Connector 插件的升级由 Google Cloud 管理。
每当发生升级时,系统都会保留集群中的资源。
了解 Google Cloud 如何管理 Config Connector 插件升级或跳过 了解如何获取最新的 Config Connector 版本。
Google Cloud 如何管理 Config Connector 插件升级
GKE 集群获得的 Config Connector 版本取决于 完全基于集群的 GKE 次要版本。例如:
GKE 次要版本 | Config Connector 版本 |
---|---|
1.20 | 1.69.0 |
1.21 | 1.69.0 |
1.22 | 1.71.0 |
1.23 | 1.82.0 |
1.24 | 1.89.0 |
在版本符合条件时,Google Cloud 会重新映射 次要版本更新到新发布的 Config Connector 版本。这是为 所有足够新的 GKE 次要版本 提供常规或稳定发布版本。
由于集群获得的 Config Connector 版本取决于集群的 GKE Minor 版本外,在两种情况下 Config Connector 插件由 Google Cloud 自动升级:
集群会升级到映射到较新 Config Connector 版本的新 GKE 次要版本。
该集群所在的 GKE 次要版本足够新, 不在常规或稳定渠道中提供,并且 Google Cloud 会将该 GKE 次要版本重新映射到新的 Config Connector 版本。
当 Google Cloud 重新映射 GKE 次要版本和升级时 迁移到新的 Config Connector 版本 发布一个新的 Config Connector 版本”该 GKE 次要版本
Google Cloud 不会向 GKE 次要版本已经足够老,可以在 出于稳定性原因的常规或稳定发布渠道版本,但以下情况除外: 在检测到大范围问题的紧急情况下。
如何获取最新的 Config Connector 版本
通过 Config Connector 插件安装的 Config Connector 版本可以 最多会滞后 12 个月如果您需要最新的 Config Connector 我们建议您切换到 配置控制器 或 手动安装 Config Connector 并自行执行升级。 每个选项的迁移说明如下:
如需切换到 Config Controller,请按照 Config Controller 迁移说明操作 将现有的 Config Connector 资源迁移到 Config Controller 实例。
如需手动安装 Config Connector,请按照说明操作 从 Config Connector 插件切换到手动安装。
卸载 Config Connector
如需卸载 Config Connector,请完成以下步骤:
使用
kubectl delete
移除 Config Connector CRD 和控制器组件:kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com --wait=true
使用 gcloud CLI 或 Google Cloud 控制台:
gcloud
要使用
gcloud
停用 Config Connector 插件,请运行以下命令:gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLED
将 CLUSTER_NAME 替换为安装了 Config Connector 插件的集群的名称。
Cloud 控制台
如需从 Google Cloud 控制台停用 Config Connector 插件,请执行以下命令: 后续步骤。
前往 Google Cloud 控制台中的“Google Kubernetes Engine”集群页面,然后选择要更新的集群。
点击修改。系统会显示“修改集群”屏幕。
点击插件。
选择 Config Connector,然后选择已停用。
点击保存以更新您的集群。
后续步骤
- Config Connector 使用入门。
- 了解如何排查 Config Connector 问题。