Skip to main content
Version: 3.0.0-alpha (Diátaxis)

Concepts — Virtual Machines

Architecture

Hikube provides virtual machines (VMs) through KubeVirt, a technology that runs VMs directly within the Kubernetes infrastructure. Each VM is managed as a native Kubernetes resource, offering seamless integration with the cloud-native ecosystem.


Terminology

TermDescription
VMInstanceKubernetes resource (apps.cozystack.io/v1alpha1) representing a virtual machine. Manages the lifecycle, disks, network, and cloud-init.
VMDiskKubernetes resource representing a virtual disk. Can be created from a Golden Image, an HTTP source, or empty.
Golden ImagePre-configured and optimized OS image for KubeVirt (AlmaLinux, Rocky, Debian, Ubuntu, etc.).
Instance TypeCPU/RAM resource profile defined by a series (S, U, M) and a size.
cloud-initAutomatic VM initialization mechanism at first boot (users, packages, scripts).
PortListNetwork exposure method that exposes specific ports with automatic firewalling on the dedicated IP (recommended).
WholeIPNetwork exposure method that assigns a dedicated public IP to the VM.

Instance types

Hikube offers three instance series with different CPU/RAM ratios:

SeriesCPU:RAM ratioUse case
S (Standard)1:2General workloads, shared CPU, burstable
U (Universal)1:4Balanced workloads, more memory
M (Memory)1:8Memory-intensive applications (caches, databases)

Each series ranges from small (1-2 vCPU) to 8xlarge (32-64 vCPU).


Storage

Two storage classes are available for VM disks:

ClassCharacteristicsUse case
localStorage on the physical node, maximum performanceEphemeral data, caches, testing
replicatedReplication across multiple nodes/regionsProduction data, high availability
tip

Use storageClass: replicated for system disks in production. local storage offers better I/O performance but does not survive a node failure.


Network and exposure

The PortList mode exposes only the specified ports via a dedicated IP for the VM with automatic firewalling on the Service. This is the recommended method because it:

  • Limits the attack surface
  • Assigns a dedicated IP to the VM
  • Supports standard TCP ports (22, 80, 443, etc.)

WholeIP

The WholeIP mode assigns a dedicated public IP with all ports open. Useful when:

  • The VM needs to be accessible on dynamic ports
  • A protocol requires a dedicated IP (VPN, SIP, etc.)
  • The VM serves as a gateway or VPN

VM lifecycle

Hikube VMs support:

  • Start/stop via the spec.runStrategy field
  • Live migration seamlessly during maintenance
  • Auto-restart in case of host node failure
  • Snapshots for point-in-time backup

Isolation and security

Each VM benefits from multi-level isolation:

  • Kernel isolation: KubeVirt runs each VM in its own QEMU/KVM process
  • Network isolation: distributed firewall between tenants
  • Storage isolation: each disk is a dedicated volume

Limits and quotas

ParameterLimit
vCPU per VMUp to 64 (S series s1.8xlarge)
RAM per VMUp to 256 GB (M series m1.8xlarge)
Disks per VMMultiple (system + data)
Disk sizeVariable, depending on tenant quota

Further reading

  • Overview: detailed service presentation
  • API Reference: complete list of VMInstance and VMDisk parameters