Die Ausgabe des Projekts Kata Containers 3.2 wurde veröffentlicht, welches einen Stack zur Ausführung von Containern mit Isolation durch vollständige Virtualisierungsmechanismen fördert. Das Projekt wurde von Intel und Hyper ins Leben gerufen, indem die Technologien Clear Containers und runV kombiniert wurden. Der Code des Projekts ist in den Programmiersprachen Go und Rust geschrieben und wird unter der Lizenz Apache 2.0 verbreitet. Die Entwicklung des Projekts wird von einer Arbeitsgruppe koordiniert, die unter der Schirmherrschaft der unabhängigen Organisation OpenStack Foundation gebildet wurde, an der Unternehmen wie Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE und ZTE teilnehmen.
Die Grundlage von Kata bildet ein Runtime, das die Erstellung kompakter virtueller Maschinen ermöglicht, die mit einem vollständigen Hypervisor betrieben werden, anstatt traditionelle Container zu verwenden, die einen gemeinsamen Linux-Kernel nutzen und mittels Namespaces und cgroups isoliert sind. Die Anwendung von virtuellen Maschinen ermöglicht ein höheres Maß an Sicherheit, das vor Angriffen schützt, die durch die Ausnutzung von Schwachstellen im Linux-Kernel verursacht werden.
Kata Containers ist auf die Integration in bestehende Containerisolierungsinfrastrukturen ausgerichtet und ermöglicht den Einsatz virtueller Maschinen zur Verbesserung des Schutzes traditioneller Container. Das Projekt bietet Mechanismen zur Gewährleistung der Kompatibilität von leichtgewichtigen virtuellen Maschinen mit verschiedenen Containerisolierungsinfrastrukturen, Containerorchestrierungsplattformen und Spezifikationen wie OCI (Open Container Initiative), CRI (Container Runtime Interface) und CNI (Container Networking Interface). Es stehen Integrationswerkzeuge für Docker, Kubernetes, QEMU und OpenStack zur Verfügung.
Die Integration mit Containerverwaltungsystemen erfolgt über eine Schicht, die die Containerverwaltung simuliert und über eine gRPC-Schnittstelle sowie einen speziellen Proxy auf den Verwaltungsagenten in der virtuellen Maschine zugreift. Innerhalb der von einem Hypervisor gestarteten virtuellen Umgebung wird ein speziell optimierter Linux-Kernel verwendet, der nur die minimal notwendige Funktionalität enthält.
Als Hypervisor wird Dragonball Sandbox (KVM-Edition, optimiert für Container) zusammen mit den Werkzeugen QEMU, Firecracker und Cloud Hypervisor unterstützt. Die Systemumgebung beinhaltet einen Initialisierungsdaemon und einen Agenten. Der Agent ermöglicht die Ausführung bestimmter benutzerdefinierter Container-Images im OCI-Format für Docker und CRI für Kubernetes. Bei gleichzeitiger Verwendung mit Docker wird für jeden Container eine separate virtuelle Maschine, d.h. die Umgebung, die über den Hypervisor läuft, wird für das verschachtelte Starten von Containern verwendet.

Zur Reduzierung des Speicherverbrauchs kommt der DAX-Mechanismus (Direkter Zugriff auf das Dateisystem ohne Seiten-Cache und ohne Verwendung von Blockgeräteschichten) zum Einsatz, während KSM (Kernel Samepage Merging) zur Deduplication identischer Speicherbereiche eingesetzt wird. Dies ermöglicht eine gemeinsame Nutzung der Ressourcen des Hosts und die Verbindung eines gemeinsamen Systemumgebungs-Templates zu verschiedenen Gastsystemen.
In der neuen Version:
- Neben der Unterstützung der Architektur AMD64 (x86_64) werden Releases für die Architekturen ARM64 (Aarch64) und s390 (IBM Z) bereitgestellt. Die Unterstützung für die Architektur ppc64le (IBM Power) befindet sich in der Entwicklung.
- 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 nutzt. Nydus unterstützt das On-the-Fly-Laden von Images (lädt nur bei Bedarf), ermöglicht die Deduplication von redundanten Daten und kann verschiedene Backends für die tatsächliche Speicherung verwenden. Es wird POSIX-Kompatibilität bereitgestellt (ähnlich wie bei Composefs, die Nydus-Implementierung kombiniert die Funktionen von OverlayFS mit EROFS oder einem FUSE-Modul).
- Im Hauptprojekt Kata Containers ist jetzt der Virtual Machine Manager Dragonball integriert, der künftig im gemeinsamen Repository weiterentwickelt wird.
- Das Tool kata-ctl hat eine Debugging-Funktion hinzugefügt, um eine Verbindung zur virtuellen Maschine aus der Host-Umgebung herzustellen.
- Die Funktionen 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, die Daten, Speicher und Ausführungsstatus zum Schutz im Falle einer Kompromittierung der Host-Umgebung oder des Hypervisors verschlüsselt.
- In Runtime-rs wurde ein Verwaltungssystem für Geräte hinzugefügt, die in Containern oder Sandbox-Umgebungen verwendet werden. Die Unterstützung für vfio, Block-, Netzwerk- und andere Gerätetypen ist gewährleistet.
- Kompatibilität mit OCI Runtime 1.0.2 und Kubernetes 1.23.1 wurde sichergestellt.
- Für den Linux-Kernel wird empfohlen, die Version 6.1.38 mit Patches zu verwenden.
- Die Entwicklung wurde von Jenkins zur Nutzung von GitHub Actions umgestellt.
Quelle: opennet.ru
