Kata Containers ist ein quelloffenes, von der CNCF gehostetes Projekt, das Container in leichtgewichtigen virtuellen Maschinen ausführt. Jeder Container bekommt seine eigene VM mit eigenem Kernel — die Isolationsstärke einer Virtualisierung bei der Bedienbarkeit eines Containers.
Herkunft
Kata Containers entstand im Dezember 2017 aus dem Zusammenschluss von Intel Clear Containers und Hyper.sh runV. 2019 wurde das Projekt an die CNCF übergeben und ist seitdem dort angesiedelt. Der Name „Kata" stammt aus den japanischen Kampfkünsten und steht für „Form" oder „Haltung".
Wie Kata funktioniert
Kata ist als OCI-kompatible Container-Runtime einsetzbar: containerd, CRI-O oder Docker rufen den kata-runtime auf, der für jeden Container eine minimale VM startet. Als Hypervisor dienen je nach Plattform QEMU, Cloud Hypervisor oder Firecracker. Die Container-Workload läuft dann im Gast-Kernel dieser VM:
- Die runc-typischen Risiken durch geteilte Kernel entfallen — ein Angriff auf den Gast-Kernel bleibt in der VM.
- Der Gast ist schlank: ein Mini-Linux, das nur das ausführt, was der Container braucht.
- Nach außen bleibt alles standardkonform: Images, OCI-Spezifikation, Container-Netzwerk (CNI).
Kubernetes-Anbindung
In Kubernetes wird Kata über eine RuntimeClass eingebunden. Das Kubelet wählt dann pro Pod den Runtime-Handler aus, z. B. kata neben dem Standard-containerd-Handler. So lassen sich sensible Mandanten isoliert fahren, während normale Pods weiter runc nutzen.
Abgrenzung
- Gegenüber gVisor: Kata bietet volle Syscall-Kompatibilität (echter Kernel in der VM), kostet aber etwas mehr Overhead durch den VM-Start.
- Gegenüber klassischen VMs: Kata startet schneller und dichter, weil die VMs minimal gehalten sind und standardisierte Container-Tools weitergenutzt werden.
Mehr dazu: Sandbox, Container-Runtime, Firecracker, Hypervisor.