Die Veröffentlichung des Kata Containers 3.2 Projekts, das einen Stack zur Ausführung von Containern unter Verwendung von vollständiger Virtualisierungsisolation entwickelt, ist jetzt verfügbar. Das Projekt wurde von Intel und Hyper ins Leben gerufen und kombiniert Technologien aus Clear Containers und runV. Der Code des Projekts ist in den Programmiersprachen Go und Rust geschrieben und steht unter der Lizenz Apache 2.0. Die Weiterentwicklung des Projekts wird von einer Arbeitsgruppe unter der Schirmherrschaft der unabhängigen Organisation OpenStack Foundation geleitet, an der Unternehmen wie Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE und ZTE teilnehmen.
Die Grundlage von Kata bildet eine Runtime, die es ermöglicht, kompakte virtuelle Maschinen zu erstellen, die unter Verwendung eines vollständigen Hypervisors betrieben werden, anstelle von traditionellen Containern, die einen gemeinsamen Linux-Kernel nutzen und durch Namespaces und cgroups isoliert sind. Die Anwendung virtuelle Maschinen ermöglicht ein höheres Sicherheitsniveau, das vor Angriffen schützt, die durch die Ausnutzung von Schwachstellen im Linux-Kernel verursacht werden.
Kata Containers ist auf die Integration in bestehende Container-Isolierungsinfrastrukturen ausgerichtet und ermöglicht die Verwendung solcher virtuellen Maschinen zur Erhöhung der Sicherheit traditioneller Container. Das Projekt bietet Mechanismen zur Sicherstellung der Kompatibilität von leichten virtuellen Maschinen mit verschiedenen Container-Isolierungsinfrastrukturen, Container-Orchestrierungsplattformen und Spezifikationen wie OCI (Open Container Initiative), CRI (Container Runtime Interface) und CNI (Container Networking Interface). Werkzeuge zur Integration mit Docker, Kubernetes, QEMU und OpenStack sind verfügbar.
Die Integration mit Containerverwaltungsystemen erfolgt über eine Schicht, die die Containerverwaltung simuliert, die über eine gRPC-Schnittstelle und einen speziellen Proxy auf den verwaltenden Agenten in der virtuellen Maschine zugreift. Innerhalb der virtuellen Umgebung, die vom Hypervisor gestartet wird, kommt ein speziell optimierter Linux-Kernel zum Einsatz, der nur den minimalen Satz notwendiger Funktionen enthält.
Als Hypervisor wird Dragonball Sandbox (KVM-Edition, optimiert für Container) mit den Werkzeugen QEMU sowie Firecracker und Cloud Hypervisor unterstützt. Die Systemumgebung umfasst einen Initialisierungsdaemon und einen Agenten (Agent). Der Agent sorgt für die Ausführung benutzerdefinierter Container-Images im OCI-Format für Docker und im CRI-Format für Kubernetes. Bei der Verwendung mit Docker wird für jeden Container eine separate eine virtuelle Maschine, d.h. die über dem Hypervisor gestartete Umgebung wird für das verschachtelte Starten von Containern verwendet.

Zur Reduzierung des Speicherverbrauchs wird der DAX-Mechanismus (direkter Zugriff auf das Dateisystem, um den Seiten-Cache ohne Blockgeräte-Ebene zu umgehen) eingesetzt, und zur Deduplizierung identischer Speicherbereiche wird die KSM-Technologie (Kernel Samepage Merging) genutzt, die es ermöglicht, die Ressourcen des Host-Systems gemeinsam zu nutzen und ein gemeinsames Vorlagen-Sytemumfeld an verschiedene Gastsysteme anzuschließen.
In der neuen Version:
- Neben der Unterstützung der AMD64-Architektur (x86_64) wird die Erstellung von Releases für die ARM64-Architektur (Aarch64) und s390 (IBM Z) sichergestellt. Die Unterstützung der ppc64le-Architektur (IBM Power) ist in Arbeit.
- Für den Zugriff auf Container-Images wird das Dateisystem Nydus 2.2.0 verwendet, das eine inhaltsbasierte Adressierung für eine effiziente Zusammenarbeit mit Standard-Images ermöglicht. Nydus unterstützt das On-Demand-Laden von Images (lädt nur bei Bedarf), sorgt für die Deduplizierung wiederkehrender Daten und kann unterschiedliche Backends für die tatsächliche Speicherung nutzen. Es wird Kompatibilität mit POSIX bereitgestellt (analog zu Composefs, die Nydus-Implementierung kombiniert die Möglichkeiten von OverlayFS mit EROFS oder einem FUSE-Modul).
- In die Hauptversion des Kata Containers-Projekts wurde der Virtual Machine Manager Dragonball integriert, der jetzt im gemeinsamen Repository weiterentwickelt wird.
- Das Dienstprogramm kata-ctl wurde um eine Debugging-Funktion zur Verbindung mit der virtuellen Maschine aus der Host-Umgebung erweitert.
- Die Möglichkeiten zur Verwaltung von GPUs wurden erweitert, und die Unterstützung für das Durchreichen von GPUs in Container für vertrauliche Berechnungen (Confidential Container) wurde hinzugefügt, bei denen die Daten-, Speicher- und Ausführungszustandsverschlüsselung zum Schutz im Falle einer Kompromittierung der Host-Umgebung oder des Hypervisors gewährleistet ist.
- Im Runtime-rs wurde ein Subsystem zur Verwaltung von Geräten hinzugefügt, die in Containern oder Sandbox-Umgebungen verwendet werden. Die Unterstützung für die Arbeit mit vfio, Block-, Netzwerk- und anderen Gerätetypen ist gewährleistet.
- Die Kompatibilität mit OCI Runtime 1.0.2 und Kubernetes 1.23.1 wurde sichergestellt.
- Für den Linux-Kernel wird die Version 6.1.38 mit Patches empfohlen.
- Die Entwicklung wurde von Jenkins als kontinuierliche Integrationslösung auf GitHub Actions umgestellt.
Quelle: opennet.ru
