升级
了解 Red Hat OpenShift Service on AWS 的升级选项
摘要
第 1 章 升级 Red Hat OpenShift Service on AWS 集群 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift Service on AWS 中,升级使用更新的软件置备一个新组件,并使用它来替换具有过时软件的现有组件。
1.1. Red Hat OpenShift Service on AWS 集群的升级选项 复制链接链接已复制到粘贴板!
您可以通过控制集群升级集群的哪些部分来控制升级到工作负载的影响,例如:
- 仅升级托管的 control plane
- 这会启动对托管 control plane 的升级。它不会影响您的 worker 节点。
- 升级机器池中的节点
- Red Hat OpenShift Service on AWS 机器池升级旨在在升级过程中完全替换机器池中的每个节点。与执行原位升级相比,这提供了额外的安全性和稳定性优势。升级机器池中的节点将启动指定机器池中的节点的滚动替换,并临时影响该机器池上的 worker 节点。您还可以同时升级多个机器池。
您无法与任何机器池升级同时升级托管的 control plane。您需要首先升级托管的 control plane,然后升级机器池。
为了保持集群中节点间的兼容性,机器池中的节点无法使用比托管的 control plane 的新版本。这意味着,在任何机器池升级到同一版本前,托管 control plane 应该始终升级到一个给定版本。
您可以通过编辑每个机器池的 --max-surge 和 --max-unavailable 值,进一步控制机器池升级所需的时间。这些选项控制机器池中可以同时升级的节点数量,以及升级是否置备超额节点,或者使一些现有节点不可用,例如:
-
要优先选择高工作负载可用性,您可以为
--max-surge设置一个较高的值,并将--max-unavailable设置为0来置备额外的节点而不是使现有节点不可用。 -
要优先考虑较低的基础架构成本,您可以通过将更高的值设置为
--max-unavailable,并将 set-max-surge 设置为0来避免一些现有节点不可用,并避免置备过量节点。 -
要通过同时升级多个节点来优先升级速度,您可以为
--max-surge和--max-unavailable配置一个中等值来置备额外的节点,并使一些现有的节点不可用。
有关这些参数及其用法的更多信息,请参阅 rosa edit machinepool 的 ROSA CLI 参考。
1.2. 生命周期策略和计划 复制链接链接已复制到粘贴板!
生命周期页中包括了发行定义、支持和升级要求、安装策略信息和生命周期日期。
手动启动升级或自动调度升级。Red Hat Site Reliability 工程师 (SRE) 监控升级进度并解决遇到的问题。
如果您的 control plane 当前没有启用多架构,升级过程将首先将集群迁移到多架构镜像,然后应用版本升级。多架构集群能够运行基于 x86 和基于 Arm 的工作负载。在 2024 年 7 月 25 日之后创建的集群会默认启用多架构。
1.3. 使用 ROSA CLI 升级托管的 control plane 复制链接链接已复制到粘贴板!
您可以使用 ROSA CLI 手动升级 Red Hat OpenShift Service on AWS 集群的托管 control plane。如果有新版本可用(可立即或指定的时间)为升级调度 control plane。
您的 control plane 只支持两个次版本 Y-stream 版本中的机器池。例如,使用版本 4.15.z 的 control plane 的 Red Hat OpenShift Service on AWS 集群支持带有版本 4.13.z 和 4.14.z 的机器池,但 control plane 不支持使用版本 4.12.z 的机器池。
先决条件
- 已安装并配置了 ROSA CLI 的最新版本。
- 与托管的 control plane 升级相同,没有机器池升级正在进行或调度。
流程
运行以下命令验证集群的当前版本:
$ rosa describe cluster --cluster=<cluster_name_or_id>将
<cluster_name_or_id> 替换为集群名称或集群 ID。运行以下命令,列出您可以将 control plane 升级到的版本:
$ rosa list upgrade --cluster=<cluster_name_or_id>该命令返回一个可用更新列表,包括推荐的版本。
输出示例
VERSION NOTES 4.14.8 recommended 4.14.7 4.14.6运行以下命令升级集群的托管 control plane:
$ rosa upgrade cluster -c <cluster_name_or_id> [--schedule-date=<yyyy-mm-dd> --schedule-time=<HH:mm>] --version <version_number>要调度立即升级到指定版本,请运行以下命令:
$ rosa upgrade cluster -c <cluster_name_or_id> --version <version_number>您的托管的 control plane 会被调度立即升级。
要计划在以后的版本中升级到指定版本的升级,请运行以下命令:
$ rosa upgrade cluster -c <cluster_name_or_id> --schedule-date=<yyyy-mm-dd> --schedule-time=<HH:mm> --version=<version_number>您的托管 control plane 在协调通用时间(UTC)中指定的时间进行升级。
故障排除
- 有时,调度的升级不会启动。如需更多信息,请参阅升级维护已取消。
1.4. 使用 ROSA CLI 升级机器池 复制链接链接已复制到粘贴板!
您可以使用 ROSA CLI 在带有 HCP 集群的 ROSA 中手动升级一个或多个机器池。如果较新的版本可用,则此方法为升级调度指定的机器池,无论是立即或在指定的将来可用。
您的 control plane 只支持两个次版本 Y-stream 版本中的机器池。例如,使用版本 4.15.z 的带有 control plane 的 ROSA 支持带有版本 4.13.z 和 4.14.z 的机器池,但 control plane 不支持使用 4.12.z 版本的机器池。
先决条件
- 已安装并配置了 ROSA CLI 的最新版本。
- 托管 control plane 的升级没有在集群中进行,或计划与机器池升级同时发生。
机器池配置,如节点排空超时、max-unavailable 和 max-surge 可能会影响升级的时间和成功。
流程
运行以下命令验证集群的当前版本:
$ rosa describe cluster --cluster=<cluster_name_or_id>将
<cluster_name_or_id> 替换为集群名称或集群 ID。输出示例
OpenShift Version: 4.14.0运行以下命令,列出您可以将机器池升级到的版本:
$ rosa list upgrade --cluster <cluster-name> --machinepool <machinepool_name>该命令返回一个可用更新列表,包括推荐的版本。
输出示例
VERSION NOTES 4.14.5 recommended 4.14.4 4.14.3重要不要将机器池升级到比 control plane 高的版本。如果要移至更高的版本,请首先将 control plane 升级到那个版本。
运行以下命令,验证您要升级的机器池的升级行为:
$ rosa describe machinepool --cluster=<cluster_name_or_id> <machinepool_name>输出示例
Replicas: 5 Node drain grace period: 30 minutes Management upgrade: - Type: Replace - Max surge: 20% - Max unavailable: 20%在示例中,这些设置允许机器池置备一个额外的节点(
max-surge20%replicas),并在升级过程中有最多一个不可用节点 (max-unavailable20%replicas)。因此,这个机器池可以一次升级两个节点,方法是在超过副本数的情况下置备一个新节点,并使一个节点不可用并替换它。如果需要保护 pod 中断预算的工作负载,节点升级可能会延迟最多 30 分钟(node-drain-grace-period为 30 分钟)。运行以下命令来升级机器池:
$ rosa upgrade machinepool -c <cluster_name> <machinepool_name> [--schedule-date=<yyyy-mm-dd> --schedule-time=<HH:mm>] --version <version_number>您可以为您要升级的每个机器池运行这个命令来同时升级多个机器池。
要调度机器池的立即升级,请运行以下命令:
$ rosa upgrade machinepool -c <cluster_name> <machinepool_name> --version <version_number>机器池被调度立即升级,它会启动指定机器池中所有节点的滚动替换。
要将升级调度到以后启动,请运行以下命令:
$ rosa upgrade machinepool -c <cluster_name> <machinepool_name> --schedule-date=<yyyy-mm-dd> --schedule-time=<HH:mm> --version <version_number>机器池计划在协调通用时间(UTC)中指定的时间和日期开始升级。这将启动指定机器池中所有节点的滚动替换,从指定时间开始。