本文档介绍了如何将一个或多个 Google Cloud 项目与 VMware 上的 GKE Enterprise 集群相关联。
此处为完整说明。如需了解如何使用 Google Cloud 项目,请参阅设置最小基础架构。
准备工作
队列宿主项目
每个管理员集群都必须注册到集群。由管理员集群管理的所有用户集群都必须注册到与管理员集群相同的队列。
管理员或用户集群注册到队列时,它会与队列宿主项目相关联。管理员集群及其管理的所有用户集群具有相同的集群宿主项目。在 Google Cloud 控制台的队列宿主项目中,您可以查看和管理管理员集群和用户集群。
如需为管理员集群指定队列宿主项目,请在管理员集群配置文件的 gkeConnect.projectID
字段中输入项目 ID。
如果您使用 gkectl
命令行工具创建用户集群,请在用户集群配置文件的 gkeConnect.projectID
字段中输入项目 ID。
如果您在配置文件中包括 stackdriver
、cloudAuditLogging
和 gkeOnPremAPI
部分,请注意新集群的以下要求:
gkeConnect.projectID
中的 ID 必须与stackdriver.projectID
和cloudAuditLogging.projectID
中设置的 ID 相同。必须在
stackdriver.clusterLocation
和cloudAuditLogging.clusterLocation
中设置相同的 Google Cloud 区域。此外,如果gkeOnPremAPI.enabled
为true
,则必须在gkeOnPremAPI.location
中设置同一区域。
如果项目 ID 和区域不相同,则集群创建会失败。
如果您使用 Google Cloud 控制台创建用户集群,则当前 Google Cloud 项目会自动成为队列宿主项目。
在舰队宿主项目中启用 API
如需在队列宿主项目中启用所需的 API,请运行以下命令:
gcloud services enable --projectFLEET_HOST_PROJECT_ID \ anthos.googleapis.com \ container.googleapis.com \ gkehub.googleapis.com \ gkeconnect.googleapis.com \ connectgateway.googleapis.com \ stackdriver.googleapis.com \ monitoring.googleapis.com \ logging.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ iam.googleapis.com \ cloudresourcemanager.googleapis.com
如果您要在 Google Cloud 控制台、Google Cloud CLI 或 Terraform 中管理用户集群的生命周期,请在舰队宿主项目中启用以下附加 API:
gcloud services enable --projectFLEET_HOST_PROJECT_ID \ gkeonprem.googleapis.com \ anthosaudit.googleapis.com \ storage.googleapis.com
如需在队列宿主项目中启用所需的 API,请运行以下命令:
gcloud services enable --projectFLEET_HOST_PROJECT_ID ^ anthos.googleapis.com ^ container.googleapis.com ^ gkehub.googleapis.com ^ gkeconnect.googleapis.com ^ connectgateway.googleapis.com ^ stackdriver.googleapis.com ^ monitoring.googleapis.com ^ logging.googleapis.com ^ opsconfigmonitoring.googleapis.com ^ serviceusage.googleapis.com ^ iam.googleapis.com ^ cloudresourcemanager.googleapis.com
如果您要在 Google Cloud 控制台、Google Cloud CLI 或 Terraform 中管理用户集群的生命周期,请在舰队宿主项目中启用以下附加 API:
gcloud services enable --projectFLEET_HOST_PROJECT_ID ^ gkeonprem.googleapis.com ^ anthosaudit.googleapis.com ^ storage.googleapis.com
查看队列宿主项目中的日志和指标
如果要在 Google Cloud 控制台中查看集群日志和指标,请在admin和admin集群配置文件的 stackdriver.projectID
字段中输入队列宿主项目的 ID。
默认情况下,此 stackdriver
部分是必填的。也就是说,如果您不填写 stackdriver
部分,则必须在运行 gkectl create
时添加 --skip-validation-stackdriver
标志。
您不能在 stackdriver.projectID
字段中输入任何其他项目 ID。所输入的值必须是舰队宿主项目的 ID。
如果您选择在 Google Cloud 控制台中查看集群日志和指标,请在队列宿主项目中启用以下 API:
gcloud services enable --projectFLEET_HOST_PROJECT_ID \ stackdriver.googleapis.com \ monitoring.googleapis.com \ logging.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ iam.googleapis.com \ cloudresourcemanager.googleapis.com
gcloud services enable --projectFLEET_HOST_PROJECT_ID ^ stackdriver.googleapis.com ^ monitoring.googleapis.com ^ logging.googleapis.com ^ opsconfigmonitoring.googleapis.com ^ serviceusage.googleapis.com ^ iam.googleapis.com ^ cloudresourcemanager.googleapis.com
查看队列宿主项目中的审核日志
如果您查看审核日志并且您处于 Google Cloud 控制台中,请在admin和用户集群配置文件的 cloudAuditLogging.projectID
字段中输入队列宿主项目的 ID。
您不能在 cloudAuditLogging.projectID
字段中输入任何其他项目 ID。所输入的值必须是舰队宿主项目的 ID。
如果您选择在 Google Cloud 控制台中查看审核日志,请在队列宿主项目中启用以下 API:
gcloud services enable --projectFLEET_HOST_PROJECT_ID \ anthosaudit.googleapis.com \ serviceusage.googleapis.com \ iam.googleapis.com \ cloudresourcemanager.googleapis.com
gcloud services enable --projectFLEET_HOST_PROJECT_ID ^ anthosaudit.googleapis.com ^ serviceusage.googleapis.com ^ iam.googleapis.com ^ cloudresourcemanager.googleapis.com
向舰队宿主项目的服务账号授予角色
您的连接注册服务账号必须获得舰队宿主项目上的特定角色。如需了解详情,请参阅连接注册服务账号。
您的日志记录监控服务账号必须获得队列宿主项目上的特定角色。如需了解详情,请参阅日志记录和监控服务账号。
您的审核日志服务账号必须获得队列宿主项目上的特定角色。如需了解详情,请参阅审核日志记录服务账号。
用量计量项目
如果您为用户集群启用了 GKE 用量计量,则 GKE on VMware 会将用量数据存储在与您选择的 Google Cloud 项目关联的 BigQuery 数据集中。此 Google Cloud 项目称为“用量计量项目”。
您的用量计量项目可以与队列宿主项目相同,也可以不同。
如需启用用量计量功能,请在用户集群配置文件中将 usageMetering.bigQueryProjectID
设置为用量计量项目 ID。
如果您选择启用用量计量,请在用量计量项目中启用以下 API:
gcloud services enable --projectUSAGE_METERING_PROJECT_ID] \ bigquery.googleapis.com \ serviceusage.googleapis.com \ iam.googleapis.com \ cloudresourcemanager.googleapis.com
gcloud services enable --projectUSAGE_METERING_PROJECT_ID ^ bigquery.googleapis.com ^ serviceusage.googleapis.com ^ iam.googleapis.com ^ cloudresourcemanager.googleapis.com
向服务账号授予用量计量项目上的角色
您的用量计量服务账号必须被授予用量计量项目上的特定角色。
如需了解详情,请参阅用量计量服务账号。
组件访问服务账号的父项目
在创建集群之前,您必须有一个服务帐号,GKE on VMware 可以使用该帐号从 Container Registry 下载组件。此服务账号称为组件访问服务账号。
您在其中创建组件访问服务账号的 Google Cloud 项目被称为组件访问服务账号的父级parent。此项目可以与您在集群配置文件中指定的某一个项目相同,也可以不同于您在配置文件中指定的所有项目。如需详细了解服务账号和父项目,请参阅了解服务账号和 Google Cloud 项目。
如需为组件访问服务账号的父项目启用所需的 API,请执行以下操作:
gcloud services enable --project[PROJECT_ID] \ serviceusage.googleapis.com \ iam.googleapis.com \ cloudresourcemanager.googleapis.com
其中,[PROJECT_ID] 是组件访问服务账号的父项目的 ID。
gcloud services enable --project[PROJECT_ID] ^ serviceusage.googleapis.com ^ iam.googleapis.com ^ cloudresourcemanager.googleapis.com
其中,[PROJECT_ID] 是组件访问服务账号的父项目的 ID。