×

您必须确保在 vSphere 中运行的节点运行在 OpenShift Container Platform 支持的硬件版本上。目前,集群中 vSphere 虚拟机支持硬件版本 15 或更高版本。

您可以立即更新虚拟硬件或在 vCenter 中安排更新。

  • OpenShift Container Platform 4.17 版本需要 VMware 虚拟硬件版本 15 或更高版本。

  • 在将 OpenShift 4.12 升级到 OpenShift 4.13 之前,必须将 vSphere 更新到 **v7.0.2 或更高版本**;否则,OpenShift 4.12 集群将被标记为 **无法升级**。

更新 vSphere 上的虚拟硬件

要更新 VMware vSphere 上的虚拟机 (VM) 的硬件,请分别更新虚拟机以降低集群停机时间的风险。

从 OpenShift Container Platform 4.13 开始,不再支持 VMware 虚拟硬件版本 13。您需要更新到 VMware 15 或更高版本才能支持该功能。

更新 vSphere 上控制平面节点的虚拟硬件

为了降低停机时间的风险,建议串行更新控制平面节点。这可确保 Kubernetes API 保持可用,并且 etcd 保持仲裁。

先决条件
  • 您拥有集群管理员权限,可以在托管 OpenShift Container Platform 集群的 vCenter 实例中执行所需的权限。

  • 您的 vSphere ESXi 主机版本为 7.0U2 或更高版本。

步骤
  1. 列出集群中的控制平面节点。

    $ oc get nodes -l node-role.kubernetes.io/master
    示例输出
    NAME                    STATUS   ROLES    AGE   VERSION
    control-plane-node-0    Ready    master   75m   v1.30.3
    control-plane-node-1    Ready    master   75m   v1.30.3
    control-plane-node-2    Ready    master   75m   v1.30.3

    记下您的控制平面节点的名称。

  2. 将控制平面节点标记为不可调度。

    $ oc adm cordon <control_plane_node>
  3. 关闭与控制平面节点关联的虚拟机 (VM)。在 vSphere 客户端中,右键单击 VM 并选择**电源**→**关闭客户操作系统**。请勿使用**电源关闭**关闭虚拟机,因为这可能无法安全地关闭。

  4. 在 vSphere 客户端中更新 VM。有关更多信息,请参阅 VMware 文档中的手动升级虚拟机的兼容性

  5. 启动与控制平面节点关联的 VM。在 vSphere 客户端中,右键单击 VM 并选择**电源开启**。

  6. 等待节点报告为就绪

    $ oc wait --for=condition=Ready node/<control_plane_node>
  7. 再次将控制平面节点标记为可调度

    $ oc adm uncordon <control_plane_node>
  8. 对集群中的每个控制平面节点重复此步骤。

更新 vSphere 上计算节点的虚拟硬件

为了降低停机风险,建议按顺序更新计算节点。

如果工作负载能够容忍多个节点处于未就绪状态,则可以并行更新多个计算节点。确保所需计算节点可用是管理员的责任。

先决条件
  • 您拥有集群管理员权限,可以在托管 OpenShift Container Platform 集群的 vCenter 实例中执行所需的权限。

  • 您的 vSphere ESXi 主机版本为 7.0U2 或更高版本。

步骤
  1. 列出集群中的计算节点。

    $ oc get nodes -l node-role.kubernetes.io/worker
    示例输出
    NAME              STATUS   ROLES    AGE   VERSION
    compute-node-0    Ready    worker   30m   v1.30.3
    compute-node-1    Ready    worker   30m   v1.30.3
    compute-node-2    Ready    worker   30m   v1.30.3

    记下您的计算节点的名称。

  2. 将计算节点标记为不可调度

    $ oc adm cordon <compute_node>
  3. 从计算节点中驱逐 Pod。有多种方法可以实现此目的。例如,您可以驱逐节点上所有或选定的 Pod。

    $ oc adm drain <compute_node> [--pod-selector=<pod_selector>]

    请参阅“了解如何在节点上驱逐 Pod”部分,了解从节点驱逐 Pod 的其他选项。

  4. 关闭与计算节点关联的虚拟机 (VM)。在 vSphere 客户端中,右键单击 VM 并选择**电源**→**关闭客户操作系统**。请勿使用**电源关闭**关闭虚拟机,因为这可能无法安全地关闭。

  5. 在 vSphere 客户端中更新 VM。有关更多信息,请参阅 VMware 文档中的手动升级虚拟机的兼容性

  6. 启动与计算节点关联的虚拟机 (VM)。在 vSphere 客户端中,右键单击 VM 并选择**电源开启**。

  7. 等待节点报告为就绪

    $ oc wait --for=condition=Ready node/<compute_node>
  8. 再次将计算节点标记为可调度

    $ oc adm uncordon <compute_node>
  9. 对集群中的每个计算节点重复此步骤。

更新 vSphere 上模板的虚拟硬件

先决条件
  • 您拥有集群管理员权限,可以在托管 OpenShift Container Platform 集群的 vCenter 实例中执行所需的权限。

  • 您的 vSphere ESXi 主机版本为 7.0U2 或更高版本。

步骤
  1. 如果 RHCOS 模板配置为 vSphere 模板,请在执行下一步之前,请参阅 VMware 文档中的将模板转换为虚拟机

    从模板转换后,请勿启动虚拟机。

  2. 在 VMware vSphere 客户端中更新虚拟机 (VM)。完成手动升级虚拟机的兼容性(VMware vSphere 文档)中概述的步骤。

  3. 在 vSphere 客户端中将 VM 转换为模板,方法是右键单击 VM,然后选择**模板**→**转换为模板**。

    将 VM 转换为模板的步骤可能会在将来的 vSphere 文档版本中发生更改。

计划 vSphere 上虚拟硬件的更新

可以计划在虚拟机启动或重新引导时执行虚拟硬件更新。您可以按照 VMware 文档中的计划虚拟机的兼容性升级在 vCenter 中专门计划虚拟硬件更新。

在执行 OpenShift Container Platform 更新之前计划更新时,虚拟硬件更新将在 OpenShift Container Platform 更新过程中节点重新引导时发生。