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 集群的逻辑分组。所有 GKE on Bare Metal 都在集群创建时注册到舰队。使用 bmctl 创建集群时,集群会注册到您在集群配置文件的 gkeConnect.projectID
字段中指定的 Google Cloud 项目。此项目即为舰队宿主项目。如需详细了解舰队,包括应用场景、最佳实践和示例,请参阅舰队管理文档。
查看已注册的集群
所有舰队集群都会显示在控制台中的 GKE Enterprise 集群和 GKE 集群页面上。这样,您就可以大致了解整个舰队,而且对于 GKE on Bare Metal,您可以查看哪些集群由 Anthos On-Prem API 管理。
如需查看您的舰队集群,请执行以下操作:
-
在控制台中,转到 GKE Enterprise 集群页面。
转到 GKE Enterprise 集群页面 -
选择 Google Cloud 项目。
- 如果 Anthos (Bare Metal) 显示在类型列中,则集群由 Anthos On-Prem API 管理。
- 如果类型列中显示外部,则表示集群不由 Anthos On-Prem API 管理。
使用要求
- 只有用户集群和管理员集群才能注册到 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 管理,请执行以下操作:
确保您拥有最新版本的 gcloud CLI。根据需要更新 gcloud CLI 组件:
gcloud components update
在舰队宿主项目中启用 Anthos On-Prem API:
gcloud services enable \ --project FLEET_HOST_PROJECT_ID \ gkeonprem.googleapis.com
将
FLEET_HOST_PROJECT_ID
替换为您的舰队宿主项目的 ID。这是在集群配置文件的gkeconnect
部分中配置的项目 ID。使用 Anthos On-Prem API 注册集群:
用户集群
如果需要填写
--admin-cluster-membership
标志的ADMIN_CLUSTER_NAME
占位符,请务必滚动。gcloud 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 创建的管理员审核日志
管理员集群
如果需要填写
--admin-cluster-membership
标志的ADMIN_CLUSTER_NAME
占位符,请务必滚动。gcloud 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_NAME
和FLEET_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 创建的管理员审核日志
注册集群后,您可以使用以下命令获取有关集群的信息:
用户集群
- 要描述用户集群,请执行以下操作:
gcloud container bare-metal clusters describe USER_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
- 要列出您的用户集群,请执行以下操作:
gcloud container bare-metal clusters list \ --project=FLEET_HOST_PROJECT_ID \ --location=-
设置
--location=-
时,意味着列出所有区域中的所有集群。如果您需要缩小列表范围,请将--location
设置为您在注册集群时指定的区域。管理员集群
- 要描述管理员集群,请执行以下操作:
gcloud container bare-metal admin-clusters describe ADMIN_CLUSTER_NAME \ --project=FLEET_HOST_PROJECT_ID \ --location=LOCATION
- 如需列出管理员集群,请执行以下操作:
gcloud container bare-metal admin-clusters list \ --project=FLEET_HOST_PROJECT_ID \ --location=-
设置
--location=-
时,意味着列出所有区域中的所有集群。如果您需要缩小列表范围,请将--location
设置为您在注册集群时指定的区域。
连接到集群
向 Anthos On-Prem API 注册集群后,您需要选择并配置身份验证方法,以便通过 Google Cloud 控制台管理集群。您选择的身份验证方法还可以控制通过命令行对集群的访问。详情请参阅以下内容: