Lanzamiento del sistema de gestión de contenedores LXD 5.0

Canonical ha lanzado el administrador de contenedores LXD 5.0 ​​y el sistema de archivos virtual LXCFS 5.0. El código LXD está escrito en Go y se distribuye bajo la licencia Apache 2.0. La rama 5.0 está clasificada como una versión de soporte a largo plazo; las actualizaciones se formarán hasta junio de 2027.

El kit de herramientas LXC se usa como un tiempo de ejecución para el lanzamiento como contenedores, 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. El aislamiento se lleva a cabo utilizando los mecanismos regulares del kernel de Linux. El mecanismo de espacios de nombres se utiliza para aislar procesos, el ipc, la pila de red uts, las identificaciones de usuario y los puntos de montaje. cgroups se utilizan para limitar los recursos. Las características del kernel, como los perfiles de Apparmor y SELinux, las políticas de Seccomp, Chroots (pivot_root) y las capacidades se utilizan para reducir los privilegios y restringir el acceso.

Además de LXC, LXD también utiliza componentes de los proyectos CRIU y QEMU. Si LXC es un conjunto de herramientas de bajo nivel para la manipulación a nivel de contenedores individuales, LXD proporciona herramientas para la gestión centralizada de contenedores implementados en un clúster de varios servidores. LXD 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 varios backends de almacenamiento (árbol de directorios, ZFS, Btrfs, LVM), instantáneas de estado, migración en vivo de contenedores en ejecución de una máquina a otra y herramientas para contenedores de almacenamiento de imágenes. LXCFS se usa para simular los contenedores pseudo-FS /proc y /sys, y la vista cgroupfs virtualizada para hacer que los contenedores parezcan un sistema independiente regular.

Mejoras clave:

  • Capacidad para conectar y desconectar en caliente unidades y dispositivos USB. En una máquina virtual, un nuevo disco se detecta por la aparición de un nuevo dispositivo en el bus SCSI, y un dispositivo USB se detecta generando un evento USB hotplug.
  • Se proporciona la capacidad de iniciar LXD incluso si es imposible establecer una conexión de red, por ejemplo, debido a la falta de un dispositivo de red necesario. En lugar de mostrar un error al iniciar, LXD ahora inicia tantos entornos como puede en las condiciones actuales, y el resto de los entornos se inician después de que se establece la conexión de red.
  • Se ha agregado una nueva función de los miembros del clúster: ovn-chassis, diseñada para clústeres que utilizan OVN (Open Virtual Network) para la interacción de red (al asignar la función ovn-chassis, los servidores pueden asignarse para actuar como enrutadores OVN).
  • Se propone un modo optimizado para actualizar el contenido de las particiones de almacenamiento. En versiones anteriores, la actualización consistía en copiar primero una instancia o partición de contenedor, por ejemplo, utilizando la funcionalidad de envío/recepción en zfs o btrfs, después de lo cual la copia creada se sincronizaba ejecutando el programa rsync. Para mejorar la eficiencia de la actualización de máquinas virtuales, la nueva versión utiliza una lógica de migración avanzada, en la que, si los servidores de origen y de destino utilizan el mismo grupo de almacenamiento, las instantáneas y las operaciones de envío/recepción se utilizan automáticamente en lugar de rsync.
  • La lógica de identificación del entorno en cloud-init se ha rediseñado: UUID ahora se usa como ID de instancia en lugar de nombres de entorno.
  • Se agregó soporte para conectar la llamada al sistema sched_setscheduler para permitir que los contenedores sin privilegios cambien las prioridades del proceso.
  • Se implementó la opción lvm.thinpool_metadata_size para controlar el tamaño de los metadatos en thinpool.
  • Formato de archivo de información de red rediseñado para lxc. Se agregó compatibilidad con enlaces de interfaz, puentes de red, VLAN y OVN.
  • Mayores requisitos para las versiones mínimas de los componentes: Linux kernel 5.4, Go 1.18, LXC 4.0.x y QEMU 6.0.
  • LXCFS 5 agregó soporte para una jerarquía cgroup unificada (cgroup2), implementó /proc/slabinfo y /sys/devices/system/cpu, y usó el kit de herramientas meson para el ensamblaje.

Fuente: opennet.ru

Añadir un comentario