本文档介绍了如何将集群从 1.32 版更新或升级为高级集群。
前提条件
gkectl版本必须与目标集群版本相同。- 如果需要,请参阅下载
gkectl以获取受支持的gkectl版本。
- 如果需要,请参阅下载
在更新或升级集群之前,请务必先诊断集群。
确保您的集群仅使用推荐的功能。
在开始更新或升级之前,请验证您的集群是否未使用任何高级集群不支持的功能。如果有任何不支持的功能处于活跃状态,请先使用更新功能将其停用。
- 虽然高级集群上需要高可用性 (HA) 用户集群,但您仍然可以按照本指南将非高可用性用户集群更新或升级为高可用性高级集群。
您必须先将管理员集群更新或升级为高级集群,然后才能更新或升级任何用户集群。
将管理员集群更新或升级为高级集群
更新
为高级集群做好准备:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster替换以下内容:
BUNDLE_PATH:软件包文件的路径。此文件位于/var/lib/gke/bundles/中的管理员工作站上。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
将管理员集群配置文件中的
enableAdvancedCluster设置为true。将管理员集群更新为高级集群:
gkectl update admin \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径。
该命令将重新创建管理员集群中的所有节点。
升级
根据需要升级管理员工作站。
为高级集群做好准备:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster替换以下内容:
BUNDLE_PATH:软件包文件的路径。此文件位于/var/lib/gke/bundles/中的管理员工作站上。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
将管理员集群配置文件中的
enableAdvancedCluster设置为true。确保管理员集群配置文件中的
bundlepath字段与您要升级到的软件包的路径相匹配。将管理员集群升级为高级集群:
gkectl upgrade admin \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config ADMIN_CLUSTER_CONFIG替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径ADMIN_CLUSTER_CONFIG:管理员集群配置文件的路径。
该命令将以发布方式重新创建管理员集群中的所有节点。 使用“发布重新创建”部署策略时,节点会一次升级一个。在节点升级期间,系统会删除虚拟机,然后使用新版本重新创建虚拟机。
将管理员集群更新或升级为高级集群后:
您现有的非高级用户集群会继续正常运行。
您只能创建由高级管理员集群管理的高级用户集群。
我们建议您在此之后尽快将所有用户集群升级为高级集群,以保持一致且功能齐全的环境。
将用户集群更新或升级为高级集群
更新
如果用户集群控制平面不具备高可用性 (HA):
将
masterNode.replicas从 1 更改为 3。将用户集群控制平面节点的静态 IP 地址添加到
network.controlPlaneIPBlock.ips部分。
为高级集群做好准备:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster替换以下内容:
BUNDLE_PATH:软件包文件的路径。此文件位于/var/lib/gke/bundles/中的管理员工作站上。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
将用户集群配置文件中的
enableAdvancedCluster设置为true。将用户集群更新为高级集群:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径USER_CLUSTER_CONFIG:用户集群配置文件的路径。
该命令将以发布方式重新创建用户集群中的所有节点。 使用滚动重新创建部署策略时,节点会逐个更新。在节点更新期间,系统会删除虚拟机,然后使用新配置重新创建虚拟机。
升级
如果用户集群控制平面不具备高可用性 (HA):
将
masterNode.replicas从 1 更改为 3。将用户集群控制平面节点的静态 IP 地址添加到
network.controlPlaneIPBlock.ips部分。
为高级集群做好准备:
gkectl prepare \ --bundle-path BUNDLE_PATH \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --advanced-cluster替换以下内容:
BUNDLE_PATH:软件包文件的路径。此文件位于/var/lib/gke/bundles/中的管理员工作站上。例如:/var/lib/gke/bundles/gke-onprem-vsphere-1.32.0-gke.1085-full.tgzADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
将用户集群配置文件中的
enableAdvancedCluster设置为true。确保用户集群配置文件中的
gkeOnPremVersion字段与您要升级到的目标版本相匹配。将用户集群升级为高级集群:
gkectl upgrade cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG替换以下内容:
ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径USER_CLUSTER_CONFIG:用户集群配置文件的路径。
该命令将重新创建用户集群中的所有节点。
改用高级集群后的重要差异
与标准集群相比,将集群升级或更新为高级集群会带来一些重要差异。以下是高级集群中的重大变化:
资源位置:集群和机器资源不再位于用户集群中。这些资源仅位于管理员集群中。
NodeExternalIP:未在节点上设置NodeExternalIP。cert-manager安装:cert-manager会自动安装在高级集群上。如果您在集群中安装了cert-manager,则更新或升级为高级集群会使用高级集群版本覆盖它。
如需全面了解功能差异,请参阅功能对比表。