Deckhouse Platform (DP) runs virtual machines (VMs) in the same cluster as container workloads and manages them declaratively, through Kubernetes resources. Machines run on the same nodes, networks, and storage as the other workloads, so an administrator configures them with the usual DP tools.

DP lets you do the following:

  • Prepare cluster nodes for running virtual machines.
  • Store cluster-wide images and provide projects with storage for disks.
  • Define the machine parameters that project owners can use.
  • Pass node devices through to machines.

Installation and configuration

Virtualization has its own node requirements: hardware virtualization support, the same kernel version everywhere, storage for disks and images, and dedicated subnets for machines. They are listed in Additional requirements for virtualization, while enabling virtualization and placing its components across nodes is covered in Installing virtualization.

The parameters set in the ModuleConfig resource are covered in the module settings reference, and the specifics of updating the components are covered in Updating virtualization.

As guest systems, DP supports operating systems running on the x86 and x86-64 architectures. For paravirtualization mode, install the VirtIO drivers in the guest system. Linux machines are easier to prepare from images with cloud-init support, and Windows machines with an autounattend answer file.

Storing images and disks

Machine images and disks take up space in the cluster, and an administrator configures how they are stored.

DP keeps uploaded images in its own DVCR storage. Its size, storage class, and the schedule for cleaning up stale data are covered in Virtual machine image storage. The storage classes that projects create disks and images from are listed in Storage for virtual machine disks and images.

Cluster-wide images are prepared by an administrator: project owners create disks from them without uploading the same data again. How to create such images and in what form to store them is covered in Cluster images of virtual machines.

Virtual machine classes

A class defines which processor the guest system sees, which nodes a machine runs on, and which combinations of cores and memory are available to it. A project owner picks a class out of the ones prepared by an administrator, so classes are how DP limits machine parameters in the cluster.

The VirtualMachineClass resource and the purpose of the default class are covered in Virtual machine classes. Each group of settings then has a section of its own: Virtual processor of virtual machines, Placement of virtual machines across nodes, and Virtual machine sizing policy. CPU oversubscription for virtual machines, the share of a physical core that a machine gets guaranteed, is covered separately.

Device passthrough

A machine can be given a node device: a USB device, a GPU, or a PCI device. Each type has its own node requirements and its own preparation order, so each has a section of its own.

Operating a cluster with virtual machines

Running machines also affect other areas of DP configuration:

For how virtualization works internally, refer to the Virtualization subsystem section; for the full list of resources and their parameters, refer to the reference. The Virtual machines section is addressed to a project owner.

Additional resources