本页面介绍如何创建其他用户集群。要创建其他用户集群,您需要创建用于部署集群的 GKE On-Prem 配置文件的副本。您可以修改复制的文件,以满足您对新用户集群的预期,然后使用该文件创建集群。
您需要为要创建的每个其他用户集群复制并修改 GKE On-Prem 配置文件。
准备工作
- 确保管理员集群正在运行。您已在安装 GKE On-Prem 时创建管理员集群。
- 找到安装过程中由
gkectl
生成的config.yaml
文件。此文件定义了管理员集群和用户集群的规范。您将复制并修改此文件以创建其他用户集群。 - 找到管理员集群的
kubeconfig
文件。当您复制和修改config.yaml
时会参考此文件。
复制配置文件
复制使用 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.yaml
的 admincluster
和 usercluster
字段,然后使用该文件创建其他用户集群。
在复制的文件中,您可能需要更改以下字段:
gkeplatformversion
,用于指定要在集群中运行的 Kubernetes 版本。(这不是 GKE On-Prem 平台版本。在将来的版本中,此字段将被重命名。)
删除 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.controlplanevip
和 usercluster.vips.ingressvip
。
更改机器要求(可选)
如果您需要此用户集群的控制层面或工作器节点使用不同数量的 CPU 或内存,或者如果您需要集群运行更多或更少的节点,请设置以下字段的值:
usercluster.masternode
usercluster.masternode.cpus
:要使用的 CPU 核心数。usercluster.masternode.memorymb
:要使用的内存大小(以 MB 为单位)。usercluster.masternode.replicas
:要运行的此类型节点的数量。值必须为1
或3
。
usercluster.workernode
usercluster.workernode.cpus
:要使用的 CPU 核心数。usercluster.workernode.memorymd
:要使用的内存大小(以 MB 为单位)。usercluster.workernode.replicas
:要运行的此类型节点的数量。
创建用户集群
既然您已经填充了 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 共享集群信息。请参阅诊断集群问题。
默认日志记录行为
对于 gkectl
和 gkeadm
,使用默认日志记录设置便已足够:
-
默认情况下,日志条目的保存方式如下:
- 对于
gkectl
,默认日志文件为/home/ubuntu/.config/gke-on-prem/logs/gkectl-$(date).log
,该文件与运行gkectl
的本地目录中的logs/gkectl-$(date).log
文件进行符号链接。 - 对于
gkeadm
,默认日志文件是运行gkeadm
的本地目录中的logs/gkeadm-$(date).log
。
- 对于
- 所有日志条目都会保存在日志文件中,即使它们不输出到终端(当
--alsologtostderr
为false
时)也是如此。 -v5
详细程度(默认)涵盖支持团队所需的所有日志条目。- 日志文件还包含已执行的命令和失败消息。
我们建议您在需要帮助时将日志文件发送给支持团队。
为日志文件指定非默认位置
要为 gkectl
日志文件指定非默认位置,请使用 --log_file
标志。您指定的日志文件不会与本地目录进行符号链接。
要为 gkeadm
日志文件指定非默认位置,请使用 --log_file
标志。
在管理员集群中查找 Cluster API 日志
如果虚拟机在管理员控制层面启动后无法启动,您可以通过在管理员集群中检查 Cluster API 控制器的日志来尝试进行调试:
在
kube-system
命名空间中找到 Cluster API 控制器 pod 的名称,其中 [ADMIN_CLUSTER_KUBECONFIG] 是管理员集群的 kubeconfig 文件的路径:kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system get pods | grep clusterapi-controllers
打开 pod 的日志,其中 [POD_NAME] 是 pod 的名称。您可以选择使用
grep
或类似工具来搜索错误:kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] -n kube-system logs [POD_NAME] vsphere-controller-manager