创建用户集群

本页面介绍如何为 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.controlPlaneVIPloadBalancer.vips.ingressVIP 的值。

loadBalancer.kind 设置为您在管理员集群配置文件中设置的值:"ManualLB""F5BigIP""Seesaw"。然后填写相应部分:manualLBf5BigIPseesaw

masterNode

请填写 masterNode 部分。

nodePools

请填写 nodePools 部分。

antiAffinityGroups

antiAffinityGroups.enabled 设置为 truefalse

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 ...

问题排查

请参阅排查集群创建和升级问题

后续步骤