Introducción
Docker Swarm es una herramienta poderosa para orquestar y gestionar aplicaciones en contenedores a gran escala. Una de las características clave de Docker Swarm es la capacidad de crear redes overlay (redes superpuestas), que permiten a los contenedores comunicarse de forma segura y eficiente a través de múltiples hosts. En este tutorial, lo guiaremos a través del proceso de creación de una red overlay en Docker Swarm y la implementación de servicios en ella.
Introducción a las redes overlay (superpuestas) de Docker
Las redes overlay (superpuestas) de Docker son una característica poderosa en Docker Swarm, que permiten una comunicación sin fisuras entre contenedores desplegados en múltiples hosts de Docker. Estas redes proporcionan una capa de red virtual que abstrae la infraestructura física de red subyacente, lo que permite a los contenedores conectarse y comunicarse como si estuvieran ejecutándose en el mismo host.
Comprender las redes overlay (superpuestas) de Docker
Las redes overlay (superpuestas) de Docker se basan en el protocolo VXLAN (Virtual Extensible LAN), que permite la creación de una red virtual de capa 2 sobre una red de capa 3. Esto permite que los contenedores se conecten a la misma red lógica, independientemente de su ubicación física.
graph LR
A[Docker Host 1] -- Overlay Network --> B[Docker Host 2]
B -- Overlay Network --> C[Docker Host 3]
C -- Overlay Network --> A
Las principales ventajas de utilizar redes overlay (superpuestas) de Docker incluyen:
- Conectividad multi-host: Los contenedores pueden comunicarse entre sí a través de múltiples hosts de Docker, lo que permite desplegar aplicaciones escalables y distribuidas.
- Detección automática de servicios: Los contenedores en la misma red overlay (superpuesta) pueden detectarse y conectarse entre sí utilizando el servicio DNS incorporado proporcionado por Docker Swarm.
- Equilibrio de carga: Las capacidades de equilibrio de carga de Docker Swarm se pueden aprovechar para distribuir el tráfico entre múltiples réplicas de un servicio que se ejecuta en la red overlay (superpuesta).
- Comunicación segura: Las redes overlay (superpuestas) de Docker admiten la cifrado, lo que garantiza una comunicación segura entre contenedores en diferentes hosts.
Arquitectura de la red overlay (superpuesta)
Las redes overlay (superpuestas) de Docker se construyen sobre el sistema de agrupación y orquestación de Docker Swarm. Cada nodo de Swarm (gestor o trabajador) participa en la red overlay (superpuesta), contribuyendo a la topología y enrutamiento general de la red.
Los componentes clave de la arquitectura de la red overlay (superpuesta) de Docker son:
- Punto final de túnel VXLAN (VTEP): Cada nodo de Swarm ejecuta un VTEP, que es responsable de encapsular y desencapsular el tráfico de red entre contenedores en la red overlay (superpuesta).
- Base de datos de la red overlay (superpuesta): Se utiliza una base de datos distribuida, como Raft, para almacenar la configuración de la red overlay (superpuesta) y la información de enrutamiento, lo que garantiza la coherencia y disponibilidad en todo el clúster de Swarm.
- Controlador de la red overlay (superpuesta): El controlador de la red overlay (superpuesta) de Docker es responsable de gestionar la creación, configuración y mantenimiento de la red overlay (superpuesta).
Al comprender los conceptos y la arquitectura subyacentes de las redes overlay (superpuestas) de Docker, estará mejor preparado para crear y gestionar estas redes en su entorno de Docker Swarm.
Creación de una red overlay (superpuesta) en Docker Swarm
Crear una red overlay (superpuesta) en Docker Swarm es un proceso sencillo. En esta sección, le guiaremos a través de los pasos para crear una red overlay (superpuesta) y configurarla para su uso en su entorno de Docker Swarm.
Requisitos previos
Antes de crear una red overlay (superpuesta), asegúrese de tener lo siguiente:
- Un clúster de Docker Swarm con al menos un nodo gestor y un nodo trabajador.
- La versión del motor de Docker debe ser 17.06 o posterior, ya que las versiones anteriores pueden no admitir toda la gama de características de la red overlay (superpuesta).
Creación de la red overlay (superpuesta)
Para crear una red overlay (superpuesta) en Docker Swarm, siga estos pasos:
- Conéctese a un nodo gestor de Docker Swarm.
- Ejecute el siguiente comando para crear una red overlay (superpuesta):
docker network create --driver overlay --attachable my-overlay-network
En este ejemplo, estamos creando una red overlay (superpuesta) llamada my-overlay-network con la bandera --attachable, que permite que los contenedores independientes se conecten a la red.
Verificación de la red overlay (superpuesta)
Después de crear la red overlay (superpuesta), puede verificar su creación e inspeccionar sus detalles utilizando los siguientes comandos:
## Listar todas las redes en el Docker Swarm
docker network ls
## Inspeccionar los detalles de la red overlay (superpuesta)
docker network inspect my-overlay-network
La salida del comando docker network inspect proporcionará información sobre la red overlay (superpuesta), incluyendo la subred, la puerta de enlace y la lista de nodos que participan en la red.
Despliegue de servicios en la red overlay (superpuesta)
Una vez creada la red overlay (superpuesta), puede desplegar servicios en ella. Al crear un servicio, puede especificar la red a la que se debe conectar utilizando la bandera --network:
docker service create --name my-service --network my-overlay-network nginx:latest
Esto creará un nuevo servicio llamado my-service y lo conectará a la red overlay (superpuesta) my-overlay-network.
Siguiendo estos pasos, puede crear y gestionar redes overlay (superpuestas) en su entorno de Docker Swarm, lo que permite una comunicación segura y escalable entre contenedores en múltiples hosts.
Despliegue de servicios en la red overlay (superpuesta)
Ahora que ha creado una red overlay (superpuesta) en su Docker Swarm, puede comenzar a desplegar servicios en ella. En esta sección, exploraremos cómo desplegar servicios en la red overlay (superpuesta) y aprovechar sus características.
Conectar servicios a la red overlay (superpuesta)
Al crear un nuevo servicio en Docker Swarm, puede especificar la red a la que se debe conectar utilizando la bandera --network. Esto garantiza que los contenedores del servicio se conecten a la red overlay (superpuesta) y puedan comunicarse con otros servicios en la misma red.
docker service create --name my-service --network my-overlay-network nginx:latest
En este ejemplo, estamos creando un nuevo servicio llamado my-service y lo estamos conectando a la red overlay (superpuesta) my-overlay-network.
Detección de servicios y equilibrio de carga
Una de las principales ventajas de utilizar una red overlay (superpuesta) son las capacidades integradas de detección de servicios y equilibrio de carga proporcionadas por Docker Swarm. Cuando los servicios se despliegan en la red overlay (superpuesta), pueden detectarse y comunicarse entre sí utilizando el servicio DNS interno de Swarm.
graph LR
A[Service A] -- Overlay Network --> B[Service B]
B -- Overlay Network --> C[Service C]
C -- Overlay Network --> A
El mecanismo de equilibrio de carga de Docker Swarm distribuye automáticamente el tráfico entre las réplicas de un servicio, garantizando alta disponibilidad y escalabilidad.
Comunicación segura
Las redes overlay (superpuestas) de Docker admiten la cifrado, lo que garantiza una comunicación segura entre contenedores en diferentes hosts. Esto es especialmente importante cuando se despliegan aplicaciones o servicios sensibles que requieran cifrado de extremo a extremo.
Escalado de servicios
A medida que su aplicación crece, puede escalar fácilmente sus servicios agregando más réplicas. Docker Swarm manejará automáticamente la configuración de red y el equilibrio de carga de las nuevas réplicas, garantizando que puedan comunicarse sin problemas con otros servicios en la red overlay (superpuesta).
docker service scale my-service=5
Este comando escalará el servicio my-service a 5 réplicas, y Docker Swarm garantizará que las nuevas réplicas se conecten a la red overlay (superpuesta) y puedan ser alcanzadas por otros servicios.
Al desplegar servicios en la red overlay (superpuesta) de Docker, puede aprovechar la conectividad sin fisuras, la detección de servicios, el equilibrio de carga y las características de seguridad proporcionadas por Docker Swarm, lo que facilita la creación y gestión de aplicaciones distribuidas y escalables.
Resumen
En este tutorial completo, ha aprendido cómo crear una red overlay (superpuesta) en Docker Swarm, un paso crucial para construir aplicaciones basadas en Docker escalables e interconectadas. Al aprovechar el poder de las redes overlay (superpuestas), puede habilitar una comunicación sin fisuras entre sus servicios en contenedores, garantizando una infraestructura sólida y eficiente. Con el conocimiento adquirido de esta guía, ahora puede administrar y optimizar con confianza su entorno de Docker Swarm según sus necesidades específicas.



