2.5. Upgrading OpenShift Container Platform when using containerized GlusterFS
When upgrading OpenShift Container Platform, you must upgrade the set of nodes where GlusterFS pods run. However, because these pods run as part of a daemonset, you cannot use drain
or unschedule
commands to terminate and evacuate the GlusterFS pods. To avoid data availability and cluster corruption, you must also upgrade nodes that host GlusterFS pods one at a time to ensure that the upgrade process completes on a node that runs GlusterFS before the upgrade starts on the next node.
To upgrade OpenShift Container Platform if you use containerized GlusterFS:
- Upgrade the control plane (the master nodes and etcd nodes).
Upgrade standard
infra
nodes (router, registry, logging, and metrics).注意If any of the nodes in those groups are running GlusterFS, perform step 4 of this procedure at the same time. GlusterFS nodes must be upgraded along with other nodes in their class (
app
versusinfra
), one at a time.Upgrade standard nodes running application containers.
注意If any of the nodes in those groups are running GlusterFS, perform step 4 of this procedure at the same time. GlusterFS nodes must be upgraded along with other nodes in their class (
app
versusinfra
), one at a time.Upgrade the OpenShift Container Platform nodes running GlusterFS one at a time.
Add a label to the node you want to upgrade:
$ oc label node <node_name> type=upgrade
-
To run the upgrade playbook on a single node, use
-e openshift_upgrade_nodes_label="type=upgrade"
. - Wait for the GlusterFS pod to respawn and appear.
oc rsh
into the pod and verify all volumes are healed:$ oc rsh <GlusterFS_pod_name> $ for vol in `gluster volume list`; do gluster volume heal $vol info; done
Ensure all of the volumes are healed and there are no outstanding tasks. The
heal info
command lists all pending entries for a given volume’s heal process. A volume is considered healed whenNumber of entries
for that volume is0
.Remove the upgrade label and go to the next GlusterFS node.
$ oc label node <node_name> type-