升级概览

本页面简要介绍了升级过程和版本偏差信息,这些信息可帮助您规划在多集群环境中升级集群的顺序。如需了解更详细的规划信息(包括有助于您规划升级的核对清单),请参阅升级最佳实践

升级序列

从 1.7 版开始,就地升级必须始终遵循特定升级序列:

  1. 升级管理员工作站。即使您打算使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 来升级用户集群,我们仍建议您这样做。

  2. 升级用户集群(一次一个)。在 1.14 版及更高版本中,您可以选择将用户集群的控制平面与用户集群上的节点池分开升级。如需了解为何可能需要执行此操作,请参阅用户集群升级

    用户集群中的所有节点池版本与用户集群控制平面的版本相同后,用户集群将完全升级。

    管理员集群的次要版本不能高于其管理的任何用户集群的次要版本。如果您的任何用户集群与管理员集群处于同一次要版本,则无法升级管理员集群。

  3. 当所有用户集群都比管理员集群至少高一个次要版本时,您可以选择升级管理员集群。

升级的版本偏差和版本规则在 1.28 及更高版本中有所更改。 如需了解详情,请参阅版本偏差

用户集群升级

升级用户集群时,您可以选择将用户集群整体升级(这意味着,您可以升级控制平面和集群中的所有节点池),也可以升级用户集群的控制平面并将节点池保留为当前版本。您所采用的方法取决于多种因素,例如:

  • 集群所在的环境(生产环境或非生产环境)。
  • 维护窗口的时长。
  • 用户集群的版本。

例如,在开发环境中,您可能希望简化流程,并升级用户集群的控制平面和所有节点池。 但是,在维护窗口较短的生产环境中,建议您仅升级控制平面,因为升级所需的时间更短,并且具备高可用性 (HA) 控制平面,控制平面升级不会干扰用户工作负载。如果控制平面为 1.28 版或更高版本,您可以在升级节点池时跳过次要版本。

Ubuntu 和 COS 节点池支持从控制平面单独升级节点池,但不支持 Windows 节点池。

有选择地升级节点池

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

选择用于升级用户集群的工具

GKE on VMware 为您提供了多种用于升级用户集群的工具。

  • 命令行工具 gkectl,您在管理员工作站上运行。在升级之前,请修改用户集群配置文件,以设置集群的控制平面和(可选)节点池的目标版本。您可以在 gkectl 的命令行中指定此文件。

  • Google Cloud 控制台、Google Cloud CLI 或 Terraform,您可以在任何与 GKE On-Prem API 有网络连接的计算机上运行该 Terraform。这些标准工具是在 Google Cloud 基础架构上运行的 GKE On-Prem API 的客户端。

    • 只有在使用 Terraform 创建用户集群时,才能使用 Terraform 进行升级。

    • 如果您的用户集群是使用 gkectl 创建的,则该集群必须在 GKE On-Prem API 中注册,才能使用控制台或 gcloud CLI 进行升级。在 1.16 及更高版本中,使用 gkectl 创建的集群默认在 GKE On-Prem API 中注册。对于在早期版本中创建的集群,您可以在创建集群后注册集群

      即使您决定使用 gkectl 进行升级,也可能希望在 GKE On-Prem API 中注册集群,以使用控制台或 gcloud CLI 获取有关集群的信息。

您使用的工具取决于您计划如何升级用户集群:

  • 将集群作为一个整体升级:您可以使用 gkectl、Google Cloud 控制台、Google Cloud CLI 或 Terraform 升级用户集群(控制平面和所有节点池)。

  • 仅升级控制平面:您可以使用 gkectl、gcloud CLI 或 Terraform 将用户集群的控制平面与节点池分开升级。控制台不支持仅升级控制平面。

  • 升级控制平面后有选择地升级节点池:您可以在升级控制平面后使用 gkectl、gcloud CLI 或 Terraform 升级特定节点池。

  • 同时升级控制平面和一个或多个节点池:只有 gkectl 支持此使用场景。

管理员集群升级

当所有用户集群上的控制平面和节点池都比管理员集群至少高一个次要版本时,您可以选择升级管理员集群。只有 gkectl 支持升级管理员集群。GKE On-Prem API 客户端不支持升级管理员集群。

版本偏差

版本偏差是指管理员集群与其受管用户集群之间的次要版本之间的差异。在以下部分中,用户集群版本是指控制平面和节点池的版本作为一个整体。

