第 9 章 升级 control plane 操作系统
升级 control plane 节点上的操作系统。升级包括以下任务:
- 使用系统升级参数运行 overcloud upgrade prepare 命令
- 运行 overcloud 系统升级,它使用 Leapp 升级 RHEL 原位升级
- 重新引导节点
9.1. 升级 control plane 节点 复制链接链接已复制到粘贴板!
要将环境中的 control plane 节点升级到 Red Hat Enterprise Linux 9.2,您必须一次升级三分之一 control plane 节点,从 bootstrap 节点开始。
您可以使用 openstack overcloud upgrade run 命令升级 control plane 节点。这个命令执行以下操作:
- 对操作系统执行 Leapp 升级。
- 作为 Leapp 升级的一部分执行重启。
每个节点会在系统升级过程中重启。在此停机期间,Pacemaker 集群和 Red Hat Ceph Storage 集群的性能会降级,但没有中断。
本例包含以下带有可组合角色的节点:
-
controller-0 -
controller-1 -
controller-2 -
database-0 -
database-1 -
database-2 -
networker-0 -
networker-1 -
networker-2 -
ceph-0 -
ceph-1 -
ceph-2
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:$ source ~/stackrc运行以下脚本,但没有
CONTROL_PLANE_ROLES参数:确保您包含用于运行 overcloud 升级准备容器时使用的变量。python3 \ /usr/share/openstack-tripleo-heat-templates/tools/multi-rhel-container-image-prepare.py \ ${COMPUTE_ROLES} \ --enable-multi-rhel \ --excludes collectd \ --excludes nova-libvirt \ --minor-override \ "{${EL8_TAGS}${EL8_NAMESPACE}${CEPH_TAGS}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --major-override \ "{${EL9_TAGS}${NAMESPACE}${CEPH_TAGS}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --output-env-file \ /home/stack/containers-prepare-parameter.yaml注意CONTROL_PLANE_ROLES参数定义 control plane 角色的列表。从脚本中删除此参数为升级到 RHEL 9.2 准备 control plane 角色。如果脚本中包含CONTROL_PLANE_ROLES参数,则 control plane 角色会保留在 RHEL 8.4 上。在
skip_rhel_release.yaml文件中,将SkipRhelEnforcement参数设置为false:parameter_defaults: SkipRhelEnforcement: false更新
overcloud_upgrade_prepare.sh文件:$ openstack overcloud upgrade prepare --yes \ ... -e /home/stack/system_upgrade.yaml \ -e /home/stack/containers-prepare-parameter.yaml \ -e /home/stack/skip_rhel_release.yaml \ ...-
使用特定于升级的参数(-e)包括
system_upgrade.yaml文件。 -
包含
containers-prepare-parameter.yaml文件,并删除了 control plane 角色(-e)。 -
包含
skip_rhel_release.yaml文件,其中包含发行版本参数(-e)。
-
使用特定于升级的参数(-e)包括
运行
overcloud_upgrade_prepare.sh脚本:$ sh /home/stack/overcloud_upgrade_prepare.sh获取系统升级所需的任何新的或修改的容器:
$ openstack overcloud external-upgrade run \ --stack <stack> \ --tags container_image_prepare 2>&1升级第一个 control plane 节点三分之一:
$ openstack overcloud upgrade run --yes \ --stack <stack> \ --tags system_upgrade \ --limit <controller-0>,<database-0>,<messaging-0>,<networker-0>,<ceph-0>-
将
<stack>替换为您的堆栈的名称。 -
将 &
lt;controller-0>,<database-0>, <messaging-0> , <networker-0> , <ceph-0> 替换为您自己的节点名称。
-
将
登录到每个升级的节点,并验证每个节点的集群是否正在运行:
$ sudo pcs status在升级了第二个 control plane 节点的三分之一后,重复这个验证步骤,并在升级最后三分之一 control plane 节点后。
升级第二个 control plane 节点的三分之一:
$ openstack overcloud upgrade run --yes \ --stack <stack> \ --tags system_upgrade \ --limit <controller-1>,<database-1>,<messaging-1>,<networker-1>,<ceph-1>-
将 &
lt;controller-1> ,<database-1>, <messaging-1> , <networker-1> , <ceph-1> 替换为您自己的节点名称。
-
将 &
升级 control plane 节点的最后三分之一:
$ openstack overcloud upgrade run --yes \ --stack <stack> \ --tags system_upgrade \ --limit <controller-2>,<database-2>,<messaging-2>,<networker-2>,<ceph-2>-
将 &
lt;controller-2> ,<database-2>, <messaging-2> , <networker-2> , <ceph-2> 替换为您自己的节点名称。
-
将 &