使用多个 Google Cloud 项目

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

集群配置文件中有多个字段可供您指定 Google Cloud 项目 ID:

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

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

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

用量计量项目

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

在您的 GKE On-Prem 配置文件中,将 usercluster.usagemetering.bigqueryprojectid 设置为要存储使用情况数据的 Google 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 向您选择的 Google Cloud 项目注册集群。注册集群后,您可以在 Google Cloud Console 中查看和管理此项目中的集群。

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

在 GKE On-Prem 配置文件中,将 gkeconnect.projectid 设置为要在其中查看和管理集群的 Google 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。如需查看集群的日志和指标,您必须指定关联的 Google Cloud 项目。

在用户集群配置文件中,将 stackdriver.projectID 设置为要与日志记录和监控关联的 Google 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。您可以在所选 Google Cloud 项目中查看审核日志条目。

在 GKE On-Prem 配置文件中,将 cloudauditlogging.projectid 设置为要在其中查看审核日志的 Google 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,您必须已执行以下操作:

  • 创建 Google Cloud 项目。

  • 在 Google Cloud 项目中,您创建了一个服务账号,供 GKE On-Prem 用于从 Container Registry 下载组件。此服务账号称为组件访问服务账号。

  • 已启用 Anthos API。启用此 API 可能会产生费用。如需了解详情,请参阅价格指南。

您在其中创建组件访问服务账号的 Google 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 的服务账号和密钥