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

Дадаць каментар