设置 Anthos 关联的集群

本页面介绍如何将符合要求的 Kubernetes 集群关联到 Anthos。通过关联集群,您可以在 Google Cloud Console 中查看现有 Kubernetes 集群以及您的 Anthos 集群,并对这些集群启用一部分 Anthos 功能,包括使用 Anthos Config Management 进行配置。

前提条件

您可以将任何一致的 Kubernetes 集群连接到 Anthos,并在您的 Cloud Console 中使用 Anthos 集群进行查看。

以下集群类型和版本已经过 Google 验证,包括使用其他受支持的 Anthos 功能:

  • Amazon Elastic Kubernetes Service (Amazon EKS) on Kubernetes 1.18 版、1.19 版、1.20 版
  • Microsoft Azure Kubernetes Service (Microsoft AKS) on Kubernetes 1.18 版、1.19 版、1.20 版
  • Red Hat OpenShift Kubernetes Engine (OKE) 4.6 版、4.7 版
  • Red Hat OpenShift Container Platform (OCP) 4.6 版、4.7 版
  • Rancher Kubernetes Engine (RKE) 1.2.4 版、1.2.5 版、1.2.6 版
  • KIND 0.10 版

前期准备

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用 Anthos API。

    启用 API

  5. 安装并初始化 Cloud SDK
  6. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  7. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  8. 启用 Anthos API。

    启用 API

  9. 安装并初始化 Cloud SDK
  10. 请参阅连接前提条件,以确保您拥有相关权限并已启用用于注册集群的 API。 如需了解集群类型可能需要的任何特殊设置步骤,请参阅关联的集群前提条件部分。

注册关联的集群

必须向项目队列注册要用于 Anthos 的所有集群。队列(以前称为Environ )提供了一种在 Google Cloud 中查看和管理多个集群及其工作负载的统一方式。如需详细了解队列及其功能,请参阅队列指南

在 Anthos 项目中注册集群后,您可以通过 Cloud Console 中的“Anthos 集群”页面浏览和管理所有已注册的集群。您有权在这些集群上启用和使用 Anthos 功能,并且可以通过“Anthos 功能”页面在队列中启用某些 Anthos 功能。Anthos 费用仅适用于您注册的集群。

设置身份

所有关联的集群都需要 Connect 代理的身份才能向 Google 进行身份验证。如果您的集群满足要求,您可以在启用身份验证的情况下使用队列 Workload Identity 集群进行注册。启用了此功能的集群会使用队列范围内的队列工作负载工作负载身份池中的身份。您可以在关于队列 Workload Identity 中详细了解队列 Workload Identity。

如果您无法使用队列 Workload Identity,则注册关联集群时需要使用 Google Cloud 服务帐号进行身份验证。我们建议您为要附加的每个集群创建一个新的服务帐号。如需为具有相应角色的集群创建服务帐号,请按照使用 gcloud 创建 Google Cloud 服务帐号中的说明操作。 创建服务帐号后,您可以按照下一部分的说明使用带有服务帐号凭据(密钥文件)的 JSON 文件来注册集群。

注册集群

gcloud

运行以下命令:

 gcloud container hub memberships register MEMBERSHIP_NAME \
   --context=KUBECONFIG_CONTEXT \
   --kubeconfig=KUBECONFIG_PATH \
   --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH

请替换以下内容:

  • MEMBERSHIP_NAME:您选择用来唯一表示要在队列中注册的集群的成员资格名称。
  • SERVICE_ACCOUNT_KEY_PATH:作为“前提条件”的一部分予以下载的服务帐号私钥 JSON 文件的本地文件路径。此服务帐号密钥作为 Secret(名为 creds-gcp)存储在 gke-connect 命名空间中。
  • KUBECONFIG_CONTEXT:所注册集群的集群上下文,它显示在 kubeconfig 文件中。您可以通过运行 kubectl config current-context 从命令行获取此值。
  • KUBECONFIG_PATH:存储包含所注册集群的条目的 kubeconfig 的本地文件路径。如果设置了此环境变量,则默认为 $KUBECONFIG;否则默认为 $HOME/.kube/config

