Samuel Karp, inženýr z Amazonu, který se zabývá vývojem Linuxové distribuce Bottlerocket a technologií kontejnerové izolace pro AWS, vyvíjí na základě jail prostředí FreeBSD nový runtime runj pro zajištění izolovaného spouštění kontejnerů, které odpovídají specifikaci OCI (Open Container Initiative). Projekt je označován jako experimentální, vyvíjí se ve volném čase od hlavní práce a je zatím ve fázi prototypu. Kód je napsán v jazyce Go a je distribuován pod licencí BSD.
Jakmile bude vývoj posunut na odpovídající úroveň, projekt by mohl dospět do stádia, kdy bude možné používat runj jako náhradu výchozího runtime v systémech Docker a Kubernetes, přičemž pro spouštění kontejnerů by se použil FreeBSD místo Linuxu. Z příkazů OCI runtime jsou v současné době implementovány příkazy pro vytváření, odstraňování, spouštění, nucené ukončení a vyhodnocení stavu kontejnerů. Obsah kontejneru je vytvářen na základě výchozího nebo omezeného prostředí FreeBSD.
Jelikož v specifikaci OCI v současnosti chybí podpora FreeBSD, v rámci projektu byl vyvinut soubor dalších parametrů spojených s konfigurací jail a FreeBSD, které se plánují předat pro zahrnutí do hlavní specifikace OCI. Pro správu jail se používají nástroje jail, jls, jexec, kill a ps z FreeBSD, bez přímého volání systémových funkcí. V budoucnosti se plánuje přidání podpory pro řízení omezení zdrojů prostřednictvím RCTL rozhraní jádra.
Kromě vlastního runtime se v repozitáři projektu také vyvíjí experimentální vrstva pro použití spolu s runtime containerd (používaným v Dockeru), modifikovaným pro podporu FreeBSD. Pro transformaci rootfs FreeBSD na OCI-kompatibilní kontejnerový obraz je navržena speciální utilita. Vytvořený obraz může být následně importován do containerd.
Zdroj: opennet.ru
