本页面介绍如何为 Anthos Clusters on VMware (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
部分。
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 ADMIN_CLUSTER_KUBECONFIG --config user-cluster.yaml
其中
- ADMIN_CLUSTER_KUBECONFIG 是管理员集群的 kubeconfig 文件的路径。
将 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 文件才能与用户集群进行互动。
找到用户集群 kubeconfig 文件的位置
gkectl create cluster
命令会在当前目录中创建一个名为 USER_CLUSTER_NAME-kubeconfig
的 kubeconfig 文件。您稍后需要此 kubeconfig 文件才能与用户集群进行互动。
如果愿意,您可以更改 kubeconfig 文件的名称和位置。
验证用户集群是否正在运行
验证用户集群是否正在运行:
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
将 USER_CLUSTER_KUBECONFIG 替换为用户集群 kubeconfig 文件的路径。
输出会显示用户集群节点。例如:
my-user-cluster-node-pool-69-d46d77885-7b7tx Ready ... my-user-cluster-node-pool-69-d46d77885-lsvzk Ready ... my-user-cluster-node-pool-69-d46d77885-sswjk Ready ...
问题排查
请参阅排查集群创建和升级问题。