Requirements
- Linux amd64 / x86_64 host with KVM — same ISA (
amd64is the Debian name; release tarballs usex86_64)./dev/kvmmust exist. Bare metal or a cloud instance with nested virtualization both work. k7d does not build or run on macOS / Windows / ARM. - root — the daemon manages TAP devices, bridges, and
/run/k7d/. - Optional: k3s, if you want pods scheduled as k7d microVMs via
runtimeClassName: k7.
Install from a release tarball
Each release ships a self-contained tarball with the daemon, the containerd shim, the guest kernel, the guest initramfs, and an installer.- copies
k7dandcontainerd-shim-k7-v1to/usr/local/bin(override with--prefix DIR), - copies the guest kernel (
vmlinux) and initramfs to/usr/local/share/k7d, - writes a
k7d.servicesystemd unit that pointsK7D_KERNEL/K7D_INITRDat those assets, setsRUST_LOG=info, and raisesLimitNOFILEto 524288 (the 1024 soft default is far too low for multi-cluster forks), - starts the daemon and waits for the control socket.
Registering with k3s
If the host runs k3s and you wantruntimeClassName: k7, add
--with-k3s:
k7 runtime in the k3s containerd config template,
restarts k3s, and applies the RuntimeClass. The
RuntimeClass guide explains each step if you
prefer to do it by hand — or need to know why the config must not set
BinaryName.
Build from source
You need Rust and Docker (the guest rootfs is built in a container).make release produces the same tarball layout under dist/ — run
sudo ./install.sh from there, or start the daemon directly for a quick
look:
Fork your first cluster
The repository ships a demo that boots a live 3-VM k3s cluster once, then forks it into parallel branches, scores them, keeps the winner, and prunes the rest — printing the fork wall-clock as it goes./run/k7d/k7d.sock — the same verbs your own trainer would call. See the
daemon API for the full verb list and the
GRPO guide for wiring it into a training loop.
Next steps
Cluster mode
Create or adopt an N-node k3s cluster and fork it without agent restarts.
GRPO / tree search
fork_batch, protect, prune, auto_evict under RAM budgets.
RuntimeClass k7
Schedule Kubernetes pods as k7d microVMs.
How CoW fork works
Why a fork costs ~5 ms and dirty pages, not full guest RAM.
