Samuel Karp, az Amazon mérnöke, aki a Bottlerocket Linux-disztribúció és az AWS konténerizolációs technológiák kifejlesztéséért felelős, egy új runtime-ot, a runj-t fejleszti a FreeBSD jail-környezetek alapján, amely lehetővé teszi a konténerek izolált indítását az OCI (Open Container Initiative) specifikáció alapján. A projekt kísérleti jelleggel készült, és az alapvető munkája mellett, szabadidőben zajlik, jelenleg prototípusi fázisban van. A kód Go nyelven készült és BSD licenc alatt terjesztik.
A fejlesztés megfelelő szintre emelése után a projekt potenciálisan elérheti azt a szintet, amely lehetővé teszi a runj alkalmazását a Docker és Kubernetes rendszerekben, lehetőséget biztosítva a FreeBSD konténerek indítására Linux helyett. Az OCI runtime jellemzői közül jelenleg a konténerek létrehozására, törlésére, indítására, kényszerített leállítására és állapotának ellenőrzésére vonatkozó parancsok valósultak meg. A konténer belső tartalmát a standard vagy csökkentett FreeBSD környezet alapján alakítják ki.
Mivel az OCI specifikációban a FreeBSD támogatása még nem áll rendelkezésre, a projekt keretében számos kiegészítő beállítást dolgoztak ki a jail és a FreeBSD konfigurálására, amelyeket a fő OCI specifikációba kívánnak benyújtani. A jail kezelése során a FreeBSD-ből származó jail, jls, jexec, kill és ps segédprogramokat használják anélkül, hogy közvetlenül a rendszerhívásokhoz kellene fordulni. A jövőbeni tervek között szerepel a forráskorlátozások kezelésének támogatása az RCTL felületen keresztül.
A saját runtime-on kívül a projekt tárolójában egy kísérleti réteg is fejlődik, amely a containerd (a Docker által használt) runtime-nal együtt használható, módosítva a FreeBSD támogatására. A FreeBSD rootfs OCI-kompatibilis konténerképpé való átalakításához speciális segédprogramot javasolnak. A későbbiekben a létrehozott képet importálni lehet a containerd-be.
Forrás: opennet.ru
