This module is designed to run and manage virtual machines and their resources on the Deckhouse platform.
It offers the following features:
- A simple and intuitive interface for declarative creation and management of virtual machines and their resources.
- The ability to run legacy applications that for some reason cannot or are difficult to run in a container.
- Ability to run applications that require non-Linux operating systems.
- Ability to run virtual machines and containerized applications in the same environment.
- Integration with the existing Deckhouse ecosystem to leverage its capabilities for virtual machines.
The following conditions are required to run the module:
- A processor with x86_64 architecture and support for Intel-VT or AMD-V instructions.
- Cluster resource requirements and configuration specifics are available for reading on this page.
- Any compatible Linux-based OS is supported for installation.
- The Linux kernel on the cluster nodes must be version 5.7 or newer.
- The CNI Cilium module to provide network connectivity for virtual machines.
- Modules SDS-DRBD or CEPH-CSI for storing virtual machine data. It is also possible to use other storage options that support the creation of block devices with
RWX
(ReadWriteMany
) access mode.
The command line utility d8 is used to create cluster resources and connect to virtual machines. For users of the EE-version the ability to manage resources via UI is available.
Procedure for enabling the module
- Configure the deckhouse cluster
- Enable the CNI Cilium module
- Install and configure SDS-DRBD/CEPH/etc storage
- Enable the virtualization module
The module includes the following components:
- The module core, based on the KubeVirt project and uses QEMU/KVM + libvirtd to run virtual machines.
- Deckhouse Virtualization Container Registry (DVCR) - repository for storing and caching virtual machine images.
- Virtualization-API - controller that implements a user API for creating and managing virtual machine resources.
The API provides capabilities for creating and managing the following resources:
- Virtual Images
- Virtual Disks
- Virtual machines
- Virtual Machine Operations
Example of ModuleConfig
to enable the virtualization module
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: virtualization
spec:
enabled: true
settings:
dvcr:
storage:
persistentVolumeClaim:
size: 50G # size of DVCR storage
type: PersistentVolumeClaim
virtualMachineCIDRs:
- 10.66.10.0/24
- 10.66.20.0/24
- 10.66.30.0/24
version: 1