
Un "runc" de próxima generación y código abierto que permite que los contenedores sin root ejecuten cargas de trabajo como Systemd, Docker, Kubernetes, igual que las máquinas virtuales.
Sysbox es un runtime de contenedores de código abierto y gratuito (un "runc" especializado), desarrollado originalmente por Nestybox ([adquirida por Docker][docker-acquisition] en 05/2022), que mejora los contenedores de dos maneras clave:
Mejora el aislamiento de los contenedores:
User-namespace de Linux en todos los contenedores (es decir, el usuario root en el contenedor tiene cero privilegios en el host).
Virtualiza partes de procfs y sysfs dentro del contenedor.
Oculta información del host dentro del contenedor.
Bloquea los montajes iniciales del contenedor, y más.
Permite que los contenedores ejecuten las mismas cargas de trabajo que las VMs:
Con Sysbox, los contenedores pueden ejecutar software a nivel de sistema como systemd, Docker, Kubernetes, K3s, buildx (incluyendo builds multi-arquitectura), aplicaciones heredadas, aplicaciones multi-arquitectura, y más, de forma fluida y segura.
Este software puede ejecutarse dentro de los contenedores Sysbox sin modificaciones y sin usar versiones especiales del software (por ejemplo, variantes rootless).
Sin contenedores privilegiados, sin imágenes complejas, sin entrypoints complicados, sin montajes de volúmenes especiales, etc.
Piense en ello como un "supercargador de contenedores": permite que sus gestores / orquestadores de contenedores existentes (por ejemplo, Docker, Kubernetes, etc.) desplieguen contenedores con aislamiento reforzado y que puedan ejecutar casi cualquier carga de trabajo que se ejecuta en VMs.
Sysbox logra esto haciendo que el contenedor se asemeje lo más posible a un entorno tipo VM, utilizando técnicas avanzadas de virtualización del sistema operativo.
A diferencia de runtimes alternativos como Kata y KubeVirt, no utiliza VMs. Esto lo hace más fácil de usar (particularmente en entornos cloud al evitar la virtualización anidada), aunque no proporciona el nivel de aislamiento que ofrecen los runtimes basados en VMs. Ver aquí para una comparación.
No es necesario aprender nuevas herramientas ni modificar sus imágenes de contenedor o flujos de trabajo existentes para aprovechar Sysbox. Simplemente instálelo y apunte su gestor de contenedores / orquestador hacia él para desplegar contenedores mejorados.
Sysbox puede convivir con otros runtimes de contenedores en el mismo host (por ejemplo, el runc OCI predeterminado, Kata, etc.). Puede elegir fácilmente qué contenedores o pods ejecutar con cada uno, según sus necesidades.
Sysbox es gratuito y de código abierto, licenciado bajo la Apache License, Versión 2.0. Consulte el archivo LICENSE para más detalles.
Sysbox fue desarrollado originalmente por Nestybox. Como [Nestybox ahora es parte de Docker][docker-acquisition], Docker es el principal patrocinador del proyecto Sysbox.
Dicho esto, Sysbox es un proyecto comunitario de código abierto y no está oficialmente soportado por Docker (es decir, las suscripciones de Docker no incluyen soporte para Sysbox). El soporte se brinda según disponibilidad a través de este repositorio de Github o del [Espacio de trabajo de Sysbox en Slack][slack].
Animamos la participación de la comunidad para ayudar a evolucionar y mejorar Sysbox, con el objetivo de aumentar los casos de uso y los beneficios que permite. Se reciben mantenedores y contribuidores externos.
Sysbox resuelve problemas tales como:
Mejorar el aislamiento de los microservicios contenerizados (root en el contenedor se asigna a un usuario no privilegiado en el host).
Habilitar un usuario root altamente capaz dentro del contenedor sin comprometer la seguridad del host.
Asegurar los pipelines de CI/CD al habilitar Docker-in-Docker (DinD) o Kubernetes-in-Docker (KinD) sin contenedores privilegiados inseguros ni montajes del socket Docker del host.
Permitir el uso de contenedores como entornos "tipo VM" para desarrollo, pruebas locales, aprendizaje, etc., con un aislamiento sólido y la capacidad de ejecutar systemd, Docker, IDEs y más dentro del contenedor.
Ejecutar aplicaciones heredadas dentro de contenedores (en lugar de VMs menos eficientes).
Reemplazar las VMs con una alternativa basada en contenedores más fácil, rápida, eficiente y portable, que pueda desplegarse fácilmente en entornos cloud.
Dividir hosts de metal desnudo en múltiples entornos de cómputo aislados con el doble de densidad que las VMs (es decir, desplegar el doble de contenedores tipo VM que VMs en el mismo hardware con el mismo rendimiento).
Dividir instancias cloud (por ejemplo, EC2, GCP, etc.) en múltiples entornos de cómputo aislados sin recurrir a costosas virtualizaciones anidadas.
Sysbox se instala fácilmente en hosts Linux (metal desnudo, VM, on-prem, cloud, etc.). Funciona en todos los principales servicios IaaS y Kubernetes basados en cloud (por ejemplo, EC2, GCP, GKE, EKS, AKS, Rancher, etc.).
Una vez instalado, Sysbox trabaja bajo el capó: usted usa Docker, Kubernetes, etc. para desplegar contenedores con él.
Por ejemplo, este sencillo comando de Docker crea un contenedor con Sysbox:
$ docker run --runtime=sysbox-runc -it any_image
Obtiene un contenedor bien aislado, capaz de ejecutar sin problemas microservicios así como software a nivel de sistema que normalmente se ejecuta en VMs (por ejemplo, systemd, Docker, Kubernetes, etc.).
Más sobre cómo usar Sysbox aquí.