本页面简要介绍了适用于 VMware 集群的 Google Distributed Cloud(纯软件)的升级流程和版本偏差信息。这些信息应该有助于您规划在多集群环境中升级集群的顺序。如需了解更详细的规划信息(包括可帮助您规划升级的核对清单),请参阅升级最佳实践。
本页面适用于管理底层技术基础架构生命周期的 IT 管理员和运维人员。如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE Enterprise 用户角色和任务。
版本规则
升级规则取决于集群次要版本。
对于 1.30 及更低版本,用户集群次要版本必须大于或等于管理员集群次要版本。补丁版本无关紧要。例如,如果用户集群的版本为 1.30.1,则管理员集群可以升级到更高补丁版本(例如 1.30.3)。
对于 1.31 及更高版本,管理员集群版本(包括补丁版本)必须大于或等于用户集群版本。例如,如果管理员集群的版本为 1.31.1,则用户集群可升级到的最高版本为 1.31.1。
如果您想将集群升级到 1.31 版,则必须先将所有集群升级到 1.30 版。所有集群都升级到 1.30 版后,您可以将管理员集群升级到 1.31 版。之后,您可以将用户集群升级到与管理员集群相同的 1.31 补丁版本。
gkectl
的版本规则
您可以用于升级的 gkectl
版本取决于目标集群版本(即您要升级到的集群版本)。通常,您使用的 gkectl
版本应与集群目标版本相同。在升级期间,系统会强制执行以下规则:
gkectl
版本的次要版本不能低于目标集群的次要版本。例如,如果您要将 1.29 集群升级到 1.30,则不能使用gkectl
1.29,因为该版本低于目标集群版本。补丁版本无关紧要。例如,您可以使用gkectl
1.29.0-gke.1456 版升级到更高补丁版本,例如 1.29.1000-gke.94。gkectl
版本最多只能比当前集群版本高两个次要版本。例如,如果您要将 1.28 集群升级到 1.29,则gkectl
版本可以是 1.29 或 1.30。但您不能使用gkectl
1.31 版,因为它比集群版本高三个次要版本。
如果需要,请参阅下载 gkectl
以获取受支持的 gkectl
版本。
如需了解管理员集群和用户集群之间的版本偏差,请参阅本文档中的版本偏差部分。
升级序列
升级管理员集群和用户集群的序列取决于您要升级到的集群版本(称为目标版本):
如果目标版本为 1.31 或更高版本,则必须先升级管理员集群,然后再升级由管理员集群管理的用户集群。以下步骤介绍了升级序列。
升级管理员工作站。 即使您计划使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 升级用户集群,我们也建议您这样做。
升级管理员集群。
逐个升级用户集群。
您可以选择将用户集群的控制平面与用户集群中的节点池分开升级。如需了解详情,请参阅升级节点池。
不适用于高级集群。
升级节点池时,您可以选择跳过某个次要版本。如需了解详情,请参阅升级节点池时跳过某个版本。
不适用于高级集群。
在用户集群中所有节点池的版本与用户集群控制平面的版本相同后,用户集群就完全升级了。
如果目标版本为 1.30 或更低版本,则必须先升级所有用户集群,然后再升级管理这些集群的管理员集群。
升级管理员工作站。 即使您计划使用 Google Cloud 控制台、Google Cloud CLI 或 Terraform 升级用户集群,我们也建议您这样做。
逐个升级用户集群。
在 1.14 及更高版本中,您可以选择将用户集群的控制平面与用户集群中的节点池分开升级。
在 1.16 及更高版本中,您可以在升级节点池时选择跳过某个次要版本。如需了解详情,请参阅升级节点池时跳过某个版本。
在用户集群中所有节点池的版本与用户集群控制平面的版本相同后,用户集群就完全升级了。
管理员集群的次要版本不得高于其管理的任何用户集群的次要版本。如果您的任何用户集群的次要版本与管理员集群的次要版本相同,则您无法升级管理员集群。
当所有用户集群至少比管理员集群高一个次要版本时,您可以选择升级管理员集群。
版本偏差和升级版本规则在 1.28 及更高版本中发生了变化。如需了解详情,请参阅本文档中的版本偏差部分。
管理员集群升级
如果目标版本为 1.31 或更高版本,则必须先升级管理员集群,然后再升级用户集群。
您可以使用 gkectl
或 gcloud CLI 升级管理员集群。
如果目标版本为 1.30 或更低版本,请先升级所有用户集群,然后再升级管理员集群。当所有用户集群上的控制平面和节点池至少比管理员集群高一个次要版本时,您可以升级管理员集群。
只有 gkectl
支持升级管理员集群。GKE On-Prem API 客户端不支持升级管理员集群。
用户集群升级
升级用户集群时,您可以选择升级整个用户集群(即,您可以升级集群中的控制平面和所有节点池),也可以升级用户集群的控制平面,并将节点池保留为当前版本。您采用哪种方法取决于多种因素,例如:
- 集群所在的环境(生产环境或非生产环境)。
- 维护窗口的长度。
- 用户集群的版本。
例如,在开发环境中,您可能希望保持流程简单明了,同时升级用户集群的控制平面和所有节点池。但在维护窗口较短的生产环境中,您可能希望仅升级控制平面,因为这样可以节省时间,并且在高可用性 (HA) 控制平面中,控制平面升级不应中断用户工作负载。如果控制平面为 1.28 或更高版本,您可以在升级节点池时跳过某个次要版本。
不适用于高级集群。
选择性升级节点池
在某些情况下,您可能需要升级用户集群中的部分(而不是全部)节点池。例如,升级控制平面后,您可以升级流量较少或运行最不重要的工作负载的节点池。确信工作负载在新版本上正常运行后,您可以升级其他节点池,直到最终升级所有节点池。 如需了解详情,请参阅升级节点池。
升级节点池时跳过某个次要版本
如果您的集群为 1.16 或更高版本,则可以在升级节点池时跳过某个次要版本。执行跳过版本升级可将依序升级节点池两个版本所需的时间缩短一半。此外,跳过版本升级还可以让您在升级之间留出更多时间,以便继续使用受支持的版本。减少升级次数有助于减少工作负载中断和验证时间。如需了解详情,请参阅升级节点池时跳过某个版本。
选择用于升级用户集群的工具
Google Distributed Cloud 提供了多种用于升级用户集群的工具供您选择。
命令行工具
gkectl
,可以在管理员工作站上运行。在升级之前,您需要修改用户集群配置文件,为集群的控制平面设置目标版本,并可选择为节点池设置目标版本。您可以在gkectl
的命令行中指定此文件。如果您已启用高级集群,则必须使用
gkectl
进行升级。高级集群不支持 GKE On-Prem API 客户端。Google Cloud 控制台、Google Cloud CLI 或 Terraform,您可以从与 GKE On-Prem API 建立网络连接的任何计算机运行。这些标准工具是 GKE On-Prem API 的客户端,该 API 在 Google Cloud 基础设施上运行。
只有在您使用 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
支持此应用场景。
版本偏差
版本偏差是管理员集群与其管理的用户集群之间的次要版本差异。在以下部分中,“用户集群版本”是指控制平面和节点池的整体版本。
此外,版本偏差是用户集群的控制平面与用户集群中的节点池之间的次要版本差异。
在多集群环境中,了解支持的版本偏差和升级版本规则可能会帮助您规划升级集群的顺序。
管理员集群和用户集群版本偏差
管理员集群可以管理不同版本的用户集群。此功能可让您根据组织的需要计划一组用户集群的升级。
在 1.31 及更高版本中,管理员集群最多可以比用户集群高 2 个次要版本。例如,如果管理员集群的版本为 1.31,则管理员集群管理的用户集群的版本可以为 1.29、1.30 或 1.31。
一般而言,如果 1.n
是管理员集群的次要版本,那么用户集群可以是 1.n-2
、1.n-1
或 1.n
。在所有用户集群都是 1.n
或 1.n-1
之前,管理员集群无法升级到下一个次要版本。
版本偏差与 1.28 版中的版本偏差相同。在 1.29 版中,此功能已过渡到正式版阶段。
在 1.29 及更高版本中,用户集群最多可以比管理员集群高 2 个次要版本。例如,如果管理员集群的版本为 1.29,则管理员集群管理的用户集群的版本可以为 1.29、1.30 或 1.31。
一般而言,如果 1.n
是管理员集群的次要版本,那么用户集群可以是 1.n
、1.n+1
或 1.n+2
。在管理员集群升级至少一个次要版本之前,1.n+2
版的用户集群无法升级到下一个次要版本。
在 1.28 版中,用户集群最多可以比管理员集群高 2 个次要版本。例如,如果管理员集群的版本为 1.15,则管理员集群管理的用户集群的版本可以为 1.15、1.16 或 1.28。在管理员集群升级到至少 1.16 之前,1.28 版的用户集群无法升级到 1.29 版。
在 1.16 及更低版本中,用户集群只能比管理员集群高 1 个次要版本。例如,如果管理员集群的版本为 1.15,则管理员集群管理的用户集群的版本可以为 1.15 或 1.16。
一般而言,如果 1.n
是管理员集群的次要版本,那么用户集群可以是 1.n
或 1.n+1
。在管理员集群与用户集群处于同一次要版本之前,用户集群无法升级到下一个次要版本。
用户集群控制平面和节点池版本偏差
版本偏差与 1.28 版中的版本偏差相同。在 1.29 版中,此功能已过渡到正式版阶段。
在 1.29 及更高版本中,用户集群的控制平面最多可以比集群中的节点池高 2 个次要版本。例如,如果用户集群的控制平面的版本为 1.31,则集群中节点池的版本可以为 1.29、1.30 或 1.31。
一般而言,如果 1.n
是用户集群控制平面的次要版本,那么集群中的节点池可以是 1.n
、1.n-1
或 1.n-2
。在所有节点池都达到 1.n
或 1.n-1
之前,用户集群控制平面无法升级到下一个次要版本。
在 1.28 版中,用户集群的控制平面最多可以比集群中的节点池高 2 个次要版本。例如,如果用户集群的控制平面的版本为 1.28,则集群中的节点池的版本可以为 1.15、1.16 或 1.28。在所有节点池都达到 1.28
或 1.16
之前,用户集群控制平面无法升级到 1.29。
在 1.16 及更低版本中,用户集群的控制平面只能比集群中的节点池高 1 个次要版本。例如,如果用户集群的控制平面的版本为 1.16,则集群中的节点池的版本可以为 1.15 或 1.16。
一般而言,如果 1.n
是用户集群控制平面的次要版本,则集群中的节点池可以是 1.n
或 1.n-1
。在所有节点池都与控制平面处于同一次要版本之前,用户集群无法升级到下一个次要版本。
管理员集群和用户集群控制平面升级的版本规则
管理员集群和用户集群控制平面升级的版本规则相同。您可以直接升级到同一或下一次要发布版本中的任何版本。例如,您可以从 1.31.0 升级到 1.31.1,或从 1.30.1 升级到 1.31.0。补丁版本不会影响升级版本规则。
如果您要升级到非下一个次要版本,则必须在当前版本和目标版本之间升级每个次要版本的一个版本。不支持跳过次要版本。例如,如果您要从 1.29.x 版升级到 1.31.x 版,则无法直接升级。您必须先从 1.29.x 升级到 1.30.x,然后再升级到 1.31.x。
一般而言,管理集群升级和用户集群控制平面升级仅支持从 1.n
升级到 1.n+1
。
节点池升级的版本规则
在 1.28 及更高版本中,升级用户集群中的节点池时,您可以跳过一个次要版本。例如,如果用户集群控制平面的版本为 1.31,而节点池的版本为 1.29,则您可以跳过 1.30 并直接将节点池升级到 1.31。补丁版本不会影响升级版本规则。
一般而言,如果用户集群控制平面的版本为 1.n
,则您可以将版本为 1.n-2
的节点池直接升级到 1.n
。与进行两次节点池升级(从 1.n-2
升级到 1.n-1
,然后再升级到 1.n
)相比,升级节点池时跳过一个次要版本可能会缩短升级时间。这也是您可能希望将用户集群的控制平面与用户集群上运行的节点池分开升级的另一个原因。
不适用于高级集群。
补丁版本升级
我们建议您尽可能升级到最新的补丁版本,以确保您的集群拥有最新的安全修复程序。补丁版本不会影响版本偏差和升级规则。对于给定的次要版本,您可以升级到任何更高的补丁版本。也就是说,只要 Y
大于 X
,您就可以将 1.31.X
版本集群升级到版本 1.31.Y
。例如,您可以从 1.30.0
升级到 1.30.1
,也可以从 1.30.1
升级到 1.30.3
。
后续步骤
查看升级最佳实践,并制定升级集群的计划。