Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 10. Upgrading the control plane operating system
Upgrade the operating system on your control plane nodes. The upgrade includes the following tasks:
- Running the overcloud upgrade prepare command with the system upgrade parameters
- Running the overcloud system upgrade, which uses Leapp to upgrade RHEL in-place
- Rebooting the nodes
10.1. Upgrading the control plane nodes
To upgrade the control plane nodes in your environment to Red Hat Enterprise Linux 9.2, you must upgrade one-third of your control plane nodes at a time, starting with the bootstrap nodes.
You upgrade your control plane nodes by using the openstack overcloud upgrade run
command. This command performs the following actions:
- Performs a Leapp upgrade of the operating system.
- Performs a reboot as a part of the Leapp upgrade.
Each node is rebooted during the system upgrade. The performance of the Pacemaker cluster and the Red Hat Ceph Storage cluster is degraded during this downtime, but there is no outage.
This example includes the following nodes with composable roles:
-
controller-0
-
controller-1
-
controller-2
-
database-0
-
database-1
-
database-2
-
networker-0
-
networker-1
-
networker-2
-
ceph-0
-
ceph-1
-
ceph-2
For information about the duration and impact of this upgrade procedure, see Upgrade duration and impact.
Procedure
-
Log in to the undercloud host as the
stack
user. Source the
stackrc
undercloud credentials file:$ source ~/stackrc
Run the following script without the
CONTROL_PLANE_ROLES
parameter. Ensure that you include the variables that you used to prepare the containers in Running the overcloud upgrade preparation.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_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --major-override \ "{${EL9_TAGS}${NAMESPACE}${CEPH_OVERRIDE}${NEUTRON_DRIVER}\"no_tag\":\"not_used\"}" \ --output-env-file \ /home/stack/containers-prepare-parameter.yaml
NoteThe
CONTROL_PLANE_ROLES
parameter defines the list of your control plane roles. Removing this parameter from the script prepares the control plane roles for an upgrade to RHEL 9.2. If theCONTROL_PLANE_ROLES
parameter is included in the script, the control plane roles remain on RHEL 8.4.In the
skip_rhel_release.yaml
file, set theSkipRhelEnforcement
parameter tofalse
:parameter_defaults: SkipRhelEnforcement: false
Update the
overcloud_upgrade_prepare.sh
file:$ 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 \ ...
-
Include the
system_upgrade.yaml
file with the upgrade-specific parameters (-e). -
Include the
containers-prepare-parameter.yaml
file with the control plane roles removed (-e). -
Include the
skip_rhel_release.yaml
file with the release parameters (-e).
-
Include the
Run the
overcloud_upgrade_prepare.sh
script:$ sh /home/stack/overcloud_upgrade_prepare.sh
Fetch any new or modified containers that you require for the system upgrade:
$ openstack overcloud external-upgrade run \ --stack <stack> \ --tags container_image_prepare 2>&1
Upgrade the first one-third of the control plane nodes:
$ openstack overcloud upgrade run --yes \ --stack <stack> \ --tags system_upgrade \ --limit <controller-0>,<database-0>,<messaging-0>,<networker-0>,<ceph-0>
-
Replace
<stack>
with the name of your stack. -
Replace
<controller-0>
,<database-0>
,<messaging-0>
,<networker-0>
,<ceph-0>
with your own node names.
-
Replace
Log in to each upgraded node and verify that the cluster in each node is running:
$ sudo pcs status
Repeat this verification step after you upgrade the second one-third of your control plane nodes, and after you upgrade the last one-third of your control plane nodes.
Upgrade the second one-third of the control plane nodes:
$ openstack overcloud upgrade run --yes \ --stack <stack> \ --tags system_upgrade \ --limit <controller-1>,<database-1>,<messaging-1>,<networker-1>,<ceph-1>
-
Replace
<controller-1>
,<database-1>
,<messaging-1>
,<networker-1>
,<ceph-1>
with your own node names.
-
Replace
Upgrade the last one-third of the control plane nodes:
$ openstack overcloud upgrade run --yes \ --stack <stack> \ --tags system_upgrade \ --limit <controller-2>,<database-2>,<messaging-2>,<networker-2>,<ceph-2>
-
Replace
<controller-2>
,<database-2>
,<messaging-2>
,<networker-2>
,<ceph-2>
with your own node names.
-
Replace
If you enabled STF, run the upgrade command with no tags. Run this command after the operating system upgrade to update the
collectd
container on all nodes.$ openstack overcloud upgrade run --yes \ --stack <stack> \ --limit <controller-0>,<controller-1>,<controller-2>,<database-0>,<database-1>,<database-2>,<networker-0>,<networker-1>,<networker-2>,<ceph-0>,<ceph-1>,<ceph-2>
-
Replace
<controller-0>
,<controller-1>
,<controller-2>
,<database-0>
,<database-1>
,<database-2>
,<networker-0>
,<networker-1>
,<networker-2>
,<ceph-0>
,<ceph-1>
,<ceph-2>
with your own node names.
-
Replace