Aprende Incus con openLAB: instancias e imágenes
openLAB crea escenarios de prácticas a partir de un fichero YAML: contenedores y máquinas virtuales conectados por redes, con los usuarios, la red y los paquetes ya configurados. Para hacerlo no virtualiza por su cuenta, sino que se apoya en Incus. Por eso openLAB también es una buena excusa para aprender Incus: escribimos un escenario, lo creamos con una orden y después miramos con las herramientas de Incus qué ha pasado por dentro.
Esta es la primera entrada de una serie de cuatro sobre Incus y openLAB.
¿Qué es Incus?
Incus es un gestor de contenedores de sistema y máquinas virtuales de software libre. Es la continuación comunitaria de LXD y lo mantiene el proyecto Linux Containers, el mismo que desarrolla LXC.
- Un contenedor de sistema es un Linux completo, con su systemd, sus servicios, sus usuarios y su red, que comparte el núcleo con el anfitrión. No es un contenedor de aplicación como los de Docker, que normalmente ejecutan un solo proceso, sino una máquina entera: entramos en él, instalamos paquetes y configuramos servicios. Como no arranca un núcleo propio, se pone en marcha en segundos y apenas gasta recursos.
- Una máquina virtual, gestionada con QEMU y KVM, tiene su propio núcleo. Es más pesada, pero puede hacer cosas que un contenedor no puede.
Incus maneja los dos tipos de la misma forma, con las mismas órdenes, y por eso los llama a ambos instancias. En esta entrada trabajaremos con contenedores; las diferencias con las máquinas virtuales las veremos en la siguiente.
Incus funciona con un demonio (incusd), que es el que crea y gestiona todo, y un cliente (incus), la orden con la que le hablamos. El cliente se comunica con el demonio a través de una API REST, así que el mismo cliente puede gestionar también un Incus remoto. Podemos ver las versiones de los dos:
$ incus version
Client version: 6.0.4
Server version: 6.0.4

