Runj - OCI-kompatibel verktygslåda för att hantera behållare baserat på FreeBSD jail

Samuel Karp, en ingenjör på Amazon som utvecklar Bottlerocket Linux-distributions- och containerisoleringsteknologier för AWS, utvecklar en ny runtime runj baserad på FreeBSD jail-miljöer för att tillhandahålla isolerad lansering av containrar designade i enlighet med OCI (Open Container) specifikationsinitiativet) . Projektet är positionerat som experimentellt, utvecklat på fritiden från huvudarbetet och är fortfarande på prototypstadiet. Koden är skriven i Go och distribueras under BSD-licensen.

Efter att ha fört utvecklingen till rätt nivå kan projektet potentiellt växa till en nivå som gör att du kan använda runj för att ersätta den vanliga körtiden i Docker- och Kubernetes-system, genom att använda FreeBSD istället för Linux för att köra behållare. Från OCI-körtiden implementeras för närvarande kommandon för att skapa, ta bort, starta, framtvinga avslutande och utvärdera behållarnas tillstånd. Behållarfyllningen skapas baserat på standard- eller avskalad FreeBSD-miljö.

Eftersom OCI-specifikationen ännu inte stöder FreeBSD, har projektet utvecklat ett antal ytterligare parametrar relaterade till konfigurering av jail och FreeBSD, som planeras att skickas in för inkludering i OCI-huvudspecifikationen. För att hantera jail, används jail, jls, jexec, kill och ps-verktygen från FreeBSD, utan att direkt komma åt systemanrop. Framtida planer inkluderar att lägga till stöd för resursbegränsningshantering genom kärnans RCTL-gränssnitt.

Utöver sin egen körtid utvecklas även ett experimentlager i projektförrådet för användning med runtime containerd (används i Docker), modifierat för att stödja FreeBSD. Ett speciellt verktyg erbjuds för att konvertera FreeBSD rootfs till en OCI-kompatibel containerbild. Den skapade bilden kan senare importeras till containerd.

Källa: opennet.ru

Lägg en kommentar