使用入门

本页面介绍了在环境中安装 GKE On-Prem 之前应执行的一些步骤。

准备工作

请查看以下主题:

GKE On-Prem 文档中的占位值

使用 GKE On-Prem 的文档时,您可以通过点击代码块来更改其中的 placeholder values

Enter your name: [YOUR_NAME]

如果您希望在复制和运行命令之前填写占位值,则可能会发现此方法很有用。

限制

限制 说明
集群和节点的上限和下限

请参阅配额和限制。您的环境性能可能会影响这些限制。

每个项目一个管理员集群

您只能为每个 Google Cloud 项目注册一个管理员集群。如果您需要运行多个管理员集群,则需要使用单独的 Google Cloud 项目。

创建 Google Cloud 项目

如果您还没有 Google Cloud 项目,请创建一个 Google Cloud 项目。您需要一个项目来运行 GKE On-Prem。

安装所需的命令行界面工具

  • 安装 Google Cloud CLI,其中包含 gcloud(Google Cloud 的命令行界面 (CLI))。
  • govc (CLI) 安装到 VMware vSphere。
  • 安装包含 terraform CLI 的 Terraform 0.11。按照 Terraform 的安装说明操作,以验证安装并设置 PATH 变量。

授权 gcloud 访问 Google Cloud

安装 gcloud CLI 后,授权 gcloud 访问 Google Cloud:

gcloud auth login

设置默认的 Google Cloud 项目

设置默认 Google Cloud 会使所有 gcloud CLI 命令针对该项目运行,这样就无需针对每条命令指定您的项目。如需设置默认项目,请运行以下命令:

gcloud config set project [PROJECT_ID]

请将 [PROJECT_ID] 替换为您的项目 ID。(您可以在 Google Cloud 控制台中或通过运行 gcloud config get-value project 来查找项目 ID。)

创建 Google Cloud 服务帐号

在首次安装 GKE On-Prem 之前,请使用 gcloud 创建 4 个 Google Cloud 服务帐号。GKE On-Prem 代表您使用这些服务帐号完成任务;以下部分介绍了各个帐号的用途。

访问服务帐号

您使用此服务帐号从 Cloud Storage 下载 GKE On-Prem 的二进制文件。它是 Google 列入许可名单的唯一服务帐号。

运行以下命令以创建 access-service-account

gcloud iam service-accounts create access-service-account

注册服务帐号

Connect 使用此服务帐号向 Google Cloud Console 注册您的 GKE On-Prem 集群。

运行以下命令以创建 register-service-account

gcloud iam service-accounts create register-service-account

Connect 服务帐号

Connect 使用此服务帐号来维护 GKE On-Prem 集群与 Google Cloud 之间的连接。

运行以下命令以创建 connect-service-account

gcloud iam service-accounts create connect-service-account

Google Cloud 的运维套件服务帐号

此服务帐号允许 GKE On-Prem 将日志记录和监控数据写入 Google Cloud 的运维套件

运行以下命令以创建 stackdriver-service-account

gcloud iam service-accounts create stackdriver-service-account

将项目和帐号列入许可名单

购买 Anthos 后,Google 会将以下各项列入许可名单,以授予您对 GKE On-Prem 和 Connect 的访问权限:

  • 您的 Google Cloud 项目。
  • 您的 Google 帐号以及团队成员的个人 Google 帐号。
  • 您的访问服务帐号。

如果您想使用其他项目或服务帐号,或者希望让其他用户能执行操作,Google Cloud 支持人员或技术支持客户经理可为您提供帮助。通过 Google Cloud 控制台或 Google Cloud 支持中心创建支持请求。

在项目中启用所需的 API

您需要在 Google Cloud 项目中启用以下 API

  • cloudresourcemanager.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com
  • monitoring.googleapis.com
  • logging.googleapis.com

如需启用这些 API,请运行以下命令:

gcloud services enable \
cloudresourcemanager.googleapis.com \
container.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
serviceusage.googleapis.com \
stackdriver.googleapis.com \
monitoring.googleapis.com \
logging.googleapis.com

