本页面介绍了在环境中安装 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.admin
和 serviceuserage.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.writer
、logging.logWriter
和 monitoring.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 文档中的创建管理分区。
使用手动负载平衡模式
手动负载平衡模式要求进行比集成模式更多的配置。如需了解详情,请参阅启用手动负载平衡。