×

RHEL 9.2 微架构需求变更

OpenShift Container Platform 现在基于 RHEL 9.2 主机操作系统。微架构要求现已提高到 x86_64-v2、Power9 和 Z14。请参阅RHEL 微架构要求文档。您可以按照此KCS 文章中概述的步骤,在更新前验证兼容性。

如果没有正确的微架构要求,更新过程将失败。请确保您为每个架构购买了相应的订阅。有关更多信息,请参阅开始使用 Red Hat Enterprise Linux - 其他架构

Kubernetes API 删除

OpenShift Container Platform 4.17 中没有 Kubernetes API 删除。

评估条件更新的风险

条件更新是指可用的但由于适用于您的集群的已知风险而未推荐的更新目标。集群版本操作符 (CVO) 定期查询 OpenShift 更新服务 (OSUS) 以获取有关更新建议的最新数据,并且某些潜在的更新目标可能存在相关风险。

CVO 会评估条件风险,如果这些风险不适用于集群,则该目标版本将作为集群的推荐更新路径提供。如果确定风险适用,或者由于某种原因 CVO 无法评估风险,则该更新目标将作为条件更新提供给集群。

当您在尝试更新到目标版本时遇到条件更新时,您必须评估将集群更新到该版本的风险。通常,如果您没有特别需要更新到该目标版本,最好等待 Red Hat 提供推荐的更新路径。

但是,如果您有充分的理由更新到该版本,例如,如果您需要修复重要的 CVE,则修复 CVE 的好处可能超过更新对您的集群造成问题的风险。您可以完成以下任务来确定您是否同意 Red Hat 对更新风险的评估

  • 在非生产环境中进行广泛测试,直到您有信心在生产环境中完成更新。

  • 按照条件更新说明中提供的链接,调查错误,并确定它是否可能导致您的集群出现问题。如果您需要帮助理解风险,请联系 Red Hat 支持。

其他资源

集群更新前的 etcd 备份

etcd 备份记录了集群及其所有资源对象的状态。在灾难场景下,如果无法恢复当前故障状态的集群,可以使用备份尝试恢复集群状态。

在更新上下文中,如果更新引入了灾难性条件,而无需回滚到之前的集群版本就无法修复,则可以尝试对集群进行 etcd 恢复。etcd 恢复可能会破坏正在运行的集群并使其不稳定,仅在万不得已时才使用。

由于其后果严重,etcd 恢复并非旨在用作回滚解决方案。不支持将集群回滚到以前的版本。如果更新未能完成,请联系 Red Hat 支持。

有几个因素会影响 etcd 恢复的可行性。有关更多信息,请参阅“备份 etcd 数据”和“恢复到以前的集群状态”。

集群更新的最佳实践

OpenShift Container Platform 提供了强大的更新体验,可在更新期间最大限度地减少工作负载中断。除非集群在发出更新请求时处于可升级状态,否则更新不会开始。

此设计在启动更新之前强制执行一些关键条件,但您可以采取许多措施来增加集群更新成功的几率。

OpenShift 更新服务 (OSUS) 根据集群特征(例如集群订阅的通道)提供更新建议。集群版本操作员将这些建议保存为推荐更新或条件更新。虽然可以尝试更新到 OSUS 未推荐的版本,但遵循推荐的更新路径可以保护用户免受集群上已知问题或意外后果的影响。

仅选择 OSUS 推荐的更新目标,以确保更新成功。

解决集群上的所有关键警报

必须尽快解决关键警报,但在启动集群更新之前解决这些警报并解决任何问题尤其重要。在开始更新之前未能解决关键警报可能会导致集群出现问题。

在 Web 控制台的**管理员**视角中,导航到**观察**→**警报**以查找关键警报。

确保集群处于可升级状态

当一个或多个操作员超过一小时未将其Upgradeable条件报告为True时,集群中会触发ClusterNotUpgradeable警告警报。在大多数情况下,此警报不会阻止补丁更新,但在解决此警报并所有操作员都将Upgradeable报告为True之前,您无法执行次要版本更新。

有关Upgradeable条件的更多信息,请参阅附加资源部分中的“了解集群操作员条件类型”。

删除 SDN 支持

OpenShift SDN 网络插件在 4.15 和 4.16 版本中已弃用。在此版本中,不再支持 SDN 网络插件,并且文档中的内容已被删除。

如果您的 OpenShift Container Platform 集群仍在使用 OpenShift SDN CNI,请参阅从 OpenShift SDN 网络插件迁移

如果使用 OpenShift SDN 网络插件,则无法将集群更新到 OpenShift Container Platform 4.17。必须先迁移到 OVN-Kubernetes 插件,然后才能升级到 OpenShift Container Platform 4.17。

确保有足够的备用节点可用

集群不应以几乎没有或没有备用节点容量的情况下运行,尤其是在启动集群更新时。未运行且不可用的节点可能会限制集群以最小程度中断集群工作负载来执行更新的能力。

根据集群maxUnavailable规范的配置值,如果存在不可用的节点,集群可能无法将机器配置更改应用于节点。此外,如果计算节点没有足够的备用容量,则在第一个节点离线进行更新时,工作负载可能无法暂时转移到另一个节点。

确保在每个工作程序池中都有足够的可用节点,以及计算节点上有足够的备用容量,以增加节点更新成功的几率。

OpenShift Container Platform 中所有机器配置池的maxUnavailable默认设置为1。建议不要更改此值,并一次更新一个控制平面节点。不要将此值更改为控制平面池的3

确保集群的 PodDisruptionBudget 配置正确

您可以使用PodDisruptionBudget对象定义在任何给定时间必须可用的 pod 副本的最小数量或百分比。此配置可保护工作负载免受维护任务(如集群更新)期间的中断。

但是,可以为给定的拓扑配置PodDisruptionBudget,从而阻止在集群更新期间排出和更新节点。

规划集群更新时,请检查PodDisruptionBudget对象的配置,了解以下因素:

  • 对于高可用性工作负载,请确保有一些副本可以暂时离线,而不会被PodDisruptionBudget禁止。

  • 对于非高可用性工作负载,请确保它们不受PodDisruptionBudget保护,或者有一些替代机制最终可以排出这些工作负载,例如定期重启或保证最终终止。