Runj: kit de herramientas compatible con OCI para gestionar contenedores basados ​​en la cárcel de FreeBSD

Samuel Karp, un ingeniero de Amazon que desarrolla las tecnologías de aislamiento de contenedores y distribución de Linux Bottlerocket para AWS, está desarrollando un nuevo runj de tiempo de ejecución basado en entornos jail de FreeBSD para proporcionar un lanzamiento aislado de contenedores diseñados de acuerdo con la iniciativa de especificación OCI (Open Container). . El proyecto se posiciona como experimental, desarrollado en tiempo libre del trabajo principal y aún se encuentra en etapa de prototipo. El código está escrito en Go y distribuido bajo licencia BSD.

Después de llevar el desarrollo al nivel adecuado, el proyecto puede potencialmente crecer a un nivel que le permita usar runj para reemplazar el tiempo de ejecución normal en los sistemas Docker y Kubernetes, usando FreeBSD en lugar de Linux para ejecutar contenedores. Desde el tiempo de ejecución de OCI, actualmente se implementan comandos para crear, eliminar, iniciar, forzar la terminación y evaluar el estado de los contenedores. El llenado del contenedor se crea basándose en el entorno FreeBSD estándar o simplificado.

Dado que la especificación OCI aún no es compatible con FreeBSD, el proyecto ha desarrollado una serie de parámetros adicionales relacionados con la configuración de jail y FreeBSD, que se planea enviar para su inclusión en la especificación OCI principal. Para gestionar el jail se utilizan las utilidades jail, jls, jexec, kill y ps de FreeBSD, sin acceder directamente a las llamadas del sistema. Los planes futuros incluyen agregar soporte para la gestión de limitación de recursos a través de la interfaz RCTL del kernel.

Además de su propio tiempo de ejecución, también se está desarrollando una capa experimental en el repositorio del proyecto para usar con el tiempo de ejecución contenedor (usado en Docker), modificado para admitir FreeBSD. Se ofrece una utilidad especial para convertir los rootfs de FreeBSD en una imagen de contenedor compatible con OCI. La imagen creada se puede importar posteriormente a un contenedor.

Fuente: opennet.ru

Añadir un comentario