×

使用以下方法之一升级ROSA(经典架构)集群

  • 通过ROSA CLI (rosa) 手动进行 - 启动一次性立即升级或安排一次性未来升级。

  • 通过OpenShift集群管理器UI手动进行 - 启动一次性立即升级或安排一次性未来升级;或安排升级窗口,以便在新的z版本可用时自动进行定期升级。

生命周期策略和规划

要规划升级,请查看AWS上的Red Hat OpenShift服务更新生命周期。生命周期页面包含版本定义、支持和升级要求、安装策略信息和生命周期日期。

您可以使用更新渠道来决定将集群更新到哪个Red Hat OpenShift Container Platform次要版本。AWS上的Red Hat OpenShift服务仅支持通过stable通道进行更新。要了解有关OpenShift更新渠道和版本的更多信息,请参阅了解更新渠道和版本

升级ROSA Classic集群

必须使用ROSA CLI (rosa) 或OpenShift集群管理器控制台升级ROSA(经典架构)集群。

集群升级的实际开始时间将在升级计划时间的1小时内。此外,升级持续时间可能会因您的工作负载配置而异。

当使用AWS安全令牌服务(STS)的ROSA(经典架构)集群升级时,ROSA CLI会验证所选集群的账户和Operator角色策略是否与目标升级版本兼容。如果策略兼容,CLI将自动升级集群。如果策略与所选升级版本不兼容,CLI将在升级集群之前自动升级IAM策略。安排升级时,您需要进行管理确认,以确认您已查看升级涉及的更改(如果需要)。

ROSA(经典架构)集群升级的工作原理

升级是手动启动(一次性)或自动安排(定期)的。Red Hat站点可靠性工程师 (SRE) 会监控升级进度,并主动通知您采取纠正措施或解决遇到的问题。

集群版本操作符 (CVO) 是协调和促进OpenShift Container Platform更新过程的主要组件。

托管升级操作符 (MUO) 处理ROSA(经典架构)集群升级的调度、监控和通知。MUO通过确保在托管集群升级之前和之后满足操作条件来协调自动就地集群升级。

集群升级计划时间

您可以通过设置计划时间来安排集群升级。这是集群升级准备工作开始的时间,包括预升级健康检查和额外计算容量的创建。实际集群升级将在计划时间1小时内启动。集群升级开始时,您会收到电子邮件通知。

预健康检查 (PHC) 提供额外的保护,以确保计划的更新按预期进行,并在以下两种情况下运行

  • 如果升级计划时间比当前时间晚超过2小时,则PHC运行,如果出现任何故障,则会通知用户。此PHC处于升级的新建阶段。

  • 如果升级是立即进行的或在2小时内进行,则PHC在升级开始之前运行。此PHC处于升级的升级中阶段。这意味着PHC在升级阶段至少运行一次,但如果升级计划时间比当前时间晚超过2小时,也可以提前额外运行。

您可以通过在ROSA CLI (rosa) 中运行rosa describe upgrade --cluster=<cluster name|cluster_id>命令来观察集群升级的状态。

ROSA(经典架构)升级概述

