This episode compares the Kata Containers VMM backends: QEMU as the default with broad compatibility, Cloud Hypervisor which is modern and fast, Firecracker which is minimalist, and Dragonball which is built into the Rust runtime. You'll learn the feature-versus-speed trade-offs and when to choose each backend.

In episode 5 you saw that configuration.toml has a per-hypervisor section. Episode 6 answers the question that follows: which backend should you use? Kata Containers isn't tied to a single VMM — it's designed as a runtime that uses the VMM as a plugin. The VMM choice determines your microVM's character: how fast it boots, which features are available, and how much overhead you have to pay.
This isn't a "pick once, keep forever" decision. RuntimeClass (episode 4) lets you run different backends for different workloads in a single cluster. Understanding the trade-offs lets you choose with reason, not by chance.
QEMU is the oldest and most complete VMM Kata supports. It's the default for the kata RuntimeClass — the safest choice to start with because of its broadest compatibility. QEMU supports a wide range of devices, architectures, and features that other VMMs don't necessarily have.
Choose QEMU when you need full flexibility, use features that only exist in QEMU (such as confidential containers), or when you're not yet sure which backend fits. For a first trial, QEMU is the right answer.
Cloud Hypervisor (developed by the Cloud Hypervisor Project community) is a VMM designed specifically for cloud-native workloads. It only supports modern 64-bit Linux workloads with virtio devices — without exposing legacy devices. The kata-clh RuntimeClass points to this backend.
Choose Cloud Hypervisor for general workloads on large clusters that prioritize boot speed and low overhead, and when you don't need QEMU's exotic features. Many modern deployments use kata-clh as the default because of its feature-to-speed balance.
Firecracker is the VMM AWS built to power Lambda and Fargate. Its philosophy: as few devices as possible, maximum security. The kata-fc RuntimeClass uses this backend.
Choose Firecracker for the lightest, untrusted sandbox workloads — for example, sandboxes executing unknown code (covered in episode 19). If a workload needs a GPU or special devices, Firecracker isn't the choice.
Dragonball is the VMM built directly into Kata's Rust runtime (runtime-rs). It's an in-process VMM — no separate VMM binary like QEMU. This is Kata's strategic direction: the Rust-first architecture culminating in Kata 4.0.0.
Choose Dragonball when you use the Rust runtime (runtime-rs) and want the most integrated, lightweight Kata experience. This is the most interesting backend to keep an eye on — in episode 17 we'll discuss how Dragonball becomes the center of Kata 4.0's performance strategy.
A practical summary for decision making:
| Aspect | QEMU | Cloud Hypervisor | Firecracker | Dragonball |
|---|---|---|---|---|
| RuntimeClass | kata | kata-clh | kata-fc | via runtime-rs |
| Boot speed | Medium | Fast | Very fast | Fast |
| Footprint | Large | Small | Very small | Small |
| Device features | Widest | Medium | Limited | Medium |
| Confidential computing | Yes | Partial | No | No |
| Best fit | General/comprehensive | Cloud-native workloads | Lightweight sandbox | Rust runtime |
Remember: this table is a starting point. The exact boot time and overhead numbers depend heavily on the kernel, hardware, and workload. Episode 20 will show how to measure it yourself.
Tip
You don't have to choose one backend for the whole cluster. RuntimeClass lets different workloads use different backends: kata for general workloads, kata-fc for lightweight untrusted sandboxes, and kata-clh as a balanced default.
To see which backend a running microVM is using:
kata-runtime kata-env | grep -i hypervisor
kubectl get pod kata-demo -o jsonpath='{.spec.runtimeClassName}{"\n"}'kata-runtime kata-env | grep -i hypervisor displays the active hypervisor on the node. kubectl get pod ... -o jsonpath='{.spec.runtimeClassName}' shows the pod's RuntimeClass — from there you know which backend is being used.
What you should take away:
kata): default, broadest compatibility, most complete features.kata-clh): modern, fast, balanced for general workloads.kata-fc): minimalist, fastest boot, for lightweight sandboxes.In the next episode, episode 7, we'll cover networking — how Kata integrates with CNI, the role of virtio-net inside the guest, the bridge/macvlan/host-device plugin options, multi-interface, and experimental options like disableNewNetns. Networking is the part that most often confuses people when moving from regular containers to microVMs.