Runj — OCI-kompatibles Werkzeug zur Verwaltung von Containern basierend auf FreeBSD Jail

Samuel Karp, Ingenieur bei Amazon, der an der Entwicklung des Linux-Distributions Bottlerocket und Technologien zur Containerisolierung fĂŒr AWS arbeitet, entwickelt auf der Basis von Jail-Umgebungen in FreeBSD ein neues Runtime namens runj, um eine isolierte AusfĂŒhrung von Containern zu gewĂ€hrleisten, die gemĂ€ĂŸ der OCI-Spezifikation (Open Container Initiative) gestaltet sind. Das Projekt wird als experimentell positioniert und wird in der Freizeit außerhalb der Hauptarbeit entwickelt und befindet sich derzeit in der Prototypenphase. Der Code ist in Go geschrieben und wird unter der BSD-Lizenz verbreitet.

Sobald die Entwicklung das erforderliche Niveau erreicht hat, könnte das Projekt potenziell auf ein Niveau wachsen, das die Nutzung von runj als Ersatz fĂŒr das Standard-Runtime in Docker- und Kubernetes-Systemen ermöglicht, wobei FreeBSD anstelle von Linux zur AusfĂŒhrung der Container verwendet wird. Derzeit sind in der OCI-Runtime Befehle zur Erstellung, Löschung, AusfĂŒhrung, erzwungenen Beendigung und Statusbewertung von Containern implementiert. Der Inhalt des Containers wird auf Basis einer Standard- oder abgespeckten FreeBSD-Umgebung erstellt.

Da die OCI-Spezifikation derzeit keine UnterstĂŒtzung fĂŒr FreeBSD bietet, wurde im Rahmen des Projekts eine Reihe zusĂ€tzlicher Parameter entwickelt, die mit der Konfiguration von Jail und FreeBSD zusammenhĂ€ngen und die zur Aufnahme in die Hauptspezifikation der OCI vorgesehen sind. FĂŒr die Verwaltung von Jail werden die Utilities jail, jls, jexec, kill und ps aus FreeBSD verwendet, ohne direkt auf Systemaufrufe zuzugreifen. FĂŒr die Zukunft ist geplant, UnterstĂŒtzung fĂŒr die Verwaltung von RessourceneinschrĂ€nkungen ĂŒber die RCTL-Schnittstelle des Kernels hinzuzufĂŒgen.

Neben der eigenen Runtime wird im Repository des Projekts auch eine experimentelle Schicht entwickelt, die zusammen mit der Runtime containerd (verwendet in Docker) genutzt wird, die modifiziert wurde, um FreeBSD zu unterstĂŒtzen. Um das rootfs von FreeBSD in ein OCI-kompatibles Container-Image umzuwandeln, wird ein spezielles Utility angeboten. Das erstellte Image kann spĂ€ter in containerd importiert werden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4