向队列 Workload Identity 注册关联的集群

如需注册启用了队列 Workload Identity 的关联集群,请运行以下命令之一。如需详细了解哪些关联集群类型可以使用此功能以及任何其他要求,请参阅关联集群前提条件

种类、OpenShift 集群

 gcloud container hub memberships register MEMBERSHIP_NAME \
   --context=KUBECONFIG_CONTEXT \
   --kubeconfig=KUBECONFIG_PATH \
   --enable-workload-identity \
   --has-private-issuer

EKS 集群

  1. 获取集群的 OIDC 提供商网址,并确保其公开显示。如果不存在提供商,请按照为您的集群创建 IAM OIDC 提供商中的说明操作,然后再次运行该命令。

    aws eks describe-cluster --name MEMBERSHIP_NAME --query "cluster.identity.oidc.issuer" --output text
    
  2. 运行以下命令,将 OIDC_URL 替换为上一个命令返回的网址:

     gcloud container hub memberships register MEMBERSHIP_NAME \
      --context=KUBECONFIG_CONTEXT \
      --kubeconfig=KUBECONFIG_PATH \
      --enable-workload-identity \
      --public-issuer-url=OIDC_URL
    

控制台

生成注册命令

您可以使用 Cloud Console 帮助生成 gcloud 注册命令来注册您的集群(仅使用服务帐号)。

如需注册集群,请执行以下操作:

  1. 在 Google Cloud Console 中,转到 Anthos 集群页面。此页面会显示您注册的所有集群。

    转到“Anthos 集群”页面

  2. 点击注册现有集群

  3. 点击添加外部集群

  4. 集群名称字段中输入要注册的集群的名称。

  5. 可选:为您的集群添加 Google Cloud 标签。

  6. 点击生成注册命令

  7. 在 Cloud Shell 或其他保存了服务帐号凭据的位置,修改并运行显示在页面上的 gcloud 命令。您需要指定以下值:

    • CLUSTER_CONTEXT 是 kubeconfig 文件中显示的集群上下文。您可以通过运行 kubectl config current-context 从命令行获取此值。
    • KUBECONFIG_PATH 是存储 kubeconfig 文件的本地文件路径。如果设置了此环境变量,则默认为 $KUBECONFIG;否则默认为 $HOME/.kube/config
    • LOCAL_KEY_PATH 是服务帐号密钥文件的路径。

    运行此命令会在用户集群中部署 Connect Agent。在 Connect Agent 连接到 Google Cloud 并且您的集群注册后,页面上会显示成功消息。

  8. 点击设置标签;如果未设置任何标签,则点击跳过

在关联的集群上启用 Anthos 功能

注册集群后,您可以在集群上为应用启用可用的 Anthos 功能。仅已验证集群类型支持这些功能。您可以在版本和升级支持中查看这些类型当前支持的功能版本。

以下指南介绍了如何在集群上启用受支持的功能:

如需了解所有 Anthos 组件(包括教程、参考资料等)的完整文档集,请参阅 Anthos 组件

访问附加的集群

注册附加的集群后,它将显示在 Google Cloud Console 中的 GKE 和 Anthos 集群页面中。但是,要查看节点和工作负载等更多详细信息,您需要登录集群并进行身份验证。如要从 Cloud Console 登录已附加的集群,请按照从 Cloud Console 登录集群中的说明操作。

如需通过命令行访问附加的集群,请参阅使用 Connect 网关连接到已注册的集群

如需使用现有的第三方身份提供商(仅限 AWS 集群上的 EKS,预览版功能)向关联的集群进行身份验证,请参阅为集群设置 Anthos Identity Service使用 Anthos Identity Service 访问集群

后续步骤