了解如何更新 vSphere IaaS control plane 环境中的 主管Tanzu Kubernetes Grid 集群。vSphere IaaS control plane 支持对 主管Tanzu Kubernetes Grid 集群以及支持这些集群的基础架构执行滚动更新。

注: 无法将使用 vSphere Update Manager 的 主管 转换为 vSphere Lifecycle Manager。从 vSphere Update Manager 转换到 vSphere Lifecycle Manager。仅未启用 vSphere IaaS control plane 的集群支持此功能。

更新 vSphere IaaS control plane 环境时,会更新 主管Tanzu Kubernetes Grid 集群的 Kubernetes 版本以及底层基础架构组件和服务。因此,我们使用术语更新来描述此过程,而不是术语升级,后者是一种有限形式的更新,会递增软件版本。

主管Tanzu Kubernetes Grid 集群是使用通用 Kubernetes 发行版内核构建的。主管Tanzu Kubernetes Grid 集群的 Kubernetes 版本以不同方式提供:

  • 主管 Kubernetes 版本随 vCenter Server 版本一起提供,并且包含个性化的 Kubernetes 版本。每个 vCenter Server 版本(主要版本、更新或修补程序版本)都包含三个适用于 主管 的 Kubernetes 版本。最新的 主管 Kubernetes 版本和两个以前的版本。有关支持的 主管 Kubernetes 版本的详细信息,请参见 VMware vSphere with Tanzu 8.0 发行说明
  • Tanzu Kubernetes Grid 集群是使用 Tanzu Kubernetes 版本 (TKrs) 构建的。TKr 提供与上游一致的 Kubernetes 软件分发版,并由 VMware 签名、测试和支持。TKrs 适用于 Tanzu Kubernetes Grid 集群。TKrs 独立于 vCenter Server 发布。TKr 是操作系统(例如 Photon 或 Ubuntu)与提供 Pod 功能所需的 Tanzu Kubernetes Grid 核心组件的组合。TKr 包含 Antrea 和 Calico 等组件,您可以在 Tanzu Kubernetes Grid 集群中部署这些组件。有关详细信息,请参见 VMware Tanzu Kubernetes 版本发行说明

由于上游 Kubernetes 的更新策略,您只能按顺序更新 主管Tanzu Kubernetes Grid 集群的 Kubernetes 版本。不能跳过次要版本。例如,如果 主管 运行 1.24,则不能直接更新到 1.26。正确的更新路径为 1.24、1.25、1.26。

主管Tanzu Kubernetes Grid 集群 Kubernetes 版本的支持策略

主管 Kubernetes 版本和 TKrs 都针对 Kubernetes 版本实施 N-2 支持策略,类似于上游 Kubernetes 支持策略。这意味着,vSphere IaaS control plane主管TKr)中的每个 Kubernetes 版本从 VMware 发布之日起至少在 12 个月内受支持。

但请注意,主管Tanzu Kubernetes Grid 集群必须运行兼容的 Kubernetes 版本,请参见 TKr 版本的兼容性列表了解详细信息。

vCenter Server 的升级途径规则

由于上游 Kubernetes 要求按顺序升级,因此运行 主管vCenter Server 的升级途径取决于包含的 Kubernetes 版本。您每年大约可能需要更新 vCenter Server 3 次,并相应地更新 主管 的 Kubernetes 版本,以运行受支持的 Kubernetes 版本。

满足以下任一条件时,可以升级运行 主管vCenter Server

  • 源和目标 vCenter Server 版本中打包了至少一个重叠的 Kubernetes 版本。
  • 目标 vCenter Server 版本必须包含源 vCenter Server 版本中存在的 Kubernetes 的下一个紧邻版本。

如果这两个条件都不满足,则无法升级 vCenter Server

表 1. vCenter Server 升级场景示例
示例 版本递增 vCenter Server 版本中支持的 主管 Kubernetes 版本
示例 1

vCenter Server

1.22 1.23 1.24 可以升级

目标 vCenter Server

1.24 1.25 1.26
示例 2

vCenter Server

1.21 1.22 1.23 可以升级

目标 vCenter Server

1.24 1.25 1.26
示例 3

vCenter Server

1.20 1.21 1.22 无法升级

目标 vCenter Server

1.24 1.25 1.26
以上示例显示了何时可以升级 vCenter Server,具体取决于源和目标 vCenter Server 系统包含的 主管 Kubernetes 版本。
  1. 在第一个示例中,可以升级,因为源和目标 vCenter Server 版本都包含 主管 Kubernetes 版本 1.24。
  2. 在第二个示例中,仍可以升级,因为目标 vCenter Server 版本包含 主管 Kubernetes 版本 1.24,这是下一个紧邻版本。
  3. 最后一个示例显示了一个场景,在该场景中,由于源和目标 vCenter Server 版本既不包含重叠的 主管 Kubernetes 版本,也不包含下一个紧邻版本,因此无法升级。

