Die Veröffentlichung von Kata Containers 3.4 mit Virtualisierungsbasierter Isolierung

Die Veröffentlichung von Kata Containers 3.4 wurde bekannt gegeben, die eine Plattform für die Ausführung von Containern unter Verwendung einer vollwertigen Virtualisierungsisolation entwickelt. Das Projekt wurde von den Unternehmen Intel und Hyper aus der Zusammenlegung der Technologien Clear Containers und runV ins Leben gerufen. Der Code des Projekts ist in den Programmiersprachen Go und Rust geschrieben und wird unter der Lizenz Apache 2.0 verbreitet. Die Weiterentwicklung des Projekts wird von einer Arbeitsgruppe betreut, die unter der Schirmherrschaft der unabhängigen Organisation OpenInfra Foundation gegründet 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 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.

Die Veröffentlichung von Kata Containers 3.4 mit Virtualisierungsbasierter Isolierung

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.

Für den Zugriff auf Container-Images wird das Nydus-Dateisystem verwendet, das Inhaltsadressierung für eine effiziente Zusammenarbeit mit Standard-Images nutzt. Nydus unterstützt das On-Demand-Laden von Images (lädt nur bei Bedarf), bietet die Deduplication von sich wiederholenden Daten und kann verschiedene Backends für die tatsächliche Speicherung nutzen. Es wird Kompatibilität mit POSIX bereitgestellt (ähnlich wie bei Composefs kombiniert die Nydus-Implementierung die Funktionen von OverlayFS mit EROFS oder einem FUSE-Modul).

In der neuen Version:

  • Im Dragonball-Manager für virtuelle Maschinen wurde die Unterstützung für das Hot-Plugging von GPUs hinzugefügt, sowie die Möglichkeit, MTRR (Memory-Type Range Registers) zum Zugriff auf Bereiche des physischen Speichers zu verwenden.
  • Im runtime-rs, der Implementierung des Runtimes in Rust, wird eine vollständige Verarbeitung von Threads, pid und tid sichergestellt, und der qemu-Treiber, der auf Systemen mit der s390-Architektur (IBM Z) verwendet wird, wurde überarbeitet.
  • Der Dienst zum Erstellen von Snapshots unter Verwendung des Nydus-FS wurde aktualisiert.
  • Im Container-Image-Verwaltungsdienst wurde die Effizienz im Umgang mit Speicher erhöht.
  • Die Standardmontage der Hierarchie cgroups-v2 während des Bootvorgangs über systemd wurde aktiviert.
  • Die Möglichkeit zur Definition eines Timeouts zur Begrenzung der Zeit zum Abrufen sehr großer Images in Gastbetriebssystemen wurde hinzugefügt.
  • Die Unterstützung für den OPA-Agenten (Open Policy Agent) wurde für die Architekturen ppc64le und s390x hinzugefügt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4