Skip to main content
Reproducible numbers for the claim: warm-fork a live multi-VM Kubernetes cluster in well under a second, with TLS sessions surviving and the source cluster still answering. Every number below is an integration-test assertion, not a one-off benchmark paste. The budget constants live in crates/k7d/src/latency.rs (the single source of truth, imported by the tests) and are documented in LATENCY_BUDGETS.md. If a number here drifts from those files, trust the tests. Budgets are set at roughly 2× the typical observed value.

Hardware

One pinned bare-metal node (~€40/month Hetzner) used for all figures:

Headline results (enforced + measured)

Full budget table

Reproduce

On a node with the repo and toolchain installed:
The inner-k3s test prints a line like:

How the fast path was won

Before the block-rootfs work, cluster pods carried a virtiofs share for the k3s hostPath — so every fork forced a full memory copy of 3 × ~3.2 GiB, landing at ~2 s typical. Moving read-only hostPath mounts to cached erofs images on virtio-blk (zero virtiofs shares) let every member fork MAP_PRIVATE + dirty-page CoW: ~105 ms under a 1 s budget. The share-less fork prep also preserves the source’s vsock CID, so kubectl exec against the source still works after adopt/fork.

Comparison (honest)

What we are not claiming

  • Firecracker-beating cold boot (we boot once, then fork).
  • “<5 MB per instance” density (our guests run kubelet).
  • That the virtiofs era (~2 s full-copy) was the intended steady state — it is now the explicit fallback for read-write hostPath only.