此外,版本偏差是指用户集群控制平面与用户集群上的节点池之间的次要版本差异。

在多集群环境中,了解支持的升级版本偏差和版本规则可能有助于您规划集群升级顺序。

管理员集群和用户集群版本偏差

管理员集群可以管理不同版本的用户集群。借助此功能,您可以按适合自己组织的时间表升级一组用户集群。

1.16 及更低版本

在 1.16 及更低版本中,用户集群只能比管理员集群 1 个次要版本。例如,如果管理员集群的版本为 1.15,则由该管理员集群管理的用户集群的版本可以是 1.15 或 1.16。一般来说,如果 1.n 是管理员集群次要版本,则用户集群可以处于 1.n1.n+1

在管理员集群与用户集群处于同一次要版本之前,用户集群无法升级到下一个次要版本。

1.28 及更高版本

在 1.28 版及更高版本中,用户集群最多可以比管理员集群高 2 个次要版本。例如,如果管理员集群的版本为 1.15,则由该管理员集群管理的用户集群的版本可以是 1.15、1.16 或 1.28(在与 GKE 的版本一致中,1.28 是 1.16 之后的版本)。一般来说,如果 1.n 是管理员集群次要版本,则用户集群可以是 1.n1.n+11.n+2

1.n+2 中的用户集群无法升级到下一个次要版本,除非管理员集群升级至少一个次要版本。

用户集群控制平面和节点池版本偏差

1.16 及更低版本

在 1.16 版及更早版本中,用户集群的控制平面只能比集群中的节点池高 1 个次要版本。例如,如果用户集群的控制平面为 1.16,则集群中的节点池可以是 1.15 或 1.16。一般来说,如果 1.n 是用户集群控制平面的次要版本,则集群中的节点池可以位于 1.n1.n-1

用户集群无法升级到下一个次要版本,除非所有节点池都与控制平面使用相同的次要版本。

1.28 及更高版本

在 1.28 版及更高版本中,用户集群的控制平面最多可比集群中的节点池高 2 个次要版本。例如,如果用户集群的控制平面为 1.28,则集群中的节点池可以是 1.15、1.16 或 1.28。一般来说,如果 1.n 是用户集群控制平面的次要版本,则集群中的节点池可以位于 1.n1.n-11.n-2 中。

在所有节点池都处于 1.n1.n-1 状态之前,用户集群控制平面无法升级到下一个次要版本。

管理员集群和用户集群控制平面升级的版本规则

管理员集群和用户集群控制平面升级的版本规则相同。您可以直接升级到属于同一次要版本或下一个次要版本的任何版本。例如,您可以从 1.28.0 升级到 1.28.1,或从 1.16.1 升级到 1.28.0。补丁版本不会影响升级版本规则。

如果您要升级到不属于下一个次要版本的版本,则必须在当前版本与目标版本之间选择一个次要版本进行升级。不支持跳过次要版本。例如,如果您要从版本 1.15.x 升级到版本 1.28.x,则无法直接升级,您必须先从 1.15.x 升级到 1.16.x,然后再升级到 1.28.x。

一般来说,管理员集群升级和用户集群控制平面升级仅支持从 1.n1.n+1 的升级。

节点池升级的版本规则

在 1.28 版及更高版本中,升级用户集群中的节点池时,您可以跳过一个次要版本。例如,如果用户集群控制平面为 1.28,节点池为 1.15,您可以跳过 1.16,直接将节点池升级到 1.28。补丁版本不会影响升级版本规则。

一般来说,如果用户集群控制平面位于 1.n,则可以将位于 1.n-2 的节点池直接升级到 1.n。升级节点池时,跳过一个次要版本可能会比执行两次节点池升级(从 1.n-2 升级到 1.n-1,然后再升级到 1.n)所需的时间缩短。这是您可能希望将用户集群的控制平面与用户集群上运行的节点池分开升级的另一个原因。

补丁版本升级

我们建议您尽可能升级到最新的补丁程序版本,以确保您的集群具有最新的安全修复程序。补丁版本不会影响版本偏差和升级规则。对于给定的次要版本,您可以升级到任何较高的补丁版本。也就是说,只要 Y 大于 X,您就可以将 1.28.X 版本集群升级到版本 1.28.Y。例如,您可以从 1.16.0 升级到 1.16.1,也可以从 1.16.1 升级到 1.16.3

后续步骤

查看升级最佳实践并制定集群升级计划。