Samuel Karp, inżynier z firmy Amazon, zajmujący się rozwojem dystrybucji Linuxa Bottlerocket i technologii izolacji kontenerów dla AWS, rozwija na podstawie środowisk jail FreeBSD nowy runtime runj, który ma zapewnić izolowane uruchamianie kontenerów zgodnych ze specyfikacją OCI (Open Container Initiative). Projekt jest pozycjonowany jako eksperymentalny, rozwijany w wolnym czasie od głównej pracy i obecnie znajduje się na etapie prototypu. Kod jest napisany w języku Go i dystrybuowany na licencji BSD.
Po doprowadzeniu rozwoju do odpowiedniego poziomu projekt może potencjalnie osiągnąć etap, który umożliwi zastosowanie runj jako zamiennika standardowego runtime w systemach Docker i Kubernetes, wykorzystując do uruchamiania kontenerów FreeBSD zamiast Linuxa. Z obecnego runtime OCI zaimplementowane są komendy do tworzenia, usuwania, uruchamiania, wymuszania zakończenia i oceny stanu kontenerów. Zawartość kontenera jest tworzona na podstawie standardowego lub ograniczonego środowiska FreeBSD.
Ponieważ w specyfikacji OCI na razie brakuje wsparcia dla FreeBSD, w ramach projektu opracowano szereg dodatkowych parametrów związanych z konfiguracją jail i FreeBSD, które planuje się przekazać w celu włączenia ich do głównej specyfikacji OCI. Do zarządzania jail używane są narzędzia jail, jls, jexec, kill i ps z zestawu FreeBSD, bez bezpośredniego odwoływania się do wywołań systemowych. W planach na przyszłość przewiduje się dodanie wsparcia dla zarządzania ograniczeniami zasobów przez interfejs RCTL w jądrze.
Oprócz własnego runtime w repozytorium projektu rozwija się także eksperymentalna warstwa do współpracy z runtime containerd (używanym w Dockerze), zmodyfikowana dla wsparcia FreeBSD. Do przekształcenia rootfs FreeBSD w obraz kontenera zgodny z OCI proponowana jest specjalna utilita. W przyszłości stworzony obraz może zostać zaimportowany do containerd.
Źródło: opennet.ru