将 Identity and Access Management 角色分配给您的服务帐号

IAM 会授予帐号调用 Google Cloud API 的权限。将专用 IAM 角色分配给这些服务帐号以实现权限隔离。

列出服务帐号的电子邮件地址

首先,列出您的 Google Cloud 项目中的服务帐号:

gcloud iam service-accounts list

对于名为 my-gcp-project 的 Google Cloud 项目,此命令的输出如下所示:

gcloud iam service-accounts list
NAME                                    EMAIL
                                        access-service-account@my-gcp-project.iam.gserviceaccount.com
                                        register-service-account@my-gcp-project.iam.gserviceaccount.com
                                        connect-service-account@my-gcp-project.iam.gserviceaccount.com
                                        stackdriver-service-account@my-gcp-project.iam.gserviceaccount.com

记下每个帐号的电子邮件地址。对于以下各个部分,您需要提供相关帐号的电子邮件帐号。

注册服务帐号

向您的注册服务帐号授予 gkehub.adminserviceuserage.serviceUsageViewer 角色:

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[REGISTER_SERVICE_ACCOUNT_EMAIL] \
--role="roles/gkehub.admin"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[REGISTER_SERVICE_ACCOUNT_EMAIL] \
--role="roles/serviceusage.serviceUsageViewer"

Connect 服务帐号

向您的连接服务帐号授予 gkehub.connect 角色:

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member="serviceAccount:[CONNECT_SERVICE_ACCOUNT_EMAIL] \
--role="roles/gkehub.connect"

Google Cloud 的运维套件服务帐号

向您的 Google Cloud 运维套件服务帐号授予 stackdriver.resourceMetadata.writerlogging.logWritermonitoring.metricWriter 角色:

gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[STACKDRIVER_SERVICE_ACCOUNT_EMAIL] \
--role "roles/stackdriver.resourceMetadata.writer"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[STACKDRIVER_SERVICE_ACCOUNT_EMAIL] \
--role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding [PROJECT_ID] \
--member "serviceAccount:[STACKDRIVER_SERVICE_ACCOUNT_EMAIL] \
--role "roles/monitoring.metricWriter"

配置 Logging 和 Monitoring

默认情况下,系统会为 GKE On-Prem 启用 Stackdriver Logging 和 Stackdriver Monitoring。

将代理的 Google 和 HashiCorp 地址列入许可名单

如果您的组织要求通过 HTTP 代理访问互联网,请将代理的以下 Google 地址列入许可名单:

  • binaryauthorization.googleapis.com
  • googlecode.l.googleusercontent.com
  • storage.l.googleusercontent.com
  • storage.googleapis.com

您可以使用 HashiCorp Terraform 0.11 版在 vSphere 中创建管理员工作站虚拟机。如需在设有代理或防火墙的环境中运行 Terraform,您需要将以下 HashiCorp 地址列入许可名单:

  • checkpoint-api.hashicorp.com
  • releases.hashicorp.com

准备负载平衡器

GKE On-Prem 集群可以通过两种负载平衡模式之一运行:“集成”或“手动”。使用集成模式时,GKE On-Prem 集群将通过 F5 BIG-IP 负载平衡器运行。使用手动模式时,您可以手动配置其他负载平衡器。

准备 F5 BIG-IP 分区

如果您选择使用集成模式,则需要创建 F5 BIG-IP 分区,以处理您打算创建的每个 GKE On-Prem 集群的负载平衡。

最初,您需要创建至少两个分区:一个用于管理员集群,一个用于用户集群。您必须先创建分区,然后才能创建相应的集群。

请勿将集群分区用于其他任何内容。每个集群都必须有一个单独用于该集群的分区。

如需了解如何创建分区,请参阅 F5 BIG-IP 文档中的创建管理分区

使用手动负载平衡模式

手动负载平衡模式要求进行比集成模式更多的配置。如需了解详情,请参阅启用手动负载平衡