2.2. 升级 ROSA Classic 集群
您必须使用 ROSA CLI (rosa
)或 OpenShift Cluster Manager 控制台升级 ROSA (经典架构)集群。
集群升级的实际开始时间将在升级调度时间的一小时内。另外,升级的持续时间可能会因工作负载配置而异。
当升级使用 AWS 安全令牌服务(STS)的 ROSA 集群时,ROSA CLI 验证所选集群的帐户和 Operator 角色策略与升级的目标版本兼容。如果策略兼容,CLI 会自动升级集群。如果策略与所选升级版本不兼容,则 CLI 会在升级前自动升级 IAM 策略。在调度升级时,您可以向管理确认确认已检查升级所涉及的更改(如果需要)。
2.2.1. ROSA (经典架构)集群升级如何工作
手动启动升级(一次性)或自动调度(递归)。Red Hat Site Reliability 工程师(SRE)监控升级进度,并主动通知您采取纠正行动或补救问题。
Cluster Version Operator (CVO) 是编配并协助 OpenShift Container Platform 更新过程的主要组件。
Managed Upgrade Operator (MUO)处理 ROSA 集群升级的调度、监控和通知。MUO 通过确保升级受管集群之前和之后满足操作条件来编配自动原位升级。
2.2.1.1. 集群升级计划时间
您可以通过设置调度的时间来调度集群升级。当准备集群升级时,从预升级健康检查和其他计算容量创建开始。实际的集群升级会在从调度的时间一小时内启动。当集群升级启动时,您会收到电子邮件通知。
Pre-Health Check (PHC)提供了额外的保护,以确保调度的更新按预期进行,并在以下两种场景中运行:
- 如果从当前时间调度升级时间超过 2 小时,则 PHC 运行,并在出现失败时用户会收到通知。此 PHC 处于升级 的新 阶段。
- 当升级马上或在 2 小时内时,PHC 在升级开始前运行。这个 PHC 处于升级阶段。这意味着 PHC 在升级阶段至少运行一次,但如果从当前时间调度了超过 2 小时的升级,也可以提前运行。
您可以在 ROSA CLI (rosa
)中运行 rosa describe upgrade --cluster=<cluster name|cluster_id&
gt; 命令来观察集群升级的状态。
2.2.1.2. ROSA (典型的架构)升级概述
以下是 ROSA (经典架构)集群更新过程中发生的高级别步骤:
-
提前调度升级会触发
PreHealthCheck
,并通知用户在升级前可以解决的问题。 在集群升级开始前,MUO 执行集群健康检查。如果 MUO 识别需要纠正措施的问题,您将收到通知。MUO 执行的集群健康检查示例包括:
- 识别任何可能阻止或延迟节点的 Pod Disruption Budgets (PDB)的 Pod Disruption Budgets (PDB)。
- 确保集群 Operator 可用且健康。
- 确保集群关键警报不会被触发。
在集群中创建一个临时计算节点,允许在更新期间调度排空 pod。
注意临时计算节点创建不会始终发生。例如,如果没有
worker
机器池,则不会创建临时计算节点。当集群管理员删除现有worker
机器池并创建带有不同名称或实例类型的另一个worker
机器池时,会出现这种情况。集群版本被设置为目标版本。
注意在某些情况下,升级路径可能会变得不可用,因为请求了集群更新的时间,但在完成前。在这种情况下,升级会自动取消,并会发送通知。您必须选择另一个目标版本来请求升级。
- 在升级过程中,control plane 组件会更新为新版本。
- 接下来,单个集群 Operator 在集群的域上执行更新任务。
最后,MCO 更新每个节点的系统配置和操作系统。在这一步中,每个节点会在成功排空节点上运行的工作负载后重启。
- 在更新每个节点期间,工作负载会排空,并遵循 PDB。不允许中断的 PDB 的工作负载实际上会阻止节点排空,从而增加集群更新的已经过时间。
- 在更新集群中的每个节点期间,集群更新会等待 节点排空宽限期 指定的时间,以便安全地排空工作负载。在达到节点排空宽限期后,节点会被强制排空以允许集群升级进行。您只能在启动升级前配置节点排空宽限期,在集群升级开始后无法更改节点。
- 当更新集群节点时,MCO 根据机器配置池的年龄(从最旧的开始)一次选择一个节点。
2.2.2. 使用 ROSA CLI 升级
您可以使用 ROSA CLI (rosa
)在 AWS (ROSA)集群上立即升级 Red Hat OpenShift Service。
先决条件
- 您已在安装主机上安装和配置了最新的 ROSA CLI。
-
您的 Red Hat OpenShift Service on AWS 集群处于
Ready
状态。
流程
要验证集群的当前版本,请输入以下命令:
$ rosa describe cluster --cluster=<cluster_name|cluster_id> 1
- 1
- 将
<cluster_name|cluster_id>
替换为集群名称或集群的 ID。
要验证升级是否可用,请输入以下命令:
$ rosa list upgrade --cluster=<cluster_name|cluster_id>
该命令返回一个集群可以升级的版本列表,包括推荐的版本。建议基于条件更新风险。每个已知的风险都可能适用于所有集群,或者只应用到与特定条件匹配的集群。请参阅 OpenShift 发行注记来评估、验证并确定要升级到的适当版本。
要将集群在下一个小时内立即升级到指定版本,请输入以下命令:
$ rosa upgrade cluster --cluster=<cluster_name|cluster_id> --version <version-id>
注意如果要升级 AWS 安全令牌服务(STS)集群,这个命令会启动一个交互式 IAM Roles/policies 升级模式,验证所选集群的帐户和 Operator 角色策略是否与升级的目标版本兼容。如果策略与所选升级版本不兼容,CLI 会自动以 auto 模式升级它们。
为集群调度立即升级,如 Scheduled Time 表示。升级将在从调度的时间一小时内开始。
另外,要在以后以 UTC 的方式升级集群,请输入以下命令:
$ rosa upgrade cluster --cluster=<cluster_name|cluster_id> \ --version <version-id> \ --schedule-date yyyy-mm-dd \ --schedule-time HH:mm
要自定义在集群升级过程中要排空的每个节点宽限期,请输入以下命令:
$ rosa upgrade cluster --cluster=<cluster_name|cluster_id> \ --version <version-id> \ --node-drain-grace-period 15 minutes
您可以输入以下命令来查看升级的状态,该命令显示状态(调度或启动)和调度的时间。
$ 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
您将收到电子邮件通知,确认集群升级的调度、开始和完成。
故障排除
- 有时,调度的升级不会触发。如需更多信息,请参阅升级维护取消。
2.2.3. 使用 ROSA CLI 删除 ROSA 集群升级
您可以使用 ROSA CLI (rosa
)或 OpenShift Cluster Manager 控制台来删除调度的升级。此流程使用 ROSA CLI。
流程
使用以下命令验证集群更新是否已启动:
$ 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
运行以下命令来删除调度的更新:
$ rosa delete upgrade --cluster=<cluster_name|cluster_id>
在确认提示中输入
Yes
来确认删除。输出示例
I: Successfully canceled scheduled upgrade on cluster 'my-cluster'
您将收到电子邮件通知,确认调度的升级已取消。
2.2.4. 使用 OpenShift Cluster Manager 控制台升级
您可以使用 OpenShift Cluster Manager 控制台手动调度 ROSA (经典架构)集群的升级。
流程
- 登录到 OpenShift Cluster Manager。
- 选择要升级的集群。
- 点 Settings 选项卡。
在 Update strategy 窗格中,选择您想要的更新类型:
- 对于单个更新,您可以立即请求升级(在一小时内启动),或在以后进行升级。
对于周期性更新,请选择重复日期和时间,以自动启动升级到最新 x.y.Z (z-stream)版本。
重要重复更新仅适用于 z-stream 更新。需要手动进行次版本或 y-stream 更新。当有新的 y-stream 更新可用时,您将收到通知。
可选: 在 Node draining 窗格中,从列表中选择一个宽限期间隔。宽限期可让节点在强制 pod 驱除前安全排空。默认值为 1 小时。
重要在开始升级过程后,您无法更改节点排空宽限期。
- 在 Update strategy 窗格中,点 Save 以应用您的更新策略。
在 Update status 窗格中,查看更新可用信息,然后点更新。
注意只有在升级可用时才启用更新按钮。
- 此时会打开 Update cluster 对话框。推荐的集群升级会出现在 Select version 窗格中。选择您要将集群升级到的版本,然后点 Next。
可选: 对于使用 AWS 安全令牌服务(STS)的 ROSA 集群,可能需要更新帐户级别和特定于集群的 Operator 角色,具体取决于所选目标版本。
-
在 ROSA CLI 中,运行
rosa list account-roles
命令,以列出并验证帐户角色是否与为升级选择的目标次版本兼容。如果角色不兼容,请运行rosa upgrade account-roles
命令,将帐户角色升级到最新的 OpenShift 版本。 -
在 ROSA CLI 中,运行
rosa list operator-roles
命令来列出并验证与集群关联的 Operator 角色是否与为升级选择的目标次版本兼容。如果没有,请运行rosa upgrade operators-roles
命令,将集群的 Operator 角色升级到最新的 OpenShift 版本。 - 如果您选择了需要批准的更新版本,请在提供的字段中键入 Acknowledge 来提供管理员的确认,然后点击 Next。
-
在 ROSA CLI 中,运行
在 Schedule update 对话框中,调度集群升级。
- 要在一小时内升级,请选择 Update now 并点下一步。
- 要稍后升级,请选择 Schedule a different time 并为升级设置时间和日期。点 Next 进入确认对话框。
- 检查版本和调度概述后,选择 Confirm update。
- 点 Close 退出 Update cluster 对话框。
为集群计划升级到目标版本。此操作最多可能需要一小时,具体取决于所选的升级计划和工作负载配置,如 pod 中断预算。
状态显示在 Update status 窗格中。
故障排除
- 有时,调度的升级不会触发。如需更多信息,请参阅升级维护取消。
2.2.5. 使用 OpenShift Cluster Manager 控制台删除 ROSA 集群升级
您可以使用 OpenShift Cluster Manager 控制台删除调度的升级。
流程
- 登录到 OpenShift Cluster Manager。
- 选择带有调度的升级的集群。
- 点 Settings 选项卡。
- 在 Update status 窗格中,单击 Cancel this update。
- 检查 Cancel update 对话框中的更新详情,再单击 Cancel this update。
您将收到电子邮件通知,确认调度的升级已取消。