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

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

术语

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

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

查看已注册的集群

所有舰队集群都显示在控制台中的 Anthos 集群GKE 集群页面上。两者都概述了整个舰队,对于 Anthos Clusters on Bare Metal,您可以查看哪些集群由 Anthos On-Prem API 管理。

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

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

使用要求

  • 只有用户集群和管理员集群才能注册到 Anthos On-Prem API。不支持注册混合集群和独立集群。
  • 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 Beta 版组件

    1. 如果您还没有 Beta 版组件,请运行以下命令进行安装:

      gcloud components install beta
      
    2. 根据需要更新 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 beta container bare-metal 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 beta container bare-metal 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 beta container bare-metal clusters describe USER_CLUSTER_NAME \
       --project=FLEET_HOST_PROJECT_ID \
       --location=LOCATION
    
    • 要列出您的用户集群,请执行以下操作:
    gcloud beta container bare-metal clusters list \
       --project=FLEET_HOST_PROJECT_ID \
       --location=LOCATION
    

    管理员集群

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

连接到集群

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