kube-vm.io

Run Kubernetes-ready virtual machines with speed and control.

kube-vm is a focused VM runtime and toolchain: KVM-backed compute, predictable networking, snapshot support, ergonomic CLI workflows, and an integrated WebUI for control-plane visibility. It natively supports various VirtIO devices, including block, net, console, and vsock.

Fast Boot Paths Tuned loading and VM orchestration for iterative local development loops.
CLI + WebUI Work from shell or browser with a coherent set of VM operations and diagnostics.
Snapshot-Aware Capture and restore VM state to speed up repeatable test scenarios.

Under the hood

Follow a VM from its first instruction to a portable checkpoint. Seven illustrated deep dives, with step-by-step animations you can pause and explore.

  1. Boot directly from a kernelFrom a Linux bzImage to guest RAM, boot parameters, and the first vCPU.
  2. vCPUs, MMIO & virtio queuesThe execution loop and the shared-memory contract behind guest I/O.
  3. Virtio block & copy-on-writeTrace a disk request, overlay allocation, and reads from an immutable base.
  4. Virtio net, TAP & NATFollow Ethernet frames into the host and packets out through NAT.
  5. Pause, checkpoint & restoreWhat is saved, how to move both artifacts, and where portability ends.
  6. Layer 2 & kube-vm-switchTCX/eBPF forwarding, registered MAC ownership, and the TAP integration boundary.
  7. From Docker image to VM diskExport a root filesystem, create ext4, and supply a kernel separately.

Core kube-vm Features

Infrastructure capabilities that make virtualized Kubernetes experimentation practical.

KVM Virtualization Engine

Native Linux virtualization with architecture-aware validation and boot loaders for stable VM execution.

Disk and COW Storage

Base disk layering and copy-on-write behavior for efficient VM provisioning and reduced image duplication.

Snapshot and Restore

Persist VM state and recover quickly for integration tests, debugging checkpoints, and deterministic demos.

VirtIO Device Stack

Block, network, console, MMIO, and queue abstractions to support performant guest I/O behavior.

NAT and VM Networking

Host-side attachment and packet routing support to expose services and maintain predictable connectivity.

Resource and Host Stats

Collect VM and task-level runtime metrics to monitor CPU usage and runtime health.

Copy-on-Write Disk Flow

kube-vm boots from an immutable base disk while persisting mutations in a writable CoW overlay.

Guest VM filesystem I/O CoW Disk Overlay updated blocks writes land here Base Disk immutable image original blocks read request write request read miss fallback data read hit returned Read Resolution Logic 1) VM issues read(block=N) -> check CoW overlay first. 2) If block N exists in CoW, return updated data from CoW. 3) If block N is not in CoW, read original data from base disk. 4) All writes create/update block N in CoW; base disk remains unchanged.
Read path Write path Fallback path

CLI Workflow

The kube-vm CLI is designed for scriptability and repeatable VM lifecycle automation.

Lifecycle Commands

Create, start, stop, pause, and inspect VMs quickly from terminal-first workflows.

Identity and Listing

UID utilities and list operations simplify tracking active workloads and automation targets.

Config-Driven VM Specs

Builder-based configuration for disks, block devices, and snapshot metadata keeps environments reproducible.

Define VM config → Launch via kube-vmctl → Observe + snapshot → Restore for next run

VM Image Build Pipeline

kube-vm images can be assembled from Dockerfiles and container builds, then exported as raw VM disk files for fast, repeatable provisioning.

Dockerfile as Source of Truth

Define packages, system configuration, and bootstrap assets in Dockerfiles so image construction stays versioned and reviewable.

Container Build Stage

Build the root filesystem in a containerized environment to make image creation deterministic across developer machines and CI runners.

Raw Disk Output

Convert the resulting filesystem artifact into raw disk images that kube-vm can boot directly as base disks or templates.

Dockerfile definition → Containerized build → Raw disk export → Repeatable VM boot images

WebUI Experience

Browser-based VM operations and console tooling when you want observability without leaving the desktop.

Frontend and Console Views

Dedicated UI routes expose VM status surfaces and interactive console features.

Console Session Management

Console manager components coordinate stream handling for VM interaction from the browser.

HTTP Helper Layer

Lightweight server-side handlers and helper utilities support robust request/response behavior.

Animated Startup Terminal

Interactive CLI demos: fast Ubuntu boot, template discovery, and detached lifecycle with pause/resume networking behavior.

terminal • kube-vmctl start dev-node-01

Start experimenting in minutes.

Use the CLI to boot your first VM, then open the WebUI for live interaction and console visibility.

kube-vmctl start dev-node-01 --cpus 2 --memory 4096