Se presenta la tercera edición del proyecto Incus, en el cual la comunidad de Linux Containers desarrolla un fork del sistema de gestión de contenedores LXD, creado por el antiguo equipo de desarrolladores que una vez creó LXD. El código de Incus está escrito en Go y se distribuye bajo la licencia Apache 2.0.
Recordemos que la comunidad de Linux Containers supervisó el desarrollo de LXD hasta que la empresa Canonical decidió desarrollar LXD por separado como un proyecto empresarial. El objetivo del fork es proporcionar una alternativa gestionada por una comunidad independiente al proyecto LXD, controlado por Canonical. En el marco del proyecto Incus también se tiene la intención de corregir algunos errores conceptuales cometidos durante el desarrollo de LXD que anteriormente no podían solucionarse sin romper la compatibilidad hacia atrás.
Incus proporciona herramientas para la gestión centralizada de contenedores y máquinas virtuales, desplegadas tanto en un solo host como en un clúster de varios. servidores. El proyecto se implementa como un proceso en segundo plano que acepta solicitudes a través de la red a través de una API REST y admite diversos backends de almacenamiento (sistemas de directorios, ZFS, Btrfs, LVM), instantáneas de estado, migración en vivo de contenedores en funcionamiento de una máquina a otra, y herramientas para almacenar imágenes de contenedores. Para ejecutar contenedores, se utiliza el kit de herramientas LXC, que incluye la biblioteca liblxc, un conjunto de utilidades (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), plantillas para construir contenedores y un conjunto de enlaces para varios lenguajes de programación. La aislamiento se lleva a cabo mediante los mecanismos estándar del núcleo de Linux (espacios de nombres, cgroups, Apparmor, SELinux, Seccomp).
Los cambios más destacados:
- Se ha añadido soporte para la gestión de autorización de usuarios basada en el modelo de Control de Acceso Basado en Relaciones, implementado mediante un proceso en segundo plano de OpenFGA, que se encarga de tomar decisiones sobre la concesión de ciertos permisos a los usuarios. Junto con el proveedor de OpenID Connect, el soporte de OpenFGA permite formar un stack abierto de identificación y autorización, lo que permite usar Incus como un reemplazo completo de las configuraciones de LXD con Canonical RBAC. Se han propuesto parámetros para configurar el acceso a OpenFGA, incluyendo openfga.api.token, openfga.api.url, openfga.store.id y openfga.store.model_id.
- Se ha mejorado la utilidad lxd-to-incus, que automatiza la migración de LXD a Incus. La nueva versión añade soporte para distribuciones con el sistema de inicialización OpenRC, así como la posibilidad de transferir almacenes Ceph y redes OVN, se ha implementado el registro de la migración y la creación de copias de seguridad.
- En máquinas virtuales Se ha añadido soporte para la conexión y desconexión en caliente (hot-plug/hot-remove) de rutas de archivos o particiones individuales, pasadas desde el entorno anfitrión. Anteriormente, tal paso mediante el controlador virtio-fs o el sistema de archivos 9p requería detener la máquina virtual. Para sortear esta limitación, se ha utilizado la capacidad de QEMU para la conexión en caliente de dispositivos PCI y el montaje de rutas dentro del sistema huésped a través de incus-agent.
Fuente: opennet.ru
