Runj - OCI-сумісний інструментарій для керування контейнерами на базі FreeBSD jail

Самуель Карп (Samuel Karp), інженер з компанії Amazon, що займається розробкою Linux-дистрибутива Bottlerocket та технологій контейнерної ізоляції для AWS, розвиває на основі jail-оточень FreeBSD новий runtime runj для забезпечення ізольованого запуску контейнерів, оформлених відповідно до специфікації 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

Додати коментар або відгук