Ya fue liberada la nueva versión de LXC 5.0 y tendrá soporte hasta el 2027
Hace poco Canonical dio a conocer el lanzamiento de la nueva versión de los contenedores aislados LXC 5.0, la cual pasa a ser la nueva rama LTS y en la cual se han realizado una gran cantidad de correcciones de errores y sobre todo tambien se han realizado diversas mejoras.
Para quienes desconocen de LXC, deben saber que este proporciona un runtime adecuado tanto para ejecutar contenedores con un entorno de sistema completo cerca de máquinas virtuales como para ejecutar contenedores de aplicación única (OCI) sin privilegios.
LXC se refiere a conjuntos de herramientas de bajo nivel que funcionan a nivel de contenedores individuales. Para la gestión centralizada de contenedores desplegados en un clúster de varios servidores, se está desarrollando el sistema LXD basado en LXC.
LXC 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.
Principales novedades de LXC 5.0
Esta nueva rama que se presenta de los contenedores LXC 5.0 se clasifica como una versión de soporte a largo plazo (LTS), la cual contara con actualizaciones generadas durante un período de 5 años (es decir, hasta el 2027).
Por la parte de los cambios que se destacan de esta nueva versión de LXC 5.0, se menciona que se ha realizado el cambio de autotools al sistema de construcción Meson, mismo que también se usa para construir proyectos como X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME, GTK, entre otros.
Ademas de ello, tambien se destaca en esta nueva versión de LXC 5.0, que se agregó el soporte para espacios de nombres de tiempo para vincular un estado separado del reloj del sistema al contenedor, lo que permite poder usar su propio tiempo en el contenedor, diferente al del sistema. Para la configuración, se proponen las opciones lxc.time.offset.boot y lxc.time.offset.monotonic, que permiten definir un desplazamiento del contenedor relativo al reloj principal del sistema.
Tambien, se destaca en esta nueva version de LXC 5.0 que se ha implementado la compatibilidad con VLAN para adaptadores Ethernet virtuales (Veth), ademas de que ¿se ofrecen las siguientes opciones para la administración de VLAN: veth.vlan.id para configurar la VLAN principal y veth.vlan.tagged.id para vincular VLAN etiquetadas adicionales.
Para los adaptadores virtuales de ethernet, se agregó la capacidad de configurar el tamaño de las colas de recepción y transmisión mediante las nuevas opciones veth.n_rxqueues y veth.n_txqueues.
Por otra parte, podremos encontrar que se agregaron nuevas opciones de configuración de cgroup: lxc.cgroup.dir.container, lxc.cgroup.dir.monitor, lxc.cgroup.dir.monitor.pivot y lxc.cgroup.dir.container.inner, que permiten definir explícitamente las rutas de cgroup para contenedores, procesos de supervisión y jerarquías de cgroup anidadas.
Tambien vale la pena mencionar que con el lanzamiento de esta nueva rama 5.0, LXC 4.0 ahora cambiará a un ritmo de mantenimiento más lento y solo recibirá correcciones de errores críticos y actualizaciones de seguridad.
De los demás cambios que se destacan de esta nueva versión:
- utils: corrige el valor de retorno no verificado
- conf: corrige el valor de retorno no verificado
- utils: permite la resolución entre dispositivos
- conf: corrige el manejo de montaje basado en CAP_NET_ADMIN
- Comandos: revisión de comprobación de soporte de notificación de seccomp.
- tests: corrige la compilación con appamor habilitado.
- lxc-attach: habilitar la configuración del contexto SELinux
- macro: se aumentó MAX_GRBUF_SIZE a 2 mb
- autotools: habilita compilaciones estáticas para herramientas
- autotools: habilita compilaciones estáticas para comandos
- Se corrigió la compilación con Wstrict-prototypes -Wold-style-definition
- conf: corrige la fuga de memoria
Finalmente si estás interesado en poder conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente enlace.