升级节点池

本文档介绍如何升级用户集群中的控制平面和所选节点池。

Ubuntu 和 COS 节点池支持升级所选节点池,但 Windows 节点池不支持。

在某些情况下,您可能需要升级用户集群中的部分(而不是全部)节点池。例如,您可以先升级流量较少或运行最不重要的工作负载的节点池。确信工作负载在新版本上正常运行后,您可以升级其他节点池,直到最终升级所有节点池。

升级管理员工作站

将管理员工作站升级到目标版本。 如需了解相关说明,请参阅升级 GKE on VMware

将新的操作系统映像导入 vSphere

运行 gkectl prepare,将操作系统映像导入 vSphere:

gkectl prepare \
    --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

替换以下内容:

  • TARGET_VERSION:升级操作的目标版本

  • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径

查看可用的版本

运行以下命令,查看哪些版本可以升级:

gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG

输出会显示当前版本和可用于升级的版本。例如:

gkectl version: 1.14.0-gke.x

current admin cluster version: 1.13.1-gke.35

current user cluster versions:
- 1.13.1-gke.35

available admin cluster versions:
- 1.13.1-gke.35

available user cluster versions:
- 1.13.1-gke.35
- 1.14.0-gke.x

升级用户集群控制平面和所选节点池

按照升级用户集群中的说明操作。在用户集群配置文件中,将 gkeOnPremVersion 设置为升级操作的目标版本。对于要升级的每个节点池,移除 nodePools.nodePool[i].gkeOnPremVersion 字段或将其设置为空字符串。对于您不想升级的每个节点池,请将 nodePools.nodePool[i].gkeOnPremVersion 设置为当前版本。

例如,假设您的用户集群为 1.13.1-gke.35 版,并且有两个节点池:pool-1pool-2。此外,还假设您希望将控制平面和 pool-1 升级到 1.14.0-gke.x,但希望 pool-2 保留为 1.13.1-gke.35 版。

以下是用户集群配置文件的一部分。它指定将控制平面和 pool-1 将升级到 1.14.0-gke.x 版,但 pool-2 将保持为当前版本 1.13.1-gke.35。

gkeOnPremVersion: 1.14.0-gke.0

nodePools:
- name: pool-1
  gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: ubuntu_containerd
- name: pool-2
  gkeOnPremVersion: 1.13.1-gke.35
  cpus: 4
  memoryMB: 8192
  replicas: 5
  osImageType: ubuntu_containerd

按照升级用户集群中的说明继续升级。

升级其他节点池

假设 pool-1 工作正常,而现在您想要升级 pool-2

在用户集群配置文件中,移除 pool-2 下的 gkeOnPremVersion,或将其设置为空字符串:

gkeOnPremVersion: 1.14.0-gke.0

nodePools:
- name: pool-1
  gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: ubuntu_containerd
- name: pool-2
  gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  replicas: 5
  osImageType: ubuntu_containerd

运行 gkectl update cluster 以应用更改:

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config USER_CLUSTER_CONFIG

替换以下内容:

  • ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径

  • USER_CLUSTER_CONFIG:用户集群配置文件的路径

问题排查

如果在升级节点池后遇到问题,可以回滚到先前版本。如需了解详情,请参阅在升级后回滚节点池