本页面介绍如何为 VMware 上的 Anthos 集群 (GKE On-Prem) 创建管理员集群。
此处为完整说明。如需查看创建管理员集群的简要介绍,请参阅创建管理员集群(快速入门)。
准备工作
与管理员工作站建立 SSH 连接
与管理员工作站建立 SSH 连接。
您应该还记得,gkeadm
在管理员工作站上激活了您的组件访问服务帐号。
在管理员工作站的主目录中完成本主题中的所有其余步骤。
凭据配置文件
使用 gkeadm
创建管理员工作站时,您填写了一个名为 credential.yaml
的凭据配置文件。此文件包含 vCenter 服务器的用户名和密码。
管理员集群配置文件
当 gkeadm
创建管理员工作站时,它生成了一个名为 admin-cluster.yaml
的配置文件。此配置文件用于创建管理员集群。
填写配置文件
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
。
proxy
如果将拥有管理员集群节点的网络位于代理服务器后面,请填写 proxy
部分。
privateRegistry
确定 Anthos Clusters on VMware 组件的容器映像的存储位置。选项包括:
gcr.io。请勿填写
privateRegistry
部分。您自己的私有 Docker 注册表。请填写
privateRegistry
部分。
gcrKeyPath
将 gcrKeyPath
设置为组件访问服务帐号的 JSON 密钥文件的路径。
stackdriver
请填写 stackdriver
部分。
cloudAuditLogging
如果您要将 Kubernetes 审核日志与 Cloud Audit Logs 集成,请填写 cloudAuditLogging
部分。
autoRepair
如果您要启用节点自动修复,请将 autoRepair.enabled
设置为 true
。否则,请将其设置为 false
。
验证配置文件
填写管理员集群配置文件后,请运行 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 ...
问题排查
请参阅排查集群创建和升级问题