GKE On-Prem API 是一种由 Google Cloud 托管的 API,可让您使用标准工具(Google Cloud 控制台、Google Cloud CLI 或 Terraform)管理本地集群的生命周期。使用这些工具创建集群时,API 会将集群状态的元数据存储在创建集群时指定的 Google Cloud 区域中。此元数据可让您使用标准工具管理集群的生命周期。如果您想使用这些工具查看集群详情或管理使用 bmctl
创建的集群的生命周期,则必须在 GKE On-Prem API 中注册集群。
术语
通过注册集群,您可以使用控制台、gcloud CLI 或 Terraform 管理集群生命周期。
注册集群是将集群注册到舰队的单独过程。舰队是可以一起管理的 Kubernetes 集群的逻辑分组。所有 GKE on Bare Metal 集群都会在创建集群时注册到舰队。使用 bmctl 创建集群时,集群会注册到您在集群配置文件的 gkeConnect.projectID
字段中指定的 Google Cloud 项目。此项目即为舰队宿主项目。如需详细了解舰队,包括应用场景、最佳实践和示例,请参阅舰队管理文档。
查看已注册的集群
所有舰队集群都会显示在控制台中的 GKE Enterprise 集群和 GKE 集群页面上。这两种工具都能让您大致了解整个舰队,而且对于 GKE on Bare Metal,还可让您查看由 GKE On-Prem API 管理的集群。
如需查看您的舰队集群,请执行以下操作:
-
在控制台中,进入 GKE Enterprise 集群页面。
转到 GKE Enterprise 集群页面 -
选择 Google Cloud 项目。
- 如果类型列中显示裸金属,则该集群由 GKE On-Prem API 管理。
- 如果类型列中显示外部,则该集群不由 GKE On-Prem API 管理。
使用要求
- 只有用户和管理员集群可以使用 GKE On-Prem API 注册。不支持注册混合集群和独立集群。
1.13 版或更高版本。
如果您不是项目所有者,则必须至少具有项目的 Identity and Access Management 角色
roles/gkeonprem.admin
。如需详细了解此角色具备的权限,请参阅 IAM 文档中的 GKE On-Prem 角色。
准备工作
根据需要设置 gcloud CLI。
如果您需要安装 gcloud CLI,请参阅 gcloud CLI 文档。根据需要更新 gcloud CLI 组件:
gcloud components update
请按照以下步骤激活并使用 GKE On-Prem API:
在项目中启用 API:
gcloud services enable \ --project PROJECT_ID \ gkeonprem.googleapis.com
将
PROJECT_ID
替换为您的舰队宿主项目的项目 ID。这是在集群配置文件的gkeconnect
部分中配置的项目 ID。如果您收到
PERMISSION_DENIED
错误,请仔细检查您输入的项目 ID。如果项目 ID 正确无误,请运行gcloud auth login
以使用有权访问项目的账号登录 Google Cloud CLI。如果这是您首次在项目中启用 GKE On-Prem API,则需要初始化该 API。为此,您可以调用 gcloud CLI 命令,该命令可用于显示可用于创建集群的版本:
gcloud container bare-metal clusters query-version-config \ --project=PROJECT_ID \ --location=REGION
将
REGION
替换为us-west1
或其他受支持的区域。
如果您的组织设置了许可名单,以允许来自 Google API 和其他地址的流量通过代理服务器,请将以下条目添加到许可名单:
gkeonprem.googleapis.com
gkeonprem.mtls.googleapis.com
这些是 GKE On-Prem API 的服务名称。
注册用户集群
gcloud CLI
如果需要填写 --admin-cluster-membership
标志的 ADMIN_CLUSTER_NAME
占位符,请务必滚动。
gcloud container bare-metal clusters enroll USER_CLUSTER_NAME \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \ --location=REGION
请替换以下内容:
USER_CLUSTER_NAME
:您要注册的用户集群的名称。PROJECT_ID
:舰队宿主项目的 ID。ADMIN_CLUSTER_NAME
:管理用户集群的管理员集群。管理员集群名称是用于唯一标识 Google Cloud 中的集群的完全指定集群名称中的最后一个部分。REGION
:GKE On-Prem API 运行并存储集群元数据的 Google Cloud 区域。请指定us-west1
或其他受支持的区域。 注册集群后,此区域便无法更改。
bmctl
在管理员工作站上执行以下步骤。
将以下部分添加到用户集群配置文件:
gkeOnPremAPI: enabled: true location: REGION
将
REGION
替换为 GKE On-Prem API 在其中运行并存储集群元数据的 Google Cloud 区域。请指定us-west1
或其他受支持的区域。 注册集群后,此区域便无法更改。更新集群:
bmctl update cluster -c USER_CLUSTER_NAME \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
请替换以下内容:
USER_CLUSTER_NAME
:要更新的用户集群的名称。ADMIN_CLUSTER_KUBECONFIG
:管理员集群 kubeconfig 文件的路径
注册管理员集群
gcloud CLI
如果需要填写 --admin-cluster-membership
标志的 ADMIN_CLUSTER_NAME
占位符,请务必滚动。
gcloud container bare-metal admin-clusters enroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \ --location=REGION
请替换以下内容:
ADMIN_CLUSTER_NAME
:您要注册的管理员集群的名称。PROJECT_ID
:舰队宿主项目的 ID。ADMIN_CLUSTER_NAME
和PROJECT_ID
用于为--admin-cluster-membership
标志构建完整指定的集群名称。REGION
:GKE On-Prem API 运行并存储集群元数据的 Google Cloud 区域。请指定us-west1
或其他受支持的区域。 注册集群后,此区域便无法更改。
bmctl
在管理员工作站上执行以下步骤。
将以下部分添加到管理员集群配置文件:
gkeOnPremAPI: enabled: true location: REGION
将
REGION
替换为 GKE On-Prem API 在其中运行并存储集群元数据的 Google Cloud 区域。请指定us-west1
或其他受支持的区域。 注册集群后,此区域便无法更改。更新集群:
bmctl update cluster -c ADMIN_CLUSTER_NAME \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
请替换以下内容:
ADMIN_CLUSTER_NAME
:要更新的管理员集群的名称。ADMIN_CLUSTER_KUBECONFIG
:管理员集群 kubeconfig 文件的路径
获取有关集群的信息
注册集群后,您可以使用以下命令获取有关集群的信息:
用户集群
- 要描述用户集群,请执行以下操作:
gcloud container bare-metal clusters describe USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
- 要列出您的用户集群,请执行以下操作:
gcloud container bare-metal clusters list \ --project=PROJECT_ID \ --location=-
设置 --location=-
时,意味着列出所有区域中的所有集群。如果您需要缩小列表范围,请将 --location
设置为您在注册集群时指定的区域。
管理员集群
- 要描述管理员集群,请执行以下操作:
gcloud container bare-metal admin-clusters describe ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=REGION
- 如需列出管理员集群,请执行以下操作:
gcloud container bare-metal admin-clusters list \ --project=PROJECT_ID \ --location=-
设置 --location=-
时,意味着列出所有区域中的所有集群。如果您需要缩小列表范围,请将 --location
设置为您在注册集群时指定的区域。
连接到集群
使用 GKE On-Prem API 注册集群后,您需要选择和配置身份验证方法,以便通过 Google Cloud 控制台管理集群。您选择的身份验证方法还可以控制通过命令行对集群的访问。详情请参阅以下内容: