Hace poco se dio a conocer el lanzamiento de la nueva versión de Incus 0.3, la cual es la tercera versión del proyecto desde que la comunidad de Linux Containers creo esta bifurcación de LXD.
En este lanzamiento de Incus 0.3 dentro de los cambios más importantes, se destaca que la incorporación del soporte OpenFGA, asi como también que se han implementado numerosas mejoras en la herramienta de migración de lxd-to-incus.
Para quienes desconocen de Incus deben saber que este es un fork de LXD que nació debido a la decisión de Canonical de desarrollar LXD por separado como un proyecto corporativo y la comunidad de Linux Containers que supervisó el desarrollo de LXD, creo Incus con la finalidad de proporcionar una alternativa independiente impulsada por la comunidad.
Incus ofrece herramientas para la gestión centralizada de contenedores y máquinas virtuales, ya sea implementadas en un único host o en un clúster de varios servidores. Este proyecto se ejecuta como un proceso en segundo plano que responde a solicitudes a través de la red mediante la API REST, además de que admite varios backends de almacenamiento, como árbol de directorios, ZFS, Btrfs y LVM. También proporciona la capacidad de realizar migración en vivo de contenedores en ejecución de una máquina a otra, así como herramientas para almacenar imágenes de contenedores.
¿Qué hay de nuevo en Incus 0.3?
En esta nueva versión que se presenta de Incus 0.3, tal y como mencionamos al inicio, su principal novedad es la incorporación del soporte OpenFGA para la gestión de autorizaciones de usuarios basada en el modelo de control de acceso en relaciones, implementado mediante el proceso en segundo plano.
OpenFGA, una solución de autorización de código abierto, que permite a los desarrolladores crear un control de acceso granular utilizando un lenguaje de modelado fácil de leer y API amigables. Funciona como un demonio externo en la red, al cual Incus consulta para determinar si se permite que un usuario específico realice una acción específica. Al combinarse con el proveedor OpenID Connect, la compatibilidad con OpenFGA forma una pila de autorización e identidad abierta, permitiendo el uso de Incus como un reemplazo completo para las configuraciones LXD con Canonical RBAC. Para habilitar OpenFGA en Incus, se utilizan nuevas claves de configuración del servidor, que incluyen openfga.api.token, openfga.api.url, openfga.store.id y openfga.store.model_id.
Otro de los cambios que se destaca de este lanzamiento son las mejoras en herramienta de migración lxd-to-incus entre las que se destacan: soporte para sistemas de destino OpenRC, soporte para migrar grupos de almacenamiento de Ceph, soporte para migrar redes OVN, generación de un archivo de registro y generación de respaldos (base de datos, datos OVN)
Por otra parte, también se destaca la conexión/eliminación en caliente de rutas en máquinas virtuales. Incus ha contado con el soporte para conexión y extracción de discos en caliente durante un tiempo y admitia el compartir solo una ruta desde el sistema host o pasar un volumen personalizado compartido a través de virtio-fs o 9p y hasta ahora, requería detener la VM, agregar el dispositivo y luego iniciar la VM.
Con el nuevo soporte, Incus ahora admite la conexión y eliminación en caliente de esas rutas a través de una combinación de conexión en caliente PCI en QEMU y comunicación con el agente incus en el invitado para realizar el montaje real como parte del proceso en caliente.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.
¿Como instalar Incus?
Para los interesados en poder instalar este fork de LXD, deben saber que los paquetes preconstruidos están disponibles solo para Ubuntu 20.04 LTS, 22.04 LTS (jammy) Debian 11 (bullseye) y Debian 12 (bookworm).
Para realizar la instalación deben primero de obtener la clave del repositorio con el siguiente comando:
curl -fsSL https://pkgs.zabbly.com/key.asc | gpg --show-keys --fingerprint
Si coincide con esta «4EFC 5906 96CB 15B8 7C73 A3AD 82CC 8797 C838 DCFD» , procederemos a guardar la clave de manera local con el siguiente comando:
mkdir -p /etc/apt/keyrings/ curl -fsSL https://pkgs.zabbly.com/key.asc -o /etc/apt/keyrings/zabbly.asc
Hecho esto, ahora vamos a añadir el repositorio a nuestro sistema con el siguiente comando:
sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-stable.sources Enabled: yes Types: deb URIs: https://pkgs.zabbly.com/incus/stable Suites: $(. /etc/os-release && echo ${VERSION_CODENAME}) Components: main Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/zabbly.asc EOF'
Actualizamos nuestro listado con:
sudo apt update
Y finalmente procedemos a instalar con:
sudo apt-get install incus
Cabe mencionar que el repositorio también incluye los siguientes paquetes:
- incus-client, un paquete que contiene solo la herramienta CLI, útil cuando solo se administran servidores remotos
- incus-ui-canonical, un paquete que contiene una versión renombrada de la interfaz web LXD para usar con Incus
Para la configuración o si quieres un método distinto de instalación, puedes consultar los detalles en este enlace.