Самуъл Карт (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
