1.4. 使用 ROSA CLI 升级机器池
您可以使用 ROSA CLI 在带有 HCP 集群的 ROSA 中手动升级一个或多个机器池。如果较新的版本可用,则此方法为升级调度指定的机器池,无论是立即或在指定的将来可用。
您的 control plane 只支持两个次版本中的机器池。例如,带有使用版本 4.15.z 的 control plane 的 HCP 集群的 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> 1
- 1
- 将
<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%
在示例中,这些设置允许机器池置备一个超额节点(最多 20%
的副本
),并在升级过程中最多不可用一个节点(最多 20%的副本
)。因此,这个机器池可以一次升级两个节点,方法是在超过副本数的情况下置备一个新节点,并使一个节点不可用并替换它。如果需要保护 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)中指定的时间和日期开始升级。这将启动指定机器池中所有节点的滚动替换,从指定时间开始。