Samuel Karp, ingenieur bij Amazon, werkt aan de ontwikkeling van de Linux-distributie Bottlerocket en containerisolatietechnologieën voor AWS. Hij ontwikkelt een nieuwe runtime, runj, op basis van jail-omgevingen van FreeBSD voor de geïsoleerde uitvoering van containers in overeenstemming met de OCI-specificatie (Open Container Initiative). Het project wordt gepositioneerd als experimenteel, ontwikkeld in zijn vrije tijd en bevindt zich momenteel in de prototypefase. De code is geschreven in Go en wordt gedistribueerd onder de BSD-licentie.
Na het bereiken van het geschikte ontwikkelingsniveau kan het project potentieel doorgroeien naar een niveau waar runj gebruikt kan worden ter vervanging van de standaard runtime in Docker- en Kubernetes-systemen, waarbij FreeBSD in plaats van Linux wordt gebruikt voor het starten van containers. Van de OCI-runtime zijn momenteel commando's geïmplementeerd voor het creëren, verwijderen, starten, geforceerd beëindigen en evalueren van de staat van containers. De inhoud van de container wordt gemaakt op basis van de standaard of afgeslankte omgeving van FreeBSD.
Aangezien de OCI-specificatie momenteel geen ondersteuning voor FreeBSD bevat, is binnen het project een reeks extra parameters ontwikkeld die verband houden met de configuratie van jail en FreeBSD, die bedoeld zijn om ter goedkeuring aan de belangrijkste OCI-specificatie te worden voorgelegd. Voor het beheer van jail worden de hulpprogramma's jail, jls, jexec, kill en ps uit FreeBSD gebruikt, zonder directe oproep naar systeemoproepen. Voor de toekomst is het plan om ondersteuning voor resourcebeperkingsbeheer via de RCTL-interface van de kernel toe te voegen.
Naast de eigen runtime wordt in de projectrepository ook een experimentele laag ontwikkeld voor gebruik samen met de runtime containerd (gebruikt in Docker), gemodificeerd ter ondersteuning van FreeBSD. Voor de conversie van rootfs FreeBSD naar een OCI-compatibel containerimage wordt een speciale tool aangeboden. Het gemaakte image kan later worden geĆÆmporteerd in containerd.
Bron: opennet.ru
