5.4. 集群更新的最佳实践


OpenShift Container Platform 提供了可靠的更新体验,可最大程度降低更新期间的工作负载中断。除非集群在更新请求时处于可升级状态,否则更新将不会启动。

这个设计在启动更新前强制实施一些关键条件,您也可以采取其他多个措施来提高成功集群更新的机会。

5.4.2. 解决集群中的所有关键警报

关键警报必须尽快解决,但在启动集群更新前,务必要解决这些警报并解决所有问题。在开始更新前无法解决关键警报可能会导致集群出现有问题的条件。

在 web 控制台的 Administrator 视角中,进入到 Observe Alerting 来查找关键警报。

5.4.3. 确保集群处于 Upgradable 状态

当一个或多个 Operator 在一个小时内没有报告其 Upgradeable 条件为 True 时,在集群中会触发 ClusterNotUpgradeable 警告警报。在大多数情况下,此警报并不会阻止补丁更新,但您无法执行次版本更新,直到您解决了这个警报,所有 Operator 都报告 UpgradeableTrue

如需有关 Upgradeable 条件的更多信息,请参阅额外资源部分中的 "了解集群 Operator 条件类型"。

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

集群不应在没有备用节点容量的情况下运行,特别是在启动集群更新时。没有运行且可用的节点可能会限制集群在对集群工作负载造成最小影响的情况下执行更新的能力。

根据集群的 maxUnavailable spec 配置的值,如果是一个不可用节点,集群可能无法对该节点应用机器配置更改。另外,如果计算节点没有足够的备用容量,当第一个节点进行更新时,工作负载可能无法临时转移到另一个节点上。

确保每个 worker 池中有足够的可用节点,以及计算节点上有足够的备用容量,以提高节点更新成功的机会。

警告

对于 OpenShift Container Platform 中的所有机器配置池,maxUnavailable 的默认设置是 1。建议您不要更改这个值,且一次只更新一个 control plane 节点。对于 control plane 池,请不要将这个值改为 3

5.4.5. 确保正确配置了集群的 PodDisruptionBudget

您可以使用 PodDisruptionBudget 对象定义任意给定时间必须可用的 pod 副本的最小数量或百分比。此配置可防止工作负载在集群进行维护操作(例如进行集群更新)时出现中断。

但是,可以为给定的拓扑配置 PodDisruptionBudget,以防止节点在集群更新过程中排空和更新。

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

  • 对于高可用性工作负载,请确保有可以临时离线的副本,而不会被 PodDisruptionBudget 禁止。
  • 对于不是高用的工作负载,请确保它们不受 PodDisruptionBudget 保护,或者有一些替代机制来排空这些工作负载,如定期重启或有保证的最终终止。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.