创建其他用户集群

本页面介绍如何创建其他用户集群。要创建其他用户集群,您需要创建用于部署集群的 GKE On-Prem 配置文件的副本。您可以修改复制的文件,以满足您对新用户集群的预期,然后使用该文件创建集群。

您需要为要创建的每个其他用户集群复制并修改 GKE On-Prem 配置文件。

准备工作

  • 确保管理员集群正在运行。您已在安装 GKE On-Prem 时创建管理员集群。
  • 找到安装过程中由 gkectl 生成的 config.yaml 文件。此文件定义了管理员集群和用户集群的规范。您将复制并修改此文件以创建其他用户集群。
  • 找到管理员集群的 kubeconfig 文件。当您复制和修改 config.yaml 时会参考此文件。

限制

限制 说明
集群和节点的上限和下限

请参阅配额和限制。您的环境性能可能会影响这些限制。

用户集群名称的唯一性

注册到同一 Google Cloud 项目的所有用户集群都必须具有唯一的名称。

不能部署到多个 vCenter 和/或 vSphere 数据中心

目前,您只能将一个管理员集群和一组关联的用户集群部署到单个 vCenter 和/或 vSphere 数据中心。您不能将同一管理员集群和用户集群部署到多个 vCenter 和/或 vSphere 数据中心。

创建集群后不能以声明方式更改集群配置 虽然您可以创建其他集群调整现有集群的大小,但无法通过配置文件更改现有集群。

验证是否有足够的可用 IP 地址

请务必为新用户集群分配足够的 IP 地址。如何验证是否有足够的 IP 地址取决于您使用的是 DHCP 服务器还是静态 IP。

DHCP

检查将在其中创建集群的网络中的 DHCP 服务器是否具有足够的 IP 地址。IP 地址应该比用户集群中将要运行的节点多。

静态 IP

检查您是否在负载平衡器上分配了足够多的 IP 地址,并确保在创建集群时指定这些 IP 地址。

创建 F5 BIG-IP 分区

如果您使用 F55 BIG-IP 进行负载平衡,则为新的用户集群创建一个分区

复制配置文件

复制使用 gkectl create-config 生成修改为适合您的环境的 GKE On-Prem 配置文件。重命名副本以使用其他文件名:

cp [CONFIG_FILE] [NEW_USER_CLUSTER_CONFIG]

其中,[NEW_USER_CLUSTER_CONFIG] 是您为配置文件副本选择的名称。在这些说明中,我们将该文件称为 create-user-cluster.yaml

create-user-cluster.yaml 中,您需要更改以下字段:

  • admincluster,管理员集群的规范。您可以从文件中完全移除 admincluster 规范。
  • usercluster,用户集群的规范。

在以下部分中,您将修改 create-user-cluster.yamladminclusterusercluster 字段,然后使用该文件创建其他用户集群。

删除 admincluster 规范

如果要从现有管理员集群中创建其他用户集群,您需要删除整个 admincluster 规范。

为此,只需删除规范及其所有子字段即可。

请务必不要删除 usercluster 规范及其任何子字段。

修改 usercluster 规范

按照以下部分中的说明更改 usercluster 字段。

更改用户集群的名称

usercluster.clustername 字段中更改用户集群名称。新的用户集群应具有与现有用户集群不同的名称。

为用户集群的节点预留 IP 地址

如果您使用的是 DHCP,请确保您有足够的 IP 来创建节点。

对于静态 IP,您应该修改提供给包含用户集群预定义 IP 地址的 usercluster.ipblockfilepath 的文件,或提供其他静态 IP YAML 文件和所需的 IP。

为负载平衡器预留 IP 地址

如果您使用的是 F5 BIG-IP 负载平衡器,请务必为用户集群的负载平衡器控制层面和 Ingress 预留两个 IP 地址。相应的字段为 usercluster.vips.controlplanevipusercluster.vips.ingressvip

更改机器要求(可选)

如果您需要此用户集群的控制层面或工作器节点使用不同数量的 CPU 或内存,或者如果您需要集群运行更多或更少的节点,请设置以下字段的值:

usercluster.masternode

  • usercluster.masternode.cpus:要使用的 CPU 核心数。
  • usercluster.masternode.memorymb:要使用的内存大小(以 MB 为单位)。
  • usercluster.masternode.replicas:要运行的此类型节点的数量。值必须为 13

usercluster.workernode

  • usercluster.workernode.cpus:要使用的 CPU 核心数。
  • usercluster.workernode.memorymd:要使用的内存大小(以 MB 为单位)。
  • usercluster.workernode.replicas:要运行的此类节点数。

配置 F5 BIG-IP 分区

如果您正在使用 F5 BIG-IP 进行负载平衡,则之前已为新用户集群创建了分区。现在,在 usercluster.bigip.partition 字段中配置分区。例如:

usercluster:
...
bigip:
  partition: "my-new-user-f5-partition"
...

创建用户集群

既然您已经填充了 create-user-cluster.yaml 文件,就可以使用该文件创建其他用户集群了。

运行以下命令:

gkectl create cluster --config create-user-cluster.yaml --kubeconfig [ADMIN_CLUSTER_KUBECONFIG]

其中:

  • create-user-cluster.yaml 是您刚刚创建的配置文件。您可能为此文件选择了其他名称。
  • [ADMIN_CLUSTER_KUBECONFIG] 指向现有管理员集群的 kubeconfig

问题排查

如需了解详情,请参阅问题排查

使用 gkectl 诊断集群问题

使用 gkectl diagnose 命令识别集群问题并与 Google 共享集群信息。请参阅诊断集群问题

默认日志记录行为

对于 gkectlgkeadm,使用默认日志记录设置便已足够:

  • 默认情况下,日志条目的保存方式如下:

    • 对于 gkectl,默认日志文件为 /home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log,该文件与运行 gkectl 的本地目录中的 logs/gkectl-$(date).log 文件进行符号链接。
    • 对于 gkeadm,默认日志文件是运行 gkeadm 的本地目录中的 logs/gkeadm-$(date).log
  • 所有日志条目都会保存在日志文件中,即使它们不输出到终端(当 --alsologtostderrfalse 时)也是如此。
  • -v5 详细程度(默认)涵盖支持团队所需的所有日志条目。
  • 日志文件还包含已执行的命令和失败消息。

我们建议您在需要帮助时将日志文件发送给支持团队。

为日志文件指定非默认位置

要为 gkectl 日志文件指定非默认位置,请使用 --log_file 标志。您指定的日志文件不会与本地目录进行符号链接。

要为 gkeadm 日志文件指定非默认位置,请使用 --log_file 标志。

在管理员集群中查找 Cluster API 日志

如果虚拟机在管理员控制层面启动后无法启动,您可以通过在管理员集群中检查 Cluster API 控制器的日志来尝试进行调试:

  1. kube-system 命名空间中找到 Cluster API 控制器 pod 的名称,其中 [ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径:

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
  2. 打开 pod 的日志,其中 [POD_NAME] 是 pod 的名称。您可以选择使用 grep 或类似工具来搜索错误:

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager