Product overview

Introduction to Container-native Virtualization

Container-native Virtualization is an add-on to OpenShift Container Platform that allows virtual machine workloads to run and be managed alongside container workloads. You can create virtual machines from disk images imported using the containerized data importer (CDI) controller, or from scratch within OpenShift Container Platform.

Container-native Virtualization introduces two new objects to OpenShift Container Platform:

  • Virtual Machine: The virtual machine in OpenShift Container Platform

  • Virtual Machine Instance: A running instance of the virtual machine

With the Container-native Virtualization add-on, virtual machines run in pods and have the same network and storage capabilities as standard pods.

Existing virtual machine disks are imported into persistent volumes (PVs), which are made accessible to Container-native Virtualization virtual machines using persistent volume claims (PVCs). In OpenShift Container Platform, the virtual machine object can be modified or replaced as needed, without affecting the persistent data stored on the PV.

Container-native Virtualization is currently a Technology Preview feature. For details about Red Hat support for Container-native Virtualization, see the Container-native Virtualization - Technology Preview Support Policy.

Technology Preview features are not supported with Red Hat production service level agreements (SLAs), might not be functionally complete, and Red Hat does not recommend to use them for 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 on Red Hat Technology Preview features support scope, see

New and changed features

Virtual machine control from the web console

  • The updated Container-native Virtualization web console now allows users to create virtual machines, access virtual machines with either a serial or VNC connection, and perform basic power management tasks (start|stop) on virtual machines.

Layer-2 networking

  • Layer-2 networking capabilities are now exposed to the Container-native Virtualization web console. Users can control the type of vNIC that is exposed to a virtual machine, connect a virtual machine to an enterprise network defined by a VLAN ID, and more.

Upload existing virtual machine images into templates

  • You can upload an existing image into a template, which can then be used to create new virtual machines.

Clone virtual machines

  • You can clone the PVC of an existing virtual machine disk into a new DataVolume, which can then be used to create a new virtual machine.

Known issues

  • Gluster nodes do not deploy on OpenShift Container Platform version 3.11.43 with CRI-O as the container runtime. Therefore, Red Hat OpenShift Container Storage versions before 3.11.1 are incompatible with Container-native Virtualization. (BZ#1651270)

  • The runc package version runc-1.0.0-54 may cause the virt-launcher to crash if FIPS is disabled. If FIPS is disabled, RHOCS may also crash. Do not use this version of runc with Container-native Virtualization. (BZ1650512)

    • Workaround: Use the newer runc-1.0.0-57 package instead.

  • After creating a PVC with CDI annotation, if you attach the PVC to a VM object and start the VM before allowing CDI to complete, the VM may erroneously be listed as Running with no errors shown in the web console. (BZ#1640505)

  • In the Create VM Wizard, using the PXE source option with the Start VM on creation option will result in the boot order not changing after stopping and starting the VM. The VM will boot from the PXE NIC instead of the disk. (BZ#1648245)

    • Restarting the VM will not solve this issue. (BZ#1647447)

    • Workaround: Stop and start the VM again, and the boot order should change as expected.

  • Deploying with kubevirt-apb and creating a VM from template may result in the following error:

    Unable to pull image: Back-off pulling image

    This may cause VM creation to get stuck. (BZ#1632255)

    • This will be fixed with the introduction of operators in CNV 1.4.