本页面介绍如何为 VMware 上的 Anthos 集群 (GKE On-Prem) 创建管理员集群。
此处为完整说明。如需查看创建管理员集群的简要介绍,请参阅创建管理员集群(快速入门)。
准备工作
与管理员工作站建立 SSH 连接
与管理员工作站建立 SSH 连接。
您应该还记得,gkeadm
在管理员工作站上激活了您的组件访问服务帐号。
在管理员工作站的主目录中完成本主题中的所有其余步骤。
凭据配置文件
使用 gkeadm
创建管理员工作站时,您填写了一个名为 credential.yaml
的凭据配置文件。此文件包含 vCenter 服务器的用户名和密码。
管理员集群配置文件
当 gkeadm
创建管理员工作站时,它生成了一个名为 admin-cluster.yaml
的配置文件。此配置文件用于创建管理员集群。
填写配置文件
name
如果要为管理员集群指定名称,请填写 name
字段。
bundlePath
系统已为您填写此字段。
vCenter
此部分中的大多数字段已使用您在创建管理员工作站时输入的值进行填充。dataDisk
字段除外,您必须现在填写此字段。
network
确定您要集群节点获取其 IP 地址的方式。选项包括:
从 DHCP 服务器获取。将
network.ipMode.type
设置为"dhcp"
。从您提供的静态 IP 地址列表获取。将
network.ipMode.type
设置为"static"
,并创建一个提供静态 IP 地址的 IP 地址块文件。
为 network
部分中剩余的字段提供值。
无论您是依赖 DHCP 服务器还是指定静态 IP 地址列表,都需要足够的 IP 地址来满足以下需求:
管理员集群中的三个节点,运行管理员集群控制层面和插件。
管理员集群中的一个额外节点,供升级时临时使用。
对于要创建的每个用户集群,管理员集群中需要有一个或三个节点来运行用户集群的控制层面组件。如果您希望用户集群具有高可用性 (HA) 控制层面,则需要将管理员集群中的三个节点用于用户集群控制层面。否则,管理员集群只需要为用户集群控制层面提供一个节点。
例如,假设您打算创建两个用户集群:一个具有高可用性控制层面,另一个具有非高可用性控制层面。那么您需要为管理员集群中的以下节点提供 8 个 IP 地址:
- 用于管理员集群控制层面和插件的三个节点
- 一个临时节点
- 用于高可用性用户集群控制层面的三个节点
- 用于非高可用性用户集群控制层面的一个节点
如前所述,如果要使用静态 IP 地址,则需要提供 IP 地址块文件。下面是一个包含 8 个主机的 IP 地址块文件的示例:
blocks: - netmask: 255.255.252.0 gateway: 172.16.23.254 ips: - ip: 172.16.20.10 hostname: admin-host1 - ip: 172.16.20.11 hostname: admin-host2 - ip: 172.16.20.12 hostname: admin-host3 - ip: 172.16.20.13 hostname: admin-host4 - ip: 172.16.20.14 hostname: admin-host5 - ip: 172.16.20.15 hostname: admin-host6 - ip: 172.16.20.16 hostname: admin-host7 - ip: 172.16.20.17 hostname: admin-host8
loadBalancer
为管理员集群的 Kubernetes API 服务器预留一个 VIP 地址。为插件服务器预留另一个 VIP 地址。提供您的 VIP 地址作为 loadBalancer.vips.controlPlaneVIP
和 loadBalancer.vips.addonsVIP
的值。
确定要使用的负载平衡类型。选项包括:
Seesaw 捆绑式负载平衡。将
loadBalancer.kind
设置为"Seesaw"
,然后填写loadBalancer.seesaw
部分。使用 F5 BIG-IP 的集成式负载平衡。将
loadBalancer.kind
设置为"F5BigIP"
,然后填写f5BigIP
部分。手动负载平衡。将
loadBalancer.kind
设置为"ManualLB"
,然后填写manualLB
部分。
antiAffinityGroups
根据您的偏好将 antiAffinityGroups.enabled
设置为 true
或 false
。
adminMaster
根据您的偏好填写 adminMaster
部分或将其移除。
addonNode
根据您的偏好将 addonNode.autoResize.enabled
设置为 true
或 false
。
proxy
如果将拥有管理员集群节点的网络位于代理服务器后面,请填写 proxy
部分。
privateRegistry
确定 Anthos Clusters on VMware 组件的容器映像的存储位置。选项包括:
gcr.io。请勿填写
privateRegistry
部分。您自己的私有 Docker 注册表。
如需创建您自己的私有 Docker 注册表,请执行以下操作:
请填写
privateRegistry
部分。将注册表证书复制到
/etc/docker/certs.d/REGISTRY_SERVER_ADDRESS/ca.crt
所需的位置(如果此位置不存在)。注册表证书在管理员种子配置的privateRegistry.caCertPath
中设置。mkdir -p /etc/docker/certs.d/REGISTRY_SERVER_ADDRESS cp CERTIFICATE_PATH /etc/docker/certs.d/REGISTRY_SERVER_ADDRESS/ca.crt
替换以下内容:
REGISTRY_SERVER_ADDRESS
:您的私有注册表的 IP 地址CERTIFICATE_PATH
:注册表证书的路径
componentAccessServiceAccountKeyPath
系统已为您填写此字段。
gkeConnect
如果要将管理员集群注册到 Google Cloud 舰队,请填写 gkeConnect
部分。
stackdriver
如果要为集群启用 Cloud Logging 和 Cloud Monitoring,请填写 stackdriver
部分。
cloudAuditLogging
如果要为集群启用 Cloud Audit Logs,请填写 cloudAuditLogging
部分。
clusterBackup
根据您的偏好将 clusterBackup.datastore
设置为 true
或 false
。
autoRepair
根据您的偏好将 autoRepair.enabled
设置为 true
或 false
。
secretsEncryption
如果要启用始终开启的 Secret 加密,请填写 secretsEncryption
部分。
验证配置文件
填写管理员集群配置文件后,请运行 gkectl check-config
以验证该文件是否有效:
gkectl check-config --config [CONFIG_PATH]
其中 [CONFIG_PATH] 是管理员集群配置文件的路径。
如果该命令返回任何失败消息,请修复问题并再次验证文件。
如果您想跳过更耗时的验证,请传递 --fast
标志。如需跳过各项验证,请使用 --skip-validation-xxx
标志。如需详细了解 check-config
命令,请参阅运行预检检查。
运行 gkectl prepare
运行 gkectl prepare
以初始化您的 vSphere 环境:
gkectl prepare --config [CONFIG_PATH]
gkectl prepare
命令可执行以下预备任务:
将操作系统映像导入 vSphere 并将其标记为虚拟机模板。
如果您使用的是私有 Docker 注册表,此命令会将 Docker 容器映像推送到您的注册表。
(可选)此命令会验证容器映像的版本证明,从而验证映像是由 Google 构建和签名的,并已准备好部署。
为管理员集群创建 Seesaw 负载均衡器
如果您已选择使用捆绑式 Seesaw 负载均衡器,请执行本部分中的步骤。否则,您可以跳过此部分。
为 Seesaw 负载均衡器创建并配置虚拟机:
gkectl create loadbalancer --config [CONFIG_PATH]
创建管理员集群
创建管理员集群:
gkectl create admin --config [CONFIG_PATH]
其中 [CONFIG_PATH] 是管理员集群配置文件的路径。
找到管理员集群 kubeconfig 文件的位置
gkectl create admin
命令会在当前目录中创建一个名为 kubeconfig
的 kubeconfig 文件。您稍后需要此 kubeconfig 文件才能与管理员集群进行交互。
如果愿意,您可以更改 kubeconfig 文件的名称和位置。
验证管理员集群是否正在运行
验证管理员集群是否正在运行:
kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG
将 ADMIN_CLUSTER_KUBECONFIG 替换为管理员集群 kubeconfig 文件的路径。
输出会显示管理员集群节点。 例如:
gke-admin-master-hdn4z Ready control-plane,master ... gke-admin-node-7f46cc8c47-g7w2c Ready ... gke-admin-node-7f46cc8c47-kwlrs Ready ...
管理 checkpoint.yaml
文件
在您运行 gkectl create admin
命令创建管理员集群时,它在管理员集群数据磁盘所在的数据存储区文件夹中创建了一个 checkpoint.yaml
文件。默认情况下,此文件的名称为 DATA_DISK_NAME‑checkpoint.yaml。如果 DATA_DISK_NAME 的长度大于或等于 245 个字符,那么由于 vSphere 对文件名长度的限制,其名称为 DATA_DISK_NAME.yaml。将 DATA_DISK_NAME 替换为数据磁盘的名称。
此文件包含管理员集群状态和凭据,用于未来的升级。与管理员集群数据磁盘一样,除非您按照删除管理员集群的流程操作,否则请勿删除此文件。
如果您已在 vCenter 中启用了虚拟机加密,则在您要上传检查点文件时,您必须拥有 Cryptographer.Access
权限才能创建或升级管理员集群。如果您无法获取此权限,则可以在运行相关命令时禁止使用隐藏的标志 --disable-checkpoint
上传检查点文件。
在您运行 gkectl upgrade admin
命令或运行影响管理员集群的 gkectl update
命令时,checkpoint.yaml 文件会自动更新。
问题排查
请参阅排查集群创建和升级问题