1 Introduction to the KubeVirt Module

KubeVirt is a virtualization technology that can create and manage virtual machines in a Kubernetes cluster. The virtual machines are created using Kubernetes custom resource definitions (CRDs) and can be managed using the kubectl command. A VirtualMachine CRD can be used to create VirtualMachineInstances, and each instance runs as both a virtual machine and a pod. You can create CRDs for VirtualMachineInstanceReplicaSets (which are similar to a ReplicaSet) which can be used to create and manage many VirtualMachineInstances with the same configuration, defined in a template.

For upstream KubeVirt documentation, see https://kubevirt.io/user-guide/.

For more information about KubeVirt, see https://kubevirt.io/.

The KubeVirt module is used to install KubeVirt. The default namespace for KubeVirt is kubevirt.

We recommend that you provide persistent storage to KubeVirt virtual machines. Every meaningful workload in the computing industry requires some sort of data storage. Persistent storage is essential when working with stateful applications as it's important that you can retain data beyond the lifecycle of the container or virtual machine. As container images are read-only, any writes to the file system by the virtual machine aren't persisted between boots or live migration. For virtual machines to be restarted, live migrated, and to maintain state, persistent storage is required so that the state can be written somewhere. We recommend that you use a CephFilesystem to provide this storage. You can install and configure a CephFilesystem using the Rook module. For information on setting up CephFilesystem with Rook, see Rook Module.