以下是ROSA(经典架构)集群更新期间发生的高级步骤

  1. 提前安排升级会触发PreHealthCheck并通知用户任何故障,以便他们在升级开始之前解决这些故障。

  2. 在集群升级开始之前,MUO会执行集群健康检查。如果MUO识别到需要纠正措施的问题,您将收到通知。MUO执行的集群健康检查的一些示例包括:

    • 识别任何可能阻止或延迟节点更新的Pod Disruption Budgets (PDB)。

    • 确保集群操作员可用且运行正常。

    • 确保集群关键警报未触发。

  3. 在集群中创建一个临时计算节点,以便在更新期间调度已清空的Pod。

    并非总是会创建临时计算节点。例如,如果没有worker机器池,则不会创建临时计算节点。当集群管理员删除现有的worker机器池并创建另一个具有不同名称或实例类型的worker机器池时,可能会发生这种情况。

  4. 将集群版本设置为目标版本。

    在某些情况下,从请求集群更新到完成更新的时间段内,升级路径可能会变得不可用。在这种情况下,升级将自动取消并发送通知。您必须选择另一个目标版本来请求升级。

  5. 在升级期间,控制平面组件将更新到新版本。

  6. 接下来,各个集群操作员在其集群域上执行更新任务。

  7. 最后,MCO 会更新每个节点的系统配置和操作系统。在此步骤中,每个节点在成功排空其上运行的工作负载后都会重新启动。

    1. 在更新每个节点期间,会排空工作负载,同时遵守 PDB(持久化磁盘卷)。具有不允许中断的 PDB 的工作负载实际上会阻止节点的排空,从而增加集群更新的持续时间。

    2. 在更新集群中每个节点期间,集群更新会等待由节点排空宽限期指定的时间,以安全地排空工作负载。达到节点排空宽限期后,将强制排空节点以允许集群升级继续进行。您只能在启动升级之前配置节点排空宽限期,并且在集群升级开始后无法更改它。

    3. 更新集群节点时,MCO 会根据节点的年龄(从最旧的开始),一次在一个机器配置池中选择一个节点。

使用 ROSA CLI 升级

您可以使用 ROSA CLI(rosa)立即(在一小时内)或在将来某个时间升级 AWS 上的 Red Hat OpenShift 服务 (ROSA) 集群。

先决条件
  • 您已在安装主机上安装并配置了最新的 ROSA CLI。

  • 您的 AWS 上的 Red Hat OpenShift 服务集群处于就绪状态。

步骤
  1. 要验证集群的当前版本,请输入以下命令:

    $ rosa describe cluster --cluster=<cluster_name|cluster_id> (1)
    1 <cluster_name|cluster_id>替换为集群名称或集群 ID。
  2. 要验证是否有可用的升级,请输入以下命令:

    $ rosa list upgrade --cluster=<cluster_name|cluster_id>

    该命令将返回集群可以升级到的版本列表,包括推荐版本。推荐基于条件更新风险。每个已知风险可能适用于所有集群,或者仅适用于满足特定条件的集群。请参考 OpenShift 发行说明来评估、验证并确定要升级到的适当版本。

  3. 要在一小时内立即将集群升级到指定版本,请输入以下命令:

    $ rosa upgrade cluster --cluster=<cluster_name|cluster_id> --version <version-id>

    如果您正在升级 AWS 安全令牌服务 (STS) 集群,此命令将启动一个交互式 IAM 角色/策略升级模式流程,该流程将验证所选集群的帐户和运营商角色策略是否与升级的目标版本兼容。如果策略与所选升级版本不兼容,CLI 将在自动模式下自动升级它们。

    集群已安排立即升级,如计划时间所示。升级将在计划时间后一小时内开始。

  4. 或者,要按 UTC 时间在将来某个时间升级集群,请输入以下命令:

    $ rosa upgrade cluster --cluster=<cluster_name|cluster_id>   \
              --version <version-id>   \
              --schedule-date yyyy-mm-dd \
              --schedule-time HH:mm
  5. 要自定义集群升级期间要排空的每个节点的宽限期,请输入以下命令:

    $ rosa upgrade cluster --cluster=<cluster_name|cluster_id>   \
              --version <version-id>   \
              --node-drain-grace-period 15 minutes
  6. 您可以通过输入以下命令查看升级状态,该命令显示状态(已计划或已启动)和计划时间。

    $ rosa list upgrade --cluster=<cluster_name|cluster_id>
    示例输出
    VERSION  NOTES
    4.15.14  recommended - scheduled for 2024-06-02 15:00 UTC
    4.15.13

您将收到电子邮件通知,确认集群升级的计划、开始和完成。

故障排除

使用 ROSA CLI 删除 ROSA 集群升级

