Primer lanzamiento de Incus, un fork del sistema de gestión de contenedores LXD

Se ha presentado la primera versión del proyecto Incus, en el cual la comunidad de Linux Containers está desarrollando 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).

En términos de funcionalidad, la primera versión de Incus, que corresponde a la recientemente publicada actualización LXD 5.18 y se centra principalmente en el renombramiento y reorganización de la base de código, así como en la eliminación de características obsoletas. No obstante, en la nueva versión también se observan cambios específicos de Incus en la interfaz de línea de comandos y API, que no pudieron incorporarse a LXD debido a los requisitos de compatibilidad hacia atrás. En el futuro, los desarrolladores planean trasladar a la base de código de LXD mejoras y correcciones útiles, añadiendo también sus propias innovaciones originales, que, si lo desea Canonical, podrán ser portadas a LXD.

Los cambios más notables:

  • Se ha realizado la transición al motor SQL embebido Cowsql, un fork de Dqlite, creado por el autor original de Dqlite por las mismas razones que Incus (salida de la influencia de Canonical). Cowsql es compatible con SQLite, admite replicación de datos, recuperación automática tras fallos y garantiza la resistencia mediante la distribución de procesadores en múltiples nodos.
  • Se ha añadido el comando «incus snapshot» en la interfaz de línea de comandos para gestionar instantáneas (reemplaza a los comandos por separado lxc snapshot y restore). A través de «incus snapshot» se pueden realizar operaciones de creación, eliminación, listado, renombrado y recuperación de instantáneas.
  • Se ha cambiado la lógica de los comandos «incus config trust add» y «incus cluster add» para que ahora acepten un argumento con el nombre y devuelvan un token correcto. Las operaciones con el certificado a través del comando «incus config trust add» se han trasladado a un comando separado «incus config trust add-certificate».
  • Se ha añadido el comando «incus admin», liberando al administrador de la necesidad de acceder directamente a los comandos lxc y lxd. Se encuentran disponibles los siguientes subcomandos:
    • incus admin cluster
    • incus admin init
    • incus admin recover
    • incus admin shutdown
    • incus admin waitready
  • Se han eliminado los puntos de acceso API obsoletos /1.0/containers y /1.0/virtual-machines, reemplazados por /1.0/instances.
  • El dispositivo /dev/lxd ha sido reemplazado por /dev/incus, y las menciones en el código de lxd han sido cambiadas a incus.
  • Tipo del servidor cambiado de «map[string]any» a «map[string]string». Se ha desactivado el método de autenticación obsoleto core.trust_password (ahora se utiliza la autenticación basada en tokens), que impedía el uso del tipo «map[string]string».
  • Se han eliminado del API las funciones obsoletas *Container, que han sido reemplazadas por funciones *Instance tras la implementación de la gestión de máquinas virtuales (por ejemplo, en lugar de CreateContainer, se debe utilizar CreateInstance).
  • Se ha añadido la herramienta lxd-to-incus para la migración de LXD a Incus (se admite la conversión automática de archivos de configuración desde la versión LXD 4.0 hasta la 5.18). La transferencia de clústeres aún no es compatible.
  • La versión de lenguaje Go mínima admitida se ha establecido en el lanzamiento 1.20.
  • Se ha dejado de apoyar ciertas características atadas a Ubuntu o dependientes de software obsoleto o no soportado:
    • Se ha eliminado el soporte para los envoltorios de Ubuntu Fan (bridge.mode, fan.overlay_subnet, fan.underlay_subnet, fan.type), que dependían de parches al núcleo, utilizados solamente en Ubuntu.
    • Se eliminó el soporte para shiftfs, vinculado a paquetes con núcleo para el sistema de archivos virtual de Ubuntu para mapear puntos de montaje con espacios de nombres de identificadores de usuarios (user namespace).
    • Se eliminó el soporte para el sistema de autenticación Candid, específico de los productos de Canonical.
    • Se eliminó el soporte para la implementación propietaria del mecanismo de autenticación RBAC (Control de Acceso Basado en Roles), creado por Canonical basado en Macaroons y Candid.
    • Se eliminaron componentes para la integración con MAAS (Metal-as-a-Service), una herramienta para el despliegue rápido de configuraciones de Ubuntu.
    • Se eliminó el concepto de acceso al servidor mediante una contraseña de confianza (core.trust_password).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster