Proxmox y Linux Containers (LXC)

Además de las máquinas virtuales, en Proxmox tenemos la posibilidad de crear y gestionar contenedores: Linux Containers (LXC).
Los contenedores son una alternativa ligera a las máquinas totalmente virtualizadas. Utilizan el núcleo del sistema anfitrión en el que se ejecutan, en lugar de emular un sistema operativo completo.
Como ventaja, podemos indicar que los recursos para la ejecución de LXC son bajos. Pero tenemos también la limitación de que sólo podemos crear contenedores con distribuciones Linux. No es posible ejecutar otros sistemas operativos como, por ejemplo, FreeBSD o Microsoft Windows dentro de un contenedor.
En esta unidad vamos a aprender a trabajar con LXC en Proxmox.
Para seguir profundizando:

Gestionando plantillas de contenedores

Los contenedores LXC se crean a partir de una plantilla. Una plantilla es el sistema de ficheros que va a utilizar el contenedor. Tendremos plantillas para las distintas distribuciones de Linux.
En Proxmox necesitamos descargar las plantillas que vamos a usar para la creación del contenedor LXC. Al crear un contenedor se clonará la plantilla para que el contenedor tenga su sistema de fichero. Este proceso se hace de manera muy rápida.

Descargar plantillas en Proxmox

Como indicamos en unidades anteriores, en la fuente de almacenamiento Local podemos guardar, entre otras cosas, las plantillas que usaremos para crear los contenedores.
De esta forma, si accedemos al almacenamiento Local, y elegimos la opción CT Templates accedemos a la ventana que nos permite gestionar las plantillas.
image.png
Tenemos tres formas de obtener plantillas:
Upload: Podemos subir una plantilla que tengamos en nuestro ordenador local.
Download from URL: Podemos descargar una plantilla usando una URL.
Templates: Proxmox nos ofrece un repositorio con un conjunto de plantillas que podemos descargar.
En este curso vamos a usar esta tercera opción. Podemos elegir, por ejemplo, el template de Ubuntu-20.04-standard y descargarlo con el botón Download.
image.png
Además, tenemos un buscador que nos permite buscar por nombre:
image.png
Una vez descargada:
image.png
Podemos comprobar que tenemos la plantilla disponible:
image.png

Creación de contenedores Linux

Después de descargar las plantillas de contenedores con las que vamos a trabajar, estamos en disposición de crear un contenedor LXC. En este apartado vamos a explicar la creación de un contenedor LXC. Sólo indicaremos las opciones más básicas para su creación.
Elegimos la opción de crear un contenedor LXC:
image.png
Y seguimos los siguientes pasos:

Identificar el contenedor LXC

Indicamos el nodo donde se va a crear el contenedor, su ID y su nombre. Además, tendremos que indicar la contraseña de acceso para el usuario root del contenedor o indicar nuestra clave ssh pública para el acceso al contenedor.
image.png

Elegimos la plantilla

Elegimos la plantilla desde la que vamos a crear el contenedor entre las que hemos descargado anteriormente. La plantilla se escogerá del medio de almacenamiento local.
image.png

Selección del disco

En este apartado seleccionamos la configuración del disco raíz del contenedor que vamos a crear. Elegimos el medio de almacenamiento para almacenar el disco, por ejemplo, local-pve, (en este caso el disco de la máquina se guardará en un volumen lógico). También indicaremos el tamaño del disco.
image.png

Selección de la CPU

Seleccionamos el número de cores de vCPU que va a usar el contenedor.
image.png

Configuración de la memoria

Indicamos la cantidad de memoria que tendrá nuestra máquina virtual (en MiB no MB (!)).
image.png

Configuración de red

En un principio nuestra máquina estará conectada al bridge externo vmbr0 y la tarjeta de red se llamará eth0. Esta configuración se puede cambiar, y podríamos conectar nuestro contenedor a un bridge software definido por nosotros. Además, tendremos que decidir si la configuración de red será automática (DHCP) o manual, indicando la dirección (con formato IPv4/CIDR) y la puerta de enlace.
image.png

Configuración DNS

En el último paso podemos configurar los servidores DNS que va a utilizar el contenedor o dejarlo sin rellenar, con lo que utilizará los DNS definido en el servidor Proxmox.
image.png

Utilización del contenedor

Una vez que se ha creado el contenedor, podemos iniciarlo:
image.png
Y acceder a él por medio de la consola:
image.png

Gestión de contenedores Linux

Las opciones para gestionar los contenedores LXC son similares a las que estudiamos para las máquinas virtuales.

Botón derecho sobre el contenedor LXC

image.png
Start: Iniciamos la ejecución del contenedor LXC.
Shutdown: Se termina la ejecución del contenedor de forma ordenada.
Stop: Se termina inmediatamente la ejecución del contenedor.
Reboot: Reinicia la ejecución del contenedor.
Clone: Nos permite clonar el contenedor.
Convert to template: Nos permite crear una plantilla a partir del contenedor para crear nuevos contenedores.
Console: Nos permite acceder a una consola para trabajar con el contenedor.

Panel lateral

Si elegimos un contenedor LXC, nos aparece un panel lateral con más opciones sobre el contenedor:
image.png
Sumary: Resumen y monitorización del contenedor elegido.
Console: Nos permite acceder a una consola para trabajar con el contenedor.
Resources: Nos permite ver y cambiar la configuración de CPU, memoria, puntos de montaje, ....
Networks: Nos permite gestionar las interfaces de red del contenedor.
DNS: Nos permite configurar los servidores DNS que va a utilizar el contenedor.
Options: Nos permite modificar opciones del contenedor.
Task History: Nos muestra el historial de tareas que se han realizado sobre el contenedor.
Backup: Nos permite realizar una copia de seguridad del contenedor.
Replication Nos permite gestionar las réplicas del contenedor entre distintos nodos del clúster de Proxmox VE.
Snapshot: Nos permite crear un snapshot del contenedor para recuperar posteriormente su estado.
Firewall: Nos permite gestionar el cortafuego del contenedor.
Permisssions: Nos permite especificar los distintos permisos que tienes los usuarios o grupos sobre el contenedor.

Eliminar un contenedor LXC

Para eliminar un contenedor LXC tenemos que pararlo y escoger la opción Remove del botón More:
image.png
Para eliminarla se nos pedirá el identificador del contenedor para la confirmación.

Añadir almacenamiento a un contenedor LXC

Podemos crear un volumen y montarlo en un directorio de un contenedor LXC.
Para ello escogemos el contenedor y elegimos la opción Resources y añadimos un Mount Point:
image.png
A continuación, elegimos la fuente de almacenamiento donde vamos a crear el volumen, su tamaño y el directorio donde se va a montar en el contenedor:
image.png
Y comprobamos que se ha montado el volumen en el directorio indicado:

image.png
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.