了解 vSphere 命名空间 版本和 主管 版本

每个 vCenter Server 版本都附带一个新的 vSphere 命名空间 版本,而后者又包含一个新的 主管 版本和两个受支持的以前版本。例如,随 vCenter Server 8 Update 3 一起提供的 vSphere 命名空间 版本 0.1.9 包含三个 主管 版本:
  • v1.26.8+vmware.wcp.1-vsc0.1.9-23708114
  • v1.27.5+vmware.wcp.1-vsc0.1.9-23708114
  • v1.28.3+vmware.wcp.1-vsc0.1.9-23708114
有关更新 主管 版本的详细信息,请参见 更新 主管
注: 要使用 Tanzu Kubernetes Grid 3.0,必须将 主管 更新到 vSphere 命名空间 0.1.9 随附的三个受支持版本之一。

主管Tanzu Kubernetes Grid 集群的滚动更新

vSphere IaaS control plane主管Tanzu Kubernetes Grid 集群使用滚动更新模型。滚动更新模型可确保在更新过程中将集群工作负载的停机时间降至最低。滚动更新包括升级 Kubernetes 软件版本以及支持 Tanzu Kubernetes Grid 集群的基础架构和服务,例如虚拟机配置和资源、vSphere 命名空间 以及自定义资源。有关详细信息,请参见了解主管上的 TKG 集群的滚动更新模型

要使更新成功,您的环境必须满足多个兼容性要求。系统会强制要求满足预检查条件,以确保集群已准备好进行更新,并支持在集群升级不成功的情况下进行回滚。

更新 主管

您可以更新 主管 正在运行的 Kubernetes 版本(例如从 Kubernetes 1.23 更新到 Kubernetes 1.24),还可以更新支持 主管Tanzu Kubernetes Grid 集群的基础架构。您每年可能需要更新 主管 Kubernetes 版本 3 次,以与 Kubernetes 版本发布节奏保持同步。以下是 主管 Kubernetes 版本更新顺序。

  1. 根据 vCenter Server 的升级途径规则中所述的规则升级 vCenter Server
  2. 更新 主管 Kubernetes 版本和基础架构组件。请参见更新 主管

启动 主管 Kubernetes 版本更新时,将按以下操作顺序执行更新:

  1. 系统创建一个新的控制平面虚拟机,并将其加入到现有的 主管 控制平面。在此更新阶段,vSphere 清单显示四个控制平面虚拟机,因为系统会添加新的更新虚拟机,然后移除旧的过期虚拟机。
  2. 对象将从一个旧的控制平面虚拟机迁移到该新的控制平面虚拟机,并移除旧的控制平面虚拟机。此过程逐个重复执行,直到所有控制平面虚拟机都已更新。
  3. 所有控制平面虚拟机全部更新后,将以类似的滚动更新方式更新工作节点。工作节点是 ESXi 主机,每个 ESXi 主机上的每个 spherelet 进程逐个进行更新。
您可以在以下更新之间进行选择:
  • 仅更新 主管 Kubernetes 版本。
  • 更新所有内容,包括 VMware 和 Kubernetes 版本。

更新 Tanzu Kubernetes Grid 集群

Tanzu Kubernetes Grid 集群的更新取决于 主管 上运行的 Tanzu Kubernetes Grid 服务版本,以及集群正在运行的 TKr 版本。有关详细信息,请参见安装和升级 TKG 服务更新 TKG Service 集群

更新所有 vSphere IaaS control plane 组件

可以使用更新所有内容工作流更新所有 vSphere IaaS control plane 组件。更新主要版本(例如从 NSX 3.X 更新到 4 以及从 vSphere 7.X 更新到 8)时,需要使用此类型的更新。

注: 升级到 vCenter Server 8.0 之前,请确保所有 主管 的 Kubernetes 版本至少为 1.22(最好是支持的最新版本),并且 Tanzu Kubernetes 版本 集群的 Tanzu Kubernetes Grid 版本为 1.22(最好是支持的最新版本)。
此更新工作流并不频繁执行,具体取决于新 VMware 产品版本发布的时间。以下是更新所有内容的顺序:
  1. 请查看 vCenter ServerNSX 的 VMware 互操作性列表(网址为 https://interopmatrix.vmware.com/Interoperability)以确定兼容性。vSphere IaaS control plane 功能由随 vCenter Server 提供的工作负载控制平面 (WCP) 软件提供。
  2. 升级 NSX(如果兼容)。
  3. 升级 vCenter Server
  4. 升级 vSphere Distributed Switch。
  5. 升级 ESXi 主机。
  6. 检查任何已置备的 Tanzu Kubernetes Grid 集群与目标 主管 版本的兼容性。
  7. 更新 vSphere 命名空间(包括 主管 Kubernetes 版本)。
  8. 更新 Tanzu Kubernetes Grid 集群。

下图介绍了 vSphere IaaS control plane 更新的常规工作流

此图显示了 vSphere with Tanzu 更新的步骤。