Самуел Кърп (Samuel Karp), инженер от Amazon, който разработва Linux дистрибуцията Bottlerocket и технологии за контейнерна изолация за AWS, развива нов runtime runj, базиран на jail-окружения на FreeBSD, за осигуряване на изолирано изпълнение на контейнери, съобразени с спецификацията на OCI (Open Container Initiative). Проектът се позиционира като експериментален, разработван в свободното му време извън основната работа и все още е на етап прототип. Кодът е написан на Go и се разпространява под лицензия BSD.
След достигането на необходимото ниво на разработка, проектът потенциално може да достигне до етап, на който runj да замести стандартния runtime в системите Docker и Kubernetes, използвайки FreeBSD вместо Linux за изпълнение на контейнери. В момента в OCI runtime са реализирани команди за създаване, изтриване, стартиране, принудително спиране и оценка на състоянието на контейнерите. Съдържанието на контейнера се създава на базата на стандартна или ограничена версия на FreeBSD.
Тъй като спецификацията на OCI все още не поддържа FreeBSD, в рамките на проекта е разработен набор от допълнителни параметри, свързани с конфигурирането на jail и FreeBSD, които се планира да бъдат включени в основната спецификация на OCI. За управление на jail се използват утилитите jail, jls, jexec, kill и ps от FreeBSD, без директен достъп до системните повиквания. От плановете за бъдещето се отбелязва добавяне на поддръжка за управление на ограничения на ресурсите чрез RCTL интерфейса на ядрото.
Освен собственото си runtime, в репозитория на проекта също се развива експериментален слой за използване с runtime containerd (използван в Docker), модифициран за поддръжка на FreeBSD. За преобразуване на rootfs FreeBSD в OCI-съвместим образ на контейнер предлага специална утилита. В последствие създаденият образ може да бъде импортиран в containerd.
Източник: opennet.ru
