本页面介绍如何为 VMware 上的 Anthos 集群 (GKE On-Prem) 创建用户集群。
此处为完整说明。若想简单地了解一下如何创建用户集群,请参阅创建用户集群(快速入门)。
准备工作
与管理员工作站建立 SSH 连接
与管理员工作站建立 SSH 连接。
您应该还记得,gkeadm
在管理员工作站上激活了您的组件访问服务帐号。
在管理员工作站的主目录中完成本主题中的所有其余步骤。
凭据配置文件
使用 gkeadm
创建管理员工作站时,您填写了一个名为 credential.yaml
的凭据配置文件。此文件包含 vCenter 服务器的用户名和密码。
用户集群配置文件
当 gkeadm
创建管理员工作站时,它生成了一个名为 user-cluster.yaml
的配置文件。此配置文件用于创建用户集群。
填写配置文件
name
将 name
字段设置为您为用户集群选择的名称。
gkeOnPremVersion
系统已为您填写此字段。
vCenter
您在管理员集群配置文件的 vCenter
部分中设置的值是全局值。也就是说,它们适用于管理员集群和用户集群。
对于您创建的每个用户集群,您可以选择替换一些全局 vCenter
值。
如果要替换任何全局 vCenter
值,请填写用户集群配置文件中 vCenter
部分的相关字段。
network
将 network.ipMode.type
设置为您在管理员集群配置文件中设置的值:"dhcp"
或 "static"
。
如果将 ipMode.type
设置为 "static"
,请创建一个 IP 地址块文件,以便为用户集群中的节点提供静态 IP 地址。然后将 network.ipMode.ipBlockFilePath
设置为 IP 地址块文件的路径。
为 network
部分中剩余的字段提供值。
无论您是依赖 DHCP 服务器还是指定静态 IP 地址列表,都需要足够的 IP 地址来满足以下需求:
用户集群中的节点
用户集群中的一个额外节点,供升级时临时使用。
如前所述,如果要使用静态 IP 地址,则需要提供 IP 地址块文件。下面是一个包含 6 个主机的 IP 地址块文件的示例:这可以为具有 5 个节点且在升级时偶尔具有 6 个节点的集群提供足够的地址:
blocks: - netmask: 255.255.252.0 gateway: 172.16.23.254 ips: - ip: 172.16.20.21 hostname: user-host1 - ip: 172.16.20.22 hostname: user-host2 - ip: 172.16.20.23 hostname: user-host3 - ip: 172.16.20.24 hostname: user-host4 - ip: 172.16.20.25 hostname: user-host5 - ip: 172.16.20.26 hostname: user-host6
loadBalancer
为用户集群的 Kubernetes API 服务器预留一个 VIP。为用户集群的入站服务预留另一个 VIP。提供您的 VIP 作为 loadBalancer.vips.controlPlaneVIP
和 loadBalancer.vips.ingressVIP
的值。
将 loadBalancer.kind
设置为您在管理员集群配置文件中设置的值:"ManualLB"
、"F5BigIP"
"Seesaw"
。然后填写相应部分:manualLB
、f5BigIP
或 seesaw
。
masterNode
请填写 masterNode
部分。
nodePools
请填写 nodePools
部分。
antiAffinityGroups
将 antiAffinityGroups.enabled
设置为 true
或 false
。
authentication
如果您要使用 OpenID Connect (OIDC) 对用户进行身份验证,请填写 authentication.oidc
部分。
如果要为用户集群的 vCenter 服务器提供额外的证书,请填写 authentication.sni
部分。
stackdriver
请填写 stackdriver
部分。
gkeConnect
请填写 gkeConnect
部分。
cloudRun
将 cloudRun.enabled
设置为 true
或 false
。
usageMetering
如果要为集群启用用量计量功能,请填写 usageMetering
部分。
cloudAuditLogging
如果要将集群的 Kubernetes API 服务器中的审核日志与 Cloud Audit Logs 集成,请填写 cloudAuditLogging
部分。
验证配置文件
填写用户集群配置文件后,请运行 gkectl check-config
以验证文件是否有效:
gkectl check-config --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_PATH]
其中:
[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径。
[CONFIG_PATH] 是用户集群配置文件的路径。
如果该命令返回任何失败消息,请修复问题并再次验证文件。
如果您想跳过更耗时的验证,请传递 --fast
标志。如需跳过各项验证,请使用 --skip-validation-xxx
标志。如需详细了解 check-config
命令,请参阅运行预检检查。
为用户集群创建 Seesaw 负载均衡器
如果您已选择使用捆绑式 Seesaw 负载均衡器,请执行本部分中的步骤。否则,请跳过此部分。
为 Seesaw 负载平衡器创建并配置虚拟机:
gkectl create loadbalancer --kubeconfig kubeconfig --config user-cluster.yaml
将 Container-Optimized OS 上传到 vCenter
如果您已选择为用户集群创建 Container-Optimized OS 节点池,则必须将 Container-Optimized OS 上传到 vCenter。
如需将 Container-Optimized OS 上传到 vCenter,请运行以下命令:
gkectl prepare --config ADMIN_CLUSTER_CONFIG_PATH --extra-os-image-types cos
其中 ADMIN_CLUSTER_CONFIG_PATH 是管理员集群配置文件的路径。
创建用户集群
创建用户集群:
gkectl create cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] \ --config [CONFIG_PATH]
其中
[CONFIG_PATH] 是用户集群配置文件的路径。
[ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径。
gkectl create cluster
命令会在当前目录中创建一个名为 [USER_CLUSTER_NAME]-kubeconfig
的 kubeconfig 文件。您稍后需要此 kubeconfig 文件才能与用户集群进行互动。
验证用户集群是否正在运行
验证用户集群是否正在运行:
kubectl get nodes --kubeconfig [USER_CLUSTER_KUBECONFIG]
其中 [USER_CLUSTER_KUBECONFIG] 是 kubeconfig 文件的路径。
输出会显示用户集群节点。
问题排查
请参阅排查集群创建和升级问题。