Ir al contenido principal

LXD: Contenedores con direcciones IP estáticas

Uno de los problemas que nos encontramos cuando trabajamos con contenedores es que LXD le asigna automáticamente una dirección IP a nuestro contenedor. Esto puede estar bien en muchos casos, ya que no nos tenemos que preocupar por asignar nosotros mismos las direcciones. Pero otras veces sí necesitamos controlar qué dirección IP se le asigna a nuestro contenedor. Esta situación es frecuente cuando instalamos en el contenedor un servidor.

Para resolver este problema podemos optar por dos soluciones. La primera no es muy práctica, pero sí efectiva y consiste en asignarle la dirección IP manualmente dentro de sistema operativo huésped del contenedor. El problema con esta solución es que tenemos que andar modificando ficheros dentro de los sistemas operativos huéspedes y si clonamos el contenedor o si generamos una imagen, la dirección IP que hemos asignado manualmente seguirá en las copias o imágenes con el engorro que esto pueda ocasionar.

La otra solución consiste en indicarle a LXD que asigne una dirección concreta a un contenedor determinado, de esta manera, si clonamos el contenedor o generamos una imagen no tendremos el problema descrito anteriormente ya que el sistema operativo huésped seguirá con una configuración de red por DHCP.

Supongamos que tenemos un contenedor llamado micontenedor, con una interfaz de red denominada eth0 y que está por defecto conectado al dispositivo lxdbr0 que definimos en la instalación de LXD tras ejecutar el comando lxd init.

El proceso consiste en parar el contenedor, indicarle explícitamente que queremos conectar el dispositivo lxdbr0 a la tarjeta de red del contenedor eth0 y a continuación configurar el dispositivo para que siempre le asigne la misma dirección IP que le indiquemos, en este caso 192.168.101.201. A continuación se muestran los comandos necesarios para llevar a cabo esta acciones:

$ lxc stop micontenedor

$ lxc network attach lxdbr0 micontenedor eth0

$ lxc config device set micontenedor eth0 ipv4.address 192.168.101.201

$ lxc start micontenedor

En los comandos he resaltado en cursiva los valores que pueden ser diferentes en el caso del lector.

@josrrp




Comentarios

Entradas populares de este blog

Instalando Moodle con Docker

En este blog ya hemos hablado en varios artículos sobre la tecnología de contenedores, pero hasta ahora nos habíamos centrado en LXD . En este artículo vamos a explicar cómo podemos instalar Moodle en menos de un minuto (dependiendo de la velocidad de descarga que se tenga, se puede alargar un poco más) usando contenedores. Acerca de Moodle No voy a explicar que es Moodle ni como instalarlo desde cero, para eso existe en Internet multitud de tutoriales. Lo que sí quiero comentar es que para instalar Moodle hace falta un servidor web con PHP . Además requiere que PHP tenga instalado una serie de componentes adicionales. Por otro lado, necesitamos tener instalado en el servidor un sistema de gestión de bases de datos relacional, ya que Moodle almacena la información en él. Normalmente se utiliza MySQL , MariaDB o PostgreSQL . También debemos crear una base de datos específica para Moodle con su respectivo usuario. Durante la instalación Moodle creará las tablas necesari

Analizando el protocolo HTTP

El objetivo de este artículo es el de explicar de forma práctica el funcionamiento del protocolo HTTP y entender el intercambio de datos que se realiza entre los servidores y los clientes web. Por otro lado, cubre la necesidad de tener un texto en español que sirva de referencia a mis alumnos de Servicios en Red  a la hora de realizar la práctica de clase  HTTP-1 . La idea es ver de forma práctica el funcionamiento interno del protocolo HTTP . Para ello, vamos a utilizar un par de herramientas de la línea de comandos de Linux ( telnet y netcat ), con las que vamos a simular el comportamiento tanto del navegador como del servidor web. HTTP es un protocolo de la capa de aplicación, y como muchos otros protocolos de esta capa, está basado en texto. De hecho, los comandos que envía el navegador al servidor y sus respuestas se pueden leer perfectamente en inglés. Por defecto, HTTP utiliza el puerto 80 TCP y HTTPS  el puerto 443 TCP. Los ejemplos que vamos a ilustrar serán

ZFS, Primera parte

Cuando el año pasado instalé LXD y lo configuré por primera vez, me encontré que podía utilizar, de hecho se recomienda, el sistema de ficheros ZFS para albergar los contenedores. Posteriormente, cuando instalé Proxmox en el servidor de mi departamento, me encontré de nuevo con  ZFS . Anteriormente no le había prestado mucha atención a  ZF S , normalmente utilizo EXT4 o XFS , pero estaba claro que había una estrecha relación entre  ZFS  y los sistemas de virtualización. ZFS  es un sistema de ficheros desarrollado por Sun Microsystems  (creadores también del lenguaje de programación Java ), posteriormente la empresa fue adquirida por Oracle , actuales propietarios. OpenZFS  es la variante libre y posee una licencia de tipo  CDDL , que aunque es software libre, es incompatible con GPL . Por este motivo, el kernel de Linux no lo incorpora de serie. Sin embargo, los usuarios pueden instalarlo sin problemas ya que se encuentra en los repositorios de la mayoría de las distribucione