Chapter 4. Upgrading container-native virtualization
You can manually upgrade to the next minor version of container-native virtualization and monitor the status of an update by using the web console.
Container-native virtualization is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see https://access.redhat.com/support/offerings/techpreview/.
4.1. About upgrading container-native virtualization
4.1.1. How container-native virtualization upgrades work
- You can upgrade to the next minor version of container-native virtualization by using the OpenShift Container Platform web console to change the channel of your Operator subscription.
- You can enable automatic z-stream updates during container-native virtualization installation.
- Updates are delivered via the Marketplace Operator, which is deployed during OpenShift Container Platform installation. The Marketplace Operator makes external Operators available to your cluster.
- The amount of time an update takes to complete depends on your network connection. Most automatic updates complete within fifteen minutes.
4.1.2. How container-native virtualization upgrades affect your cluster
Upgrading does not interrupt virtual machine workloads.
Virtual machine pods are not restarted or migrated during an upgrade. If you need to update the
virt-launcher
pod, you must restart or live migrate the virtual machine.NoteEach virtual machine has a
virt-launcher
Pod that runs the virtual machine instance. Thevirt-launcher
Pod runs an instance oflibvirt
, which is used to manage the virtual machine process.
- Upgrading does not interrupt network connections.
- DataVolumes and their associated PersistentVolumeClaims are preserved during upgrade.
4.2. Upgrading container-native virtualization to the next minor version
You can manually upgrade container-native virtualization to the next minor version by using the OpenShift Container Platform web console to change the channel of your Operator subscription.
Prerequisites
-
Access to the cluster as a user with the
cluster-admin
role.
Procedure
-
Access the OpenShift Container Platform web console and navigate to Operators
Installed Operators. - Click OpenShift Virtualization to open the Operator Details page.
- Click the Subscription tab to open the Subscription Overview page.
- In the Channel pane, click the pencil icon on the right side of the version number to open the Change Subscription Update Channel window.
- Select the next minor version. For example, if you want to upgrade to container-native virtualization 2.3, select 2.3.
- Click Save.
Check the status of the upgrade by navigating to Operators
Installed Operators. You can also check the status by running the following oc
command:$ oc get csv -n openshift-cnv
4.3. Monitoring upgrade status
The best way to monitor container-native virtualization upgrade status is to watch the ClusterServiceVersion (CSV) PHASE
. You can also monitor the CSV conditions in the web console or by running the command provided here.
The PHASE
and conditions values are approximations that are based on available information.
Prerequisites
-
Access to the cluster as a user with the
cluster-admin
role. -
Install the OpenShift CLI (
oc
).
Procedure
Run the following command:
$ oc get csv
Review the output, checking the
PHASE
field. For example:VERSION REPLACES PHASE 2.2.1 kubevirt-hyperconverged-operator.v2.2.0 Installing 2.2.0 Replacing
Optional: Monitor the aggregated status of all container-native virtualization component conditions by running the following command:
$ oc get hco -n openshift-cnv kubevirt-hyperconverged \ -o=jsonpath='{range .status.conditions[*]}{.type}{"\t"}{.status}{"\t"}{.message}{"\n"}{end}'
A successful upgrade results in the following output:
ReconcileComplete True Reconcile completed successfully Available True Reconcile completed successfully Progressing False Reconcile completed successfully Degraded False Reconcile completed successfully Upgradeable True Reconcile completed successfully
Additional information