您可以使用 ROSA CLI(rosa)或 OpenShift 集群管理器控制台删除计划的升级。此步骤使用 ROSA CLI。

步骤
  1. 使用以下命令验证集群更新尚未启动:

    $ rosa list upgrades --cluster=<cluster_name|cluster_id>
    示例输出
    VERSION  NOTES
    4.15.14  recommended - scheduled for 2024-06-02 15:00 UTC
    4.15.13
  2. 运行以下命令删除计划的更新:

    $ rosa delete upgrade --cluster=<cluster_name|cluster_id>
  3. 在确认提示符处输入Yes以确认删除。

    示例输出
    I: Successfully canceled scheduled upgrade on cluster 'my-cluster'

您将收到一封电子邮件通知,确认已取消计划的升级。

使用 OpenShift 集群管理器控制台升级

您可以使用 OpenShift 集群管理器控制台手动计划 ROSA 集群的一次性升级或定期升级。

步骤
  1. 登录到OpenShift 集群管理器

  2. 选择要升级的集群。

  3. 单击设置选项卡。

  4. 更新策略窗格中,选择所需的更新类型。

    • 对于单个更新,您可以请求立即升级(在一小时内开始)或将来某个时间升级。

    • 对于定期更新,请选择定期日期和时间,以自动将升级启动到可用的最新 x.y.Z(z 流)版本。

      定期更新仅适用于 z 流更新。次要版本或 y 流更新需要手动完成。当有新的 y 流更新可用时,您将收到通知。

  5. 可选:在节点排空窗格中,从列表中选择宽限期间隔。宽限期使节点能够在强制驱逐 Pod 之前优雅地排空。默认值为1 小时

    您无法在启动升级过程后更改节点排空宽限期。

  6. 更新策略窗格中,单击保存以应用更新策略。

  7. 更新状态窗格中,查看可用更新信息,然后单击更新

    只有在有可用升级时,更新按钮才启用。

  8. 更新集群对话框将打开。推荐的集群升级显示在选择版本窗格中。选择要将集群升级到的版本,然后单击下一步

  9. 可选:对于使用 AWS 安全令牌服务 (STS) 的 ROSA 集群,帐户级别和特定于集群的运营商角色可能需要更新,具体取决于所选的目标版本。

    1. 在 ROSA CLI 中,运行rosa list account-roles命令列出并验证帐户角色是否与为升级选择的目标次要版本兼容。如果角色不兼容,请运行rosa upgrade account-roles命令将帐户角色升级到最新的 OpenShift 版本。

    2. 在 ROSA CLI 中,运行rosa list operator-roles命令列出并验证与集群关联的运营商角色是否与为升级选择的目标次要版本兼容。如果不是,请运行rosa upgrade operators-roles命令将集群的运营商角色升级到最新的 OpenShift 版本。

    3. 如果您选择的更新版本需要批准,请在提供的字段中键入确认,然后单击下一步,以提供管理员的确认。

  10. 安排更新对话框中,安排集群升级。

    • 要在 1 小时内升级,请选择立即更新,然后单击下一步

    • 要在以后的时间升级,请选择安排不同的时间,然后设置升级的时间和日期。单击下一步继续进行确认对话框。

  11. 查看版本和计划摘要后,选择确认更新

  12. 单击关闭以退出更新集群对话框。

集群已计划升级到目标版本。此操作最多可能需要一个小时,具体取决于选择的升级计划和您的工作负载配置,例如 Pod 中断预算。

状态显示在更新状态面板中。

故障排除

使用 OpenShift 集群管理器控制台删除升级

您可以使用 OpenShift 集群管理器控制台删除已计划的升级。

步骤
  1. 登录到OpenShift 集群管理器

  2. 选择具有已计划升级的集群。

  3. 单击设置选项卡。

  4. 更新状态面板中,单击取消此更新

  5. 取消更新对话框中查看更新详细信息,然后单击取消此更新

您将收到一封电子邮件通知,确认已取消计划的升级。