本文档介绍如何为 VMware 上的 Anthos 集群 (GKE On-Prem) 创建管理员工作站,该工作站可用于创建集群。
本文档中的步骤使用 gkeadm
命令行工具,该工具可用于 64 位的 Linux、Windows 10、Windows Server 2019 和 macOS 10.15 及更高版本。
此处为完整说明。如需查看创建管理员工作站的简要说明,请参阅创建管理员工作站(快速入门)。
准备工作
按照使用多个 Google Cloud 项目中的说明,创建一个或多个 Google Cloud 项目。
规划服务账号
使用 gkeadm
创建管理员工作站时,您可以选择让 gkeadm
为您创建大多数服务账号和密钥。在这种情况下,gkeadm
还会向服务账号授予相应的 Identity and Access Management 角色。
作为替代方案,您可以手动创建服务账号和密钥。在这种情况下,您必须向服务账号授予 IAM 角色。
与 gkeadm
为您创建服务账号相比,手动创建服务账号具有更大的灵活性:
自动创建的服务账号都是您的连接项目的子项。手动创建服务账号时,您可以选择父 Google Cloud 项目。
系统会为所有自动创建的服务账号授予连接项目上的 IAM 角色。如果您的连接项目是与您的集群关联的唯一 Google Cloud 项目,则没有问题。但是,如果要将您的集群与多个 Google Cloud 项目关联,则需要能够灵活地向服务账号授予所选 Google Cloud 项目上的角色。
如果您决定创建自己的服务账号,请按照服务账号和密钥中的说明操作。
无论您是否让 gkeadm
自动为您创建服务账号,您都必须手动创建一个服务账号:您的组件访问服务账号。如需了解如何创建组件访问服务账号并向其授予适当的 IAM 角色,请参阅组件访问服务账号。
生成配置文件模板
下载 gkeadm
到当前目录。
生成模板:
./gkeadm create config
上述命令在当前目录中创建了这些文件:
credential.yaml
admin-ws-config.yaml
填写 credential.yaml
在 credential.yaml
中,填写 vCenter 用户名和密码。例如:
kind: CredentialFile items: - name: vCenter username: "my-account-name" password: "AadmpqGPqq!a"
填写 admin-ws-config.yaml
admin-ws-config.yaml
中的多个字段已经填充了默认值或生成的值。您可以保留填充的值,也可以根据需要进行更改。
必须填写的字段
填写以下必填字段。如需了解如何填写这些字段,请参阅管理员工作站配置文件。
gcp: componentAccessServiceAccountKeyPath: "Fill in" vCenter: credentials: address: "Fill in" datacenter: "Fill in" datastore: "Fill in" cluster: "Fill in" network: "Fill in" resourcePool: "Fill in" caCertPath: "Fill in"
如果您的管理员工作站位于代理服务器后面,请填写 proxyURL
字段:
adminWorkstation: proxyURL: "Fill in"
如果您希望管理员工作站从 DHCP 服务器获取其 IP 地址,请将 ipAllocationMode
设置为 "dhcp"
,并移除 hostconfig
部分:
adminWorkstation: network: ipAllocationMode: "dhcp"
如果您希望为管理员工作站指定静态 IP 地址,请将 ipAllocationMode
设置为 "static"
,然后填写 hostconfig
部分:
adminWorkstation: network: ipAllocationMode: "static" hostconfig: ip: "Fill in" gateway: "Fill in" netmask: "Fill in" dns: - "Fill in"
创建管理员工作站
输入下面的命令来创建管理员工作站。如果您希望 gkeadm
为您创建服务账号,请添加 --auto-create-service-accounts
标志。如果您希望手动创建您自己的服务账号,请省略此标志。
./gkeadm create admin-workstation [--auto-create-service-accounts]
输出内容中会包含有关管理员工作站创建过程的详细信息:
... Getting ... service account... ... ******************************************************************** Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1 ********************************************************************
与管理员工作站建立 SSH 连接
在上述输出内容的末尾附近,有一条命令,您可以使用该命令通过 SSH 连接到管理员工作站。现在输入该命令。例如:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1
列出管理员工作站上的文件:
ls -1
在输出内容中,您可以看到两个集群配置文件、您的 CA 证书文件和您的组件访问服务账号的 JSON 密钥文件。如果 gkeadm
为您创建了服务账号,您还可以看到这些服务账号的 JSON 密钥文件。例如:
admin-cluster.yaml user-cluster.yaml vcenter-ca-cert.pem component-access-key.json
验证 gkeadm
是否已在管理员工作站上激活您的组件访问服务账号:
gcloud config get-value account
将 JSON 密钥文件复制到管理员工作站
在创建集群之前,服务账号的 JSON 密钥文件必须位于管理员工作站的主目录中。
组件访问服务账号的密钥已在管理员工作站中。
如果您在运行 gkeadm create admin-workstation
时添加了 --auto-create-service-accounts
标志,则以下服务账号的密钥已经在管理员工作站的主目录中。否则,您必须手动将密钥复制到管理员工作站的主目录中:
- 连接和注册服务账号
- 连接和代理服务账号
- 日志记录和监控服务账号
如果您创建了以下任一服务账号,则必须手动将这些服务账号的密钥复制到管理员工作站的主目录中:
- 用量计量服务账号
- 审核日志记录服务账号
- Binary Authorization 服务账号