Veröffentlichung von Kata Containers 3.0 mit virtualisierungsbasierter Isolation

Nach zweijähriger Entwicklungszeit wurde die Veröffentlichung des Kata Containers 3.0-Projekts veröffentlicht, das einen Stapel zur Organisation der Ausführung von Containern mithilfe von Isolation basierend auf vollwertigen Virtualisierungsmechanismen entwickelt. Das Projekt wurde von Intel und Hyper durch die Kombination von Clear Containers und runV-Technologien erstellt. Der Projektcode ist in Go und Rust geschrieben und wird unter der Apache 2.0-Lizenz vertrieben. Die Entwicklung des Projekts wird von einer Arbeitsgruppe überwacht, die unter der Schirmherrschaft der unabhängigen Organisation OpenStack Foundation gegründet wurde, zu der Unternehmen wie Canonical, China Mobile, Dell/EMC, EasyStack, Google, Huawei, NetApp, Red Hat, SUSE und ZTE gehören .

Das Herzstück von Kata ist die Laufzeit, die die Möglichkeit bietet, kompakte virtuelle Maschinen zu erstellen, die mit einem vollständigen Hypervisor ausgeführt werden, anstatt herkömmliche Container zu verwenden, die einen gemeinsamen Linux-Kernel verwenden und mithilfe von Namespaces und Kontrollgruppen isoliert sind. Durch den Einsatz virtueller Maschinen können Sie ein höheres Maß an Sicherheit erreichen, das vor Angriffen schützt, die durch die Ausnutzung von Schwachstellen im Linux-Kernel verursacht werden.

Kata Containers konzentriert sich auf die Integration in bestehende Container-Isolierungsinfrastrukturen mit der Möglichkeit, ähnliche virtuelle Maschinen zu verwenden, um den Schutz herkömmlicher Container zu verbessern. Das Projekt stellt Mechanismen bereit, um die Kompatibilität leichtgewichtiger virtueller Maschinen mit verschiedenen Container-Isolations-Infrastrukturen, Container-Orchestrierungsplattformen und Spezifikationen wie OCI (Open Container Initiative), CRI (Container Runtime Interface) und CNI (Container Networking Interface) sicherzustellen. Für die Integration mit Docker, Kubernetes, QEMU und OpenStack stehen Tools zur Verfügung.

Veröffentlichung von Kata Containers 3.0 mit virtualisierungsbasierter Isolation

Die Integration mit Containerverwaltungssystemen wird mithilfe einer Schicht erreicht, die die Containerverwaltung simuliert und über die gRPC-Schnittstelle und einen speziellen Proxy auf den Verwaltungsagenten in der virtuellen Maschine zugreift. Innerhalb der virtuellen Umgebung, die vom Hypervisor gestartet wird, kommt ein speziell optimierter Linux-Kernel zum Einsatz, der nur das Minimum an notwendigen Fähigkeiten enthält.

Als Hypervisor unterstützt es die Verwendung von Dragonball Sandbox (eine für Container optimierte KVM-Edition) mit dem QEMU-Toolkit sowie Firecracker und Cloud Hypervisor. Die Systemumgebung umfasst einen Initialisierungsdämon und einen Agenten. Der Agent ermöglicht die Ausführung benutzerdefinierter Container-Images im OCI-Format für Docker und CRI für Kubernetes. In Verbindung mit Docker wird für jeden Container eine eigene virtuelle Maschine erstellt, d. h. Die auf dem Hypervisor laufende Umgebung wird für den verschachtelten Start von Containern verwendet.

Veröffentlichung von Kata Containers 3.0 mit virtualisierungsbasierter Isolation

Um den Speicherverbrauch zu reduzieren, wird der DAX-Mechanismus verwendet (direkter Zugriff auf das Dateisystem, Umgehen des Seitencaches ohne Verwendung der Blockgeräteebene), und um identische Speicherbereiche zu deduplizieren, wird die KSM-Technologie (Kernel Samepage Merging) verwendet, die es Ihnen ermöglicht Um die gemeinsame Nutzung von Hostsystemressourcen zu organisieren und eine Verbindung zu verschiedenen Gastsystemen herzustellen, verwenden Sie eine gemeinsame Systemumgebungsvorlage.

In der neuen Version:

  • Es wird eine alternative Laufzeit (runtime-rs) vorgeschlagen, die das Füllen von Containern bildet und in der Sprache Rust geschrieben ist (die zuvor bereitgestellte Laufzeit wurde in der Sprache Go geschrieben). Runtime ist mit OCI, CRI-O und Containerd kompatibel und kann daher mit Docker und Kubernetes verwendet werden.
  • Es wurde ein neuer Dragonball-Hypervisor vorgeschlagen, der auf KVM und Rust-VMM basiert.
  • Unterstützung für die Weiterleitung des Zugriffs auf die GPU mithilfe von VFIO hinzugefügt.
  • Unterstützung für cgroup v2 hinzugefügt.
  • Die Unterstützung für das Ändern von Einstellungen ohne Änderung der Hauptkonfigurationsdatei wurde implementiert, indem Blöcke in separaten Dateien im Verzeichnis „config.d/“ ersetzt wurden.
  • Zu den Rust-Komponenten gehört eine neue Bibliothek zum sicheren Arbeiten mit Dateipfaden.
  • Die virtiofsd-Komponente (geschrieben in C) wurde durch virtiofsd-rs (geschrieben in Rust) ersetzt.
  • Unterstützung für Sandboxing von QEMU-Komponenten hinzugefügt.
  • QEMU verwendet die io_uring API für asynchrone E/A.
  • Unterstützung für Intel TDX-Erweiterungen (Trusted Domain Extensions) wurde für QEMU und Cloud-Hypervisor implementiert.
  • Aktualisierte Komponenten: QEMU 6.2.0, Cloud-Hypervisor 26.0, Firecracker 1.1.0, Linux-Kernel 5.19.2.

Source: opennet.ru

Kommentar hinzufügen