使用多个 Google Cloud 项目

本页面介绍如何将不同的 Google Cloud 项目用于 GKE On-Prem 的不同方面。

GKE On-Prem 配置文件中有多个字段可供您指定 Google Cloud 项目 ID:

...
usercluster:
  usagemetering:
    bigqueryprojectid: ""
...
gkeconnect:
  projectid: ""
...
stackdriver:
  projectid: ""
...
cloudauditlogging:
  projectid: ""

其理念为,您可以将一个项目用于连接到 GKE On-Prem,另一个项目用于日志记录和监控,等等。

您无需使用不同的项目 ID。例如,您可以将同一个项目用于连接和日志记录。如果您愿意,也可以使用一个项目来处理所有任务。

用量计量项目

如果您为用户集群启用 GKE 用量计量,则 GKE On-Prem 会将用量数据存储在与您选择的 Cloud 项目关联的 BigQuery 数据集中。

在您的 GKE On-Prem 配置文件中,将 usercluster.usagemetering.bigqueryprojectid 设置为要存储使用情况数据的 Cloud 项目的 ID。

在用量计量项目中启用 API

如需在用量计量项目中启用所需的 API,请使用以下代码:

Linux 和 macOS

gcloud services enable --project [PROJECT_ID] \
    bigquery.googleapis.com \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是您的用量计量项目的 ID。

Windows

gcloud services enable --project [PROJECT_ID] ^
    bigquery.googleapis.com ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是您的用量计量项目的 ID。

向服务帐号授予用量计量项目上的角色

您的用量计量服务帐号必须被授予用量计量项目上的特定角色。

如需了解详情,请参阅用量计量服务帐号

连接项目

当您创建用户集群时,GKE On-Prem 使用 Connect 向您选择的 Cloud 项目注册集群。注册集群后,您可以使用 Google Cloud Console 管理集群。

Connect 使用被称为 Connect AgentDeployment 在 GKE On-Prem 集群和 Cloud 项目之间建立连接。

在 GKE On-Prem 配置文件中,将 gkeconnect.projectid 设置为要向其注册集群的 Cloud 项目的 ID。

在连接项目中启用 API

如需在连接项目中启用所需的 API,请使用以下代码:

Linux 和 macOS

gcloud services enable --project [PROJECT_ID] \
    cloudresourcemanager.googleapis.com \
    container.googleapis.com \
    gkeconnect.googleapis.com \
    gkehub.googleapis.com \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是您的连接项目的 ID。

Windows

gcloud services enable --project [PROJECT_ID] ^
    cloudresourcemanager.googleapis.com ^
    container.googleapis.com ^
    gkeconnect.googleapis.com ^
    gkehub.googleapis.com ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是您的连接项目的 ID。

向服务帐号授予连接项目上的角色

您的连接注册服务帐号和连接代理服务帐号必须被授予连接项目上的特定角色。

如需了解详情,请参阅连接注册服务帐号连接代理服务帐号

日志记录和监控项目

Cloud Logging 和 Cloud Monitoring 会从 GKE On-Prem 集群收集数据,并将其提供给 Google Cloud。如需查看集群的日志和指标,您必须指定关联的 Cloud 项目。

在 GKE On-Prem 配置文件中,将 stackdriver.projectid 设置为要与日志记录和监控关联的 Cloud 项目的 ID。

在日志记录和监控项目中启用 API

如需在日志记录和监控项目中启用所需的 API,请运行以下命令:

Linux 和 macOS

gcloud services enable --project [PROJECT_ID] \
    stackdriver.googleapis.com \
    monitoring.googleapis.com \
    logging.googleapis.com \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是您的连接项目的 ID。

Windows

gcloud services enable --project [PROJECT_ID] ^
    stackdriver.googleapis.com ^
    monitoring.googleapis.com ^
    logging.googleapis.com ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是您的连接项目的 ID。

向服务帐号授予日志记录和监控项目上的角色

您的日志记录和监控服务帐号必须被授予日志记录和监控项目上的特定角色。

如需了解详情,请参阅日志记录和监控服务帐号

审核日志记录项目

如果您为 GKE On-Prem 启用 Cloud Audit Logs,则集群的 Kubernetes API 服务器中的审核日志条目会被发送到 Google Cloud。您可以在所选 Cloud 项目中查看审核日志条目。

在 GKE On-Prem 配置文件中,将 cloudauditlogging.projectid 设置为要在其中查看审核日志的 Cloud 项目的 ID。

在审核日志记录项目中启用 API

如需在审核日志记录项目中启用所需的 API,请运行以下命令:

Linux 和 macOS

gcloud services enable --project [PROJECT_ID] \
    anthosgke.googleapis.com \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是您的审核日志记录项目的 ID。

Windows

gcloud services enable --project [PROJECT_ID] ^
    anthosgke.googleapis.com ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是您的审核日志记录项目的 ID。

向服务帐号授予审核日志记录项目上的角色

您的审核日志服务帐号必须被授予审核日志记录项目上的特定角色。

如需了解详情,请参阅审核日志记录服务帐号

已列入许可名单的服务帐号的父级项目

如需安装 GKE On-Prem,您必须订阅 Anthos。如果您已订阅 Anthos,则表示您已经完成了以下各项:

  • 创建 Cloud 项目。

  • 在 Cloud 项目中,创建一个服务帐号并安排将该服务帐号列入许可名单。此服务帐号称为“已列入许可名单的服务帐号”

您创建已列入许可名单的服务帐号的 Cloud 项目被称为已列入许可名单的服务帐号的父项目。此项目可以与您在 GKE On-Prem 配置文件中指定的某一个项目相同,也可以不同于您在配置文件中指定的所有项目。

如需为已列入许可名单的服务帐号的父项目启用所需的 API,请运行以下命令:

Linux 和 macOS

gcloud services enable --project [PROJECT_ID] \
    serviceusage.googleapis.com \
    iam.googleapis.com \
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是已列入许可名单的服务帐号的父项目 ID。

Windows

gcloud services enable --project [PROJECT_ID] ^
    serviceusage.googleapis.com ^
    iam.googleapis.com ^
    cloudresourcemanager.googleapis.com

其中,[PROJECT_ID] 是已列入许可名单的服务帐号的父项目 ID。

后续步骤

了解 GKE On-Prem 的服务帐号和密钥