CodeGym /Cursos /Docker SELF /Estudio de la red overlay

Estudio de la red overlay

Docker SELF
Nivel 18 , Lección 1
Disponible

7.1 Estudiando la red overlay

La red overlay — es una red distribuida de Docker que permite que los contenedores que se ejecutan en diferentes hosts interactúen entre sí. A menudo se utiliza en el contexto de la orquestación de contenedores como Docker Swarm o Kubernetes, para proporcionar comunicación entre los contenedores que se ejecutan en diferentes nodos. En esta lección veremos cómo crear y usar una red overlay, además de ejemplos de su aplicación.

La red overlay crea una red distribuida virtual sobre las redes existentes, uniendo varios hosts en un único espacio de red. Esto permite que los contenedores interactúen como si estuvieran en una misma red local, sin importar la ubicación física de los hosts.

Ventajas de usar la red overlay:

  1. Comunicación entre contenedores en diferentes hosts: proporciona interacción en red entre los contenedores que se ejecutan en diferentes nodos.
  2. Aislamiento: permite crear espacios de red aislados para diferentes aplicaciones.
  3. Escalabilidad: admite la adición y eliminación dinámica de nodos sin interrupciones en el servicio.

7.2 Creación de una red overlay

Para crear una red overlay primero tienes que inicializar un clúster de Docker Swarm. Esto creará un nodo gestor (manager) y permitirá crear redes distribuidas.

Paso 1: Inicializar Docker Swarm

Ejecuta el comando en el host que será el gestor del clúster. Este comando inicializa el clúster Swarm y muestra el comando para unir otros nodos al clúster.

Terminal

docker swarm init

Paso 2: Unir nodos de trabajo al clúster

En otros hosts, ejecuta el comando que generó docker swarm init para unirlos al clúster. Ejemplo del comando:

Terminal

docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377

Paso 3: Crear la red overlay

Después de inicializar el clúster, crea la red overlay utilizando el siguiente comando:

Terminal

docker network create -d overlay my_overlay_network

Paso 4: Comprobar la red

Para verificar que la red se creó correctamente, ejecuta el comando docker network ls, que mostrará una lista de todas las redes, incluyendo la nueva red overlay:

Terminal

docker network ls

Ejemplo del resultado:

Terminal

NETWORK ID     NAME                DRIVER    SCOPE
a1b2c3d4e5     my_overlay_network overlay  swarm

Ahora la red my_overlay_network está lista para usarse en aplicaciones distribuidas.

7.3 Uso de la red overlay

Ahora que la red está creada, puedes lanzar contenedores y servicios conectados a esta red.

Ejemplo de uso de la red overlay para servicios

En Docker Swarm puedes usar servicios para gestionar contenedores. Vamos a crear varios servicios que estarán conectados a la red overlay.

Paso 1: Crear un servicio de servidor web

Terminal

docker service create --name webserver --network my_overlay_network -p 8080:80 nginx

Este comando crea el servicio webserver, conectado a la red my_overlay_network. El servidor web estará disponible en la dirección http://localhost:8080.

Paso 2: Crear un servicio de base de datos

Terminal

docker service create --name database --network my_overlay_network -e POSTGRES_PASSWORD=mysecretpassword postgres

Aquí se crea el servicio database, conectado a la misma red, configurando la variable de entorno POSTGRES_PASSWORD.

Paso 3: Comprobar conexión entre servicios

Lanza un contenedor temporal para comprobar la conexión entre los servicios:

Terminal

docker run -it --network my_overlay_network busybox

Dentro del contenedor, usa comandos ping para verificar la conexión con el servidor web y la base de datos:

Terminal

ping webserver
ping database

Si la configuración está correcta, el ping mostrará una conexión exitosa, confirmando que los contenedores pueden interactuar usando nombres de hosts.

Paso 4: Verificar el estado de los servicios

Usa el comando docker service ls para comprobar el estado de los servicios creados:

Terminal

docker service ls

El resultado esperado mostrará información sobre los servicios lanzados, su estado y el número de réplicas.

Nota: La red overlay permite que los contenedores en diferentes hosts intercambien datos, siempre que estén conectados al mismo clúster Swarm.

7.4 Ejemplos de uso de redes overlay en Docker Compose

Docker Compose simplifica la gestión de aplicaciones multicontenedor y redes. Puedes definir una red overlay y usarla para la comunicación entre contenedores en el archivo docker-compose.yml.

Ejemplo de archivo docker-compose.yml:

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    networks:
      - my_overlay_network
        
  db:
    image: postgres:latest
    environment:
      POSTGRES_PASSWORD: mysecretpassword
    networks:
      - my_overlay_network
        
networks:
  my_overlay_network:
    driver: overlay
    attachable: true

Ejecutando Docker Compose:

Terminal

docker stack deploy -c docker-compose.yml mystack

Este comando desplegará el stack usando el archivo docker-compose.yml y creará servicios conectados a la red my_overlay_network.

Consejos prácticos:

  1. Monitoreo de red: Usa herramientas de monitoreo de Docker Swarm, como Docker Dashboard o Prometheus, para seguir el estado de la red y la interacción entre los contenedores.
  2. Gestión de escalabilidad: La red overlay admite la adición y eliminación dinámica de nodos. Asegúrate de configurar adecuadamente los recursos de red para escalar aplicaciones.
  3. Respaldo de configuraciones: Guarda regularmente las configuraciones de redes y stacks para una recuperación rápida en caso de fallos.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION