Runj – OCI-kompatibles Toolkit zur Verwaltung von Containern basierend auf dem FreeBSD-Jail

Samuel Karp, ein Ingenieur bei Amazon, der die Bottlerocket-Linux-Distributions- und Containerisolationstechnologien für AWS entwickelt, entwickelt einen neuen Runtime-Runj, der auf FreeBSD-Jail-Umgebungen basiert, um den isolierten Start von Containern zu ermöglichen, die gemäß der OCI-Spezifikationsinitiative (Open Container) entwickelt wurden. . Das Projekt ist als experimentell positioniert, wird in Freizeit aus der Hauptarbeit entwickelt und befindet sich noch im Prototypenstadium. Der Code ist in Go geschrieben und wird unter der BSD-Lizenz vertrieben.

Nachdem die Entwicklung auf das richtige Niveau gebracht wurde, kann das Projekt möglicherweise auf ein Niveau wachsen, das es Ihnen ermöglicht, runj als Ersatz für die reguläre Laufzeit in Docker- und Kubernetes-Systemen zu verwenden und FreeBSD anstelle von Linux zum Ausführen von Containern zu verwenden. Von der OCI-Laufzeit werden derzeit Befehle implementiert, um Container zu erstellen, zu löschen, zu starten, die Beendigung zu erzwingen und den Status auszuwerten. Die Containerfüllung wird auf Basis der Standard- oder abgespeckten FreeBSD-Umgebung erstellt.

Da die OCI-Spezifikation FreeBSD noch nicht unterstützt, hat das Projekt eine Reihe zusätzlicher Parameter im Zusammenhang mit der Konfiguration von Jail und FreeBSD entwickelt, die zur Aufnahme in die Haupt-OCI-Spezifikation eingereicht werden sollen. Zur Verwaltung des Jails werden die Dienstprogramme jail, jls, jexec, kill und ps von FreeBSD verwendet, ohne direkt auf Systemaufrufe zuzugreifen. Zukünftige Pläne umfassen die Hinzufügung von Unterstützung für die Verwaltung von Ressourcenbeschränkungen über die Kernel-RCTL-Schnittstelle.

Zusätzlich zur eigenen Laufzeit wird im Projekt-Repository auch eine experimentelle Ebene für die Verwendung mit Laufzeitcontainerd (verwendet in Docker) entwickelt, die zur Unterstützung von FreeBSD modifiziert wurde. Es wird ein spezielles Dienstprogramm angeboten, um die FreeBSD-RootFS in ein OCI-kompatibles Container-Image zu konvertieren. Das erstellte Image kann später in Containerd importiert werden.

Source: opennet.ru

Kommentar hinzufügen