Skip to content

Hypervisors

Introduction

Kata Containers supports multiple hypervisors. This document provides a very high level overview of the available hypervisors, giving suggestions as to which hypervisors you may wish to investigate further.

Note:

This document is not prescriptive or authoritative:

  • It is up to you to decide which hypervisors may be most appropriate for your use-case.
  • Refer to the official documentation for each hypervisor for further details.

Types

Hypervisor Written in Architectures GPU Support Intel TDX AMD SEV-SNP
Cloud Hypervisor rust aarch64, x86_64 ❌ ❌ ❌
Firecracker rust aarch64, x86_64 ❌ ❌ ❌
QEMU C all ✅ ✅ ✅
Dragonball rust aarch64, x86_64 ❌ ❌ ❌
StratoVirt rust aarch64, x86_64 ❌ ❌ ❌

Each Kata runtime is configured for a specific hypervisor through the runtime's configuration file. For example:

/opt/kata/share/defaults/kata-containers/configuration.toml
[hypervisor.qemu]
path = "/opt/kata/bin/qemu-system-x86_64"
/opt/kata/share/defaults/kata-containers/configuration-clh.toml
[hypervisor.clh]
path = "/opt/kata/bin/cloud-hypervisor"

Cloud Hypervisor

Cloud Hypervisor is a more modern hypervisor written in Rust.

Firecracker

Firecracker is a minimal and lightweight hypervisor created for the AWS Lambda product.

QEMU

QEMU is the best supported hypervisor for NVIDIA-based GPUs and for confidential computing use-cases (such as Intel TDX and AMD SEV-SNP). Runtimes that use this are normally named kata-qemu-nvidia-gpu-*. The Kata project focuses primarily on QEMU runtimes for GPU support.

Dragonball

Dragonball is a special hypervisor created by the Ant Group that runs in the same process as the Rust-based containerd shim.