Samuel Karp, ingeniero de Amazon que se encarga del desarrollo de la distribución de Linux Bottlerocket y tecnologías de aislamiento de contenedores para AWS, está desarrollando un nuevo runtime, runj, basado en entornos jail de FreeBSD para permitir la ejecución aislada de contenedores conforme a la especificación OCI (Open Container Initiative). El proyecto se posiciona como experimental, desarrollado en su tiempo libre y actualmente en fase prototipo. El código está escrito en Go y se distribuye bajo la licencia BSD.
Una vez que el desarrollo alcance el adecuado nivel, potencialmente el proyecto podría evolucionar hasta un nivel que permita utilizar runj como el runtime predeterminado en sistemas Docker y Kubernetes, usando FreeBSD para ejecutar contenedores en lugar de Linux. Actualmente, en el runtime OCI se han implementado comandos para crear, eliminar, iniciar, finalizar forzosamente y evaluar el estado de los contenedores. El contenido del contenedor se crea a partir de un entorno completo o reducido de FreeBSD.
Dado que la especificación OCI aún no incluye soporte para FreeBSD, se han desarrollado dentro del proyecto una serie de parámetros adicionales relacionados con la configuración de jail y FreeBSD, los cuales se planea enviar para su inclusión en la especificación principal de OCI. Para gestionar jail se utilizan las utilidades jail, jls, jexec, kill y ps de FreeBSD, sin acceso directo a las llamadas del sistema. Entre los planes futuros se menciona la adición de soporte para la gestión de restricciones de recursos a través de la interfaz RCTL del núcleo.
Además de su propio runtime, el repositorio del proyecto también está desarrollando una capa experimental para su uso junto con el runtime containerd (utilizado en Docker), modificado para soportar FreeBSD. Se propone una utilidad especial para convertir el rootfs de FreeBSD en una imagen de contenedor compatible con OCI. Posteriormente, la imagen creada puede ser importada a containerd.
Fuente: opennet.ru
