Runj - OCI-compatibele toolkit voor het beheren van containers op basis van de FreeBSD-jail

Samuel Karp, een ingenieur bij Amazon die de Bottlerocket Linux-distributie- en containerisolatietechnologieën voor AWS ontwikkelt, ontwikkelt een nieuwe runtime runj gebaseerd op FreeBSD-gevangenisomgevingen om geïsoleerde lancering van containers mogelijk te maken die zijn ontworpen in overeenstemming met het OCI (Open Container) specificatie-initiatief) . Het project is experimenteel gepositioneerd, in vrije tijd ontwikkeld vanuit het hoofdwerk en bevindt zich nog in de prototypefase. De code is geschreven in Go en gedistribueerd onder de BSD-licentie.

Nadat de ontwikkeling op het juiste niveau is gebracht, kan het project potentieel uitgroeien tot een niveau waarop je runj kunt gebruiken om de reguliere runtime in Docker- en Kubernetes-systemen te vervangen, waarbij je FreeBSD in plaats van Linux gebruikt om containers te draaien. Vanuit de OCI-runtime worden momenteel opdrachten geïmplementeerd voor het maken, verwijderen, starten, geforceerd beëindigen en evalueren van de status van containers. Het vullen van de containers wordt gemaakt op basis van de standaard of uitgeklede FreeBSD-omgeving.

Omdat de OCI-specificatie FreeBSD nog niet ondersteunt, heeft het project een aantal aanvullende parameters ontwikkeld met betrekking tot het configureren van jail en FreeBSD, die naar verwachting zullen worden ingediend voor opname in de hoofdspecificatie van OCI. Om de jail te beheren worden de jail-, jls-, jexec-, kill- en ps-hulpprogramma's van FreeBSD gebruikt, zonder directe toegang tot systeemaanroepen. Toekomstige plannen omvatten het toevoegen van ondersteuning voor het beheer van resourcebeperkingen via de kernel RCTL-interface.

Naast de eigen runtime wordt er ook een experimentele laag ontwikkeld in de projectrepository voor gebruik met runtime containerd (gebruikt in Docker), aangepast om FreeBSD te ondersteunen. Er wordt een speciaal hulpprogramma aangeboden om de FreeBSD rootfs om te zetten in een OCI-compatibel containerimage. De gemaakte afbeelding kan later in containerd worden geïmporteerd.

Bron: opennet.ru

Voeg een reactie