DocsAbout managed KubernetesVirtual machines on Kubernetes

Virtual machines on Kubernetes

Create and manage KubeVirt virtual machines that run as workloads inside a cluster, including console access and scheduled backups.

You can run full virtual machines as workloads inside a cluster, powered by KubeVirt. These VMs run inside your Kubernetes cluster — they are separate from Akasha instances, which run directly on the platform. Creating VMs requires a Provisioned cluster with the KubeVirt add-on installed (KubeVirt itself requires a storage add-on).

Create a VM

  1. Go to KubernetesVMs and click Create VM.
  2. Select a Cluster with KubeVirt installed.
  3. Enter a VM Name (lowercase letters, numbers, hyphens).
  4. Pick an Image: Ubuntu 24.04 (default), Ubuntu 22.04, Debian 12, or Fedora 41.
  5. Set vCPUs (default 2) and Memory in MB (default 2048).
  6. Set Replicas: 1 creates a single VM; 2 or more creates a replica set of identical VMs.
  7. Optionally set a Data Disk size in GB (0 = none). A persistent volume claim named <vm>-data is created, with an optional storage class.
  8. Optionally check Expose via LoadBalancer and list comma-separated ports (default 80,443) to create a LoadBalancer Service for the VM.

VMs are created in the cluster's default namespace.

Log in to a VM

cloud-init sets the password ubuntu for the image's default user account. Change it after first login.

To reach the VM's console, open the cluster's Terminal tab (k9s) — or the terminal tab on the VM's own detail page:

  1. Type : then vmis to list running VM instances.
  2. Select a VM and press Shift+C for the serial console, or Shift+S for SSH.

Manage a VM

Open a VM from the VMs list. The header shows its phase, with Start/Stop (single VMs), a terminal button, and Delete (type the name to confirm). Tabs:

  • Overview — status, resources, volumes, and networks; replica scaling for replica sets; and a Load Balancer section to create or delete LoadBalancer Services for the VM. To reach a VM service from outside the cluster, you can also use a TCP route on an External IP.
  • Configuration — edit vCPUs, memory, and replicas in a form, or switch to the YAML editor. VMs deployed through GitOps are read-only here.
  • Backups — see below.
  • Terminal — the cluster k9s terminal, scoped for console access.

Back up a VM

The VM's Backups tab schedules snapshots of the VM:

  1. Pick a schedule preset — every 6 hours, every 12 hours, daily, or weekly.
  2. Set a Retain count; the oldest snapshots are deleted automatically beyond it.
  3. Optionally enable Export to S3 and provide an S3 endpoint, access key, secret key, and bucket. Each snapshot is then exported to s3://<bucket>/vm-backups/<vm>/. The credentials are stored as a secret inside your cluster.

Use Backup now for an immediate snapshot. Snapshots are listed with a delete action.

Restores are not available in the console — contact your administrator to restore from a snapshot or an S3 export.