配置由 Anthos On-Prem API 管理的集群

Anthos On-Prem API 是一个 Google Cloud 托管的 API,可让您使用标准工具(Google Cloud 控制台、Google Cloud CLI 或 Terraform)管理本地集群的生命周期。使用这些工具创建集群时,API 会将集群状态的元数据存储在创建集群时指定的 Google Cloud 区域中。此元数据可让您使用标准工具管理集群的生命周期。如果要使用这些工具查看集群详细信息或管理使用 gkectl 创建的集群的生命周期,则必须使用 Anthos On-Prem API 注册集群。

术语

通过注册集群,您可以使用控制台、gcloud CLI 或 Terraform 管理集群生命周期。

注册集群是将集群注册到舰队的单独过程。舰队是可以一起管理的 Kubernetes 集群的逻辑分组。所有 GKE on VMware 都在集群创建时注册到舰队。使用 gkectl 创建集群时,集群会注册到您在集群配置文件的 gkeConnect.projectID 字段中指定的 Google Cloud 项目。此项目即为舰队宿主项目。如需详细了解舰队,包括应用场景、最佳实践和示例,请参阅舰队管理文档。

查看已注册的集群

所有舰队集群都会显示在控制台中的 GKE Enterprise 集群GKE 集群页面上。这两者可让您大致了解整个舰队,并且对于 GKE on VMware,您可以了解哪些集群由 Anthos On-Prem API 管理。

如需查看您的舰队集群,请执行以下操作:

  1. 在控制台中,转到 GKE Enterprise 集群页面。
    转到 GKE Enterprise 集群页面
  2. 选择 Google Cloud 项目。
    • 如果类型列中显示 Anthos (VMware),则表示集群由 Anthos On-Prem API 管理。
    • 如果类型列中显示外部,则表示集群不由 Anthos On-Prem API 管理。
GKE Enterprise 集群列表

使用要求

  • 用户集群必须为 1.11 或更高版本。
  • 管理员集群必须为 1.13 或更高版本。
  • 如果您的组织设置了许可名单,以允许来自 Google API 和其他地址的流量通过代理服务器,请将以下条目添加到许可名单:

    • gkeonprem.googleapis.com
    • gkeonprem.mtls.googleapis.com

    这些是 Anthos On-Prem API 的服务名称。

  • 如果您不是项目所有者,则必须至少具有项目的 Identity and Access Management 角色 roles/gkeonprem.admin。如需详细了解此角色具备的权限,请参阅 IAM 文档中的 GKE On-Prem 角色

注册集群

要注册集群以供 Anthos On-Prem API 管理,请执行以下操作:

  1. 确保您拥有最新版本的 gcloud CLI。根据需要更新 gcloud CLI 组件:

    gcloud components update
    
  2. 在舰队宿主项目中启用 Anthos On-Prem API:

    gcloud services enable \
        --project FLEET_HOST_PROJECT_ID \
        gkeonprem.googleapis.com
    

    FLEET_HOST_PROJECT_ID 替换为您的舰队宿主项目的 ID。这是在管理员集群配置文件用户集群配置文件gkeconnect 部分中配置的项目 ID。

  3. 使用 Anthos On-Prem API 注册集群:

    用户集群

    如果需要填写 --admin-cluster-membership 标志的 ADMIN_CLUSTER_NAME 占位符,请务必滚动。

    gcloud container vmware clusters enroll USER_CLUSTER_NAME  \
      --project=FLEET_HOST_PROJECT_ID \
      --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
      --location=LOCATION
    

    替换以下内容:

    • USER_CLUSTER_NAME:您要注册的用户集群的名称。

    • FLEET_HOST_PROJECT_ID:舰队宿主项目的 ID。

    • ADMIN_CLUSTER_NAME:管理用户集群的管理员集群。管理员集群名称是用于唯一标识 Google Cloud 中的集群的完全指定集群名称中的最后一个部分。

    • LOCATION:运行 Anthos On-Prem API 的 Google Cloud 区域。请指定 us-west1 或其他受支持的区域。注册集群后,此区域便无法更改。除了设置运行 Anthos On-Prem API 的区域之外,还要设置存储以下内容的区域:

      • Anthos On-Prem API 管理集群生命周期所需的用户集群元数据
      • 系统组件的 Cloud Logging 和 Cloud Monitoring 数据
      • Cloud Audit Logs 创建的管理员审核日志

    管理员集群

    gcloud container vmware admin-clusters enroll ADMIN_CLUSTER_NAME \
       --project=FLEET_HOST_PROJECT_ID \
       --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
       --location=LOCATION
    

    替换以下内容:

    • ADMIN_CLUSTER_NAME:您要注册的管理员集群的名称。

    • FLEET_HOST_PROJECT_ID:舰队宿主项目的 ID。

      ADMIN_CLUSTER_NAMEFLEET_HOST_PROJECT_ID 用于为 --admin-cluster-membership 标志构建完整指定的集群名称。

    • LOCATION:运行 Anthos On-Prem API 的 Google Cloud 区域。请指定 us-west1 或其他受支持的区域。注册集群后,此区域便无法更改。除了设置运行 Anthos On-Prem API 的区域之外,还要设置存储以下内容的区域:

      • Anthos On-Prem API 管理集群生命周期所需的集群元数据
      • 系统组件的 Cloud Logging 和 Cloud Monitoring 数据
      • Cloud Audit Logs 创建的管理员审核日志
  4. 注册集群后,您可以使用以下命令获取有关集群的信息:

    用户集群

    • 要描述用户集群,请执行以下操作:
    gcloud container vmware clusters describe USER_CLUSTER_NAME \
       --project=FLEET_HOST_PROJECT_ID \
       --location=LOCATION
    
    • 要列出您的用户集群,请执行以下操作:
    gcloud container vmware clusters list \
       --project=FLEET_HOST_PROJECT_ID \
       --location=LOCATION
    

    管理员集群

    • 要描述管理员集群,请执行以下操作:
    gcloud container vmware admin-clusters describe ADMIN_CLUSTER_NAME \
       --project=FLEET_HOST_PROJECT_ID \
       --location=LOCATION
    
    • 如需列出管理员集群,请执行以下操作:
    gcloud container vmware admin-clusters list \
       --project=FLEET_HOST_PROJECT_ID \
       --location=LOCATION
    

连接到集群

向 Anthos On-Prem API 注册集群后,您需要选择并配置身份验证方法,以便通过 Google Cloud 控制台管理集群。您选择的身份验证方法还可以控制通过命令行对集群的访问。详情请参阅以下内容: