本页面简要介绍了升级过程和版本偏差信息,这些信息可以帮助您规划在多集群环境中升级集群的顺序。如需了解详细的规划信息(包括可帮助您规划升级的核对清单),请参阅升级最佳实践。
升级序列
从 1.7 版开始,就地升级必须始终遵循特定升级序列:
升级管理员工作站。即使您计划使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 升级用户集群,我们仍建议您这样做。
升级用户集群(一次一个)。在 1.14 版及更高版本中,您可以选择独立于用户集群上的节点池升级用户集群的控制平面。如需了解为何可能需要执行此操作,请参阅用户集群升级。
用户集群中的所有节点池与用户集群控制平面的版本相同后,用户集群将完全升级。
管理员集群的次要版本不能高于其管理的任何用户集群的次要版本。如果您的任何用户集群与管理员集群具有相同的次要版本,则您无法升级管理员集群。
如果所有用户集群都比管理员集群高一个次要版本,您可以选择升级管理员集群。
用户集群升级
升级用户集群时,您可以选择对用户集群进行整体升级(这意味着您可以升级控制平面和集群中的所有节点池),也可以升级用户集群的控制平面并将节点池保留为当前版本。您采用的方法取决于多个因素,例如:
- 集群所在的环境(生产环境或非生产环境)。
- 维护窗口的时长。
- 用户集群的版本。
例如,在开发环境中,您可能希望简化流程,并升级用户集群的控制平面和所有节点池。 但在维护窗口较短的生产环境中,您可能只想升级控制平面,因为升级所需的时间更少,并且具有高可用性 (HA) 控制平面,因此控制平面升级不会中断用户工作负载。
Ubuntu 和 COS 节点池支持从控制平面单独升级节点池,但不支持 Windows 节点池。
有选择地升级节点池
在某些情况下,您可能需要升级用户集群中的部分(而不是全部)节点池。例如,在升级控制平面后,您可以升级流量较少的节点池或运行最不重要的工作负载。确信工作负载在新版本上正常运行后,您可以升级其他节点池,直到最终升级所有节点池。
选择用于升级用户集群的工具
GKE on VMware 为您提供了多种用于升级用户集群的工具。
命令行工具
gkectl
,在管理员工作站上运行。在升级之前,您可以修改用户集群配置文件,以便为集群的控制平面和(可选)设置节点池的目标版本。您可以在gkectl
的命令行中指定此文件。Google Cloud 控制台、Google Cloud CLI 或 Terraform:您可以在任何与 GKE On-Prem API 有网络连接的计算机上运行它们。这些标准工具是在 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 个次要版本。例如,如果管理员集群的版本为 1.15,则由该管理员集群管理的用户集群的版本可以是 1.15 或 1.16。一般来说,如果 1.n
是管理员集群次要版本,则用户集群可以是 1.n
或 1.n+1
。
在管理员集群与用户集群处于同一次要版本之前,用户集群无法升级到下一个次要版本。
用户集群控制平面和节点池版本偏差
在 1.16 及更早版本中,用户集群的控制平面只能比集群中的节点池高 1 个次要版本。例如,如果用户集群的控制平面为 1.16,则集群中的节点池可以为 1.15 或 1.16。一般来说,如果 1.n
是用户集群控制平面的次要版本,则集群中的节点池可以是 1.n
或 1.n-1
。
用户集群无法升级到下一个次要版本,直到所有节点池与控制平面具有相同的次要版本。
管理员集群和用户集群升级的版本规则
升级管理员集群、用户集群控制平面和用户集群节点池的版本规则相同。您可以直接升级到同一次要版本或下一个次要版本中的任何版本。例如,您可以从 1.16.0 升级到 1.16.1,或从 1.15.1 升级到 1.16.0。补丁版本不会影响升级版本规则。
如果您要升级到不属于下一个次要版本的版本,则必须在当前版本和目标版本之间每个次要版本的一个版本升级。不支持跳过次要版本。例如,如果您要从版本 1.14.x 升级到版本 1.16.x,则无法直接升级,您必须先从 1.14.x 升级到 1.15.x,然后再升级到 1.16.x。
一般来说,管理员集群升级和用户集群升级仅支持从 1.n
升级到 1.n+1
。
补丁版本升级
我们建议您尽可能升级到最新的补丁版本,以确保您的集群具有最新的安全修复程序。补丁版本不会影响版本偏差和升级规则。对于给定的次要版本,您可以升级到任何更高的补丁版本。也就是说,只要 Y
大于 X
,您就可以将 1.16.X
版本集群升级到版本 1.16.Y
。例如,您可以从 1.15.0
升级到 1.15.1
,也可以从 1.15.1
升级到 1.15.3
。
后续步骤
查看升级最佳实践并制定集群升级计划。