Editado 16 Hace unas horas por ExtremeHow Equipo Editorial
DockerOrquestaciónModo de enjambreContenedoresDevOpsGestión de clústeresEscalamientoConfiguraciónLínea de comandosDespliegue de Aplicaciones
Traducción actualizada 16 Hace unas horas
Docker Swarm es una herramienta que te permite crear y gestionar un clúster de nodos Docker. Proporciona una forma de orquestar contenedores a gran escala, lo que significa que puedes desplegar, escalar y gestionar contenedores Docker a través de múltiples nodos. Esto es esencial para aplicaciones que requieren alta disponibilidad y balanceo de carga.
Antes de configurar Docker Swarm, necesitas instalar Docker en tus máquinas Linux. Se recomienda tener al menos tres nodos (un administrador y dos trabajadores) para crear un clúster de Swarm resiliente. Asegúrate de que todos tus nodos estén en la misma red y puedan comunicarse entre sí.
Primero, asegúrate de que Docker esté instalado en todas tus máquinas. Puedes verificar la versión de Docker ejecutando el siguiente comando en cada máquina:
docker --version
Si Docker no está instalado, puedes seguir el documento oficial de instalación de Docker para Linux para tu distribución, como Ubuntu, CentOS, etc.
Selecciona una de tus máquinas Linux como el administrador de Swarm. El nodo administrador es responsable de gestionar el clúster y orquestar los servicios.
En el nodo administrador, inicia el clúster de swarm con el siguiente comando:
docker swarm init --advertise-addr <MANAGER-IP>
Reemplaza <MANAGER-IP>
con la dirección IP del nodo administrador. Después de ejecutar este comando, Docker proporcionará un comando para unir los nodos trabajadores a este Swarm. Asegúrate de anotar este comando, ya que lo usarás pronto.
En cada nodo trabajador, ejecuta el comando de unión proporcionado por Docker Swarm después de la inicialización en el nodo administrador. El comando se verá algo así:
docker swarm join --token SWMTKN-1-xxxxxxxx <MANAGER-IP>:2377
Este comando incluye el token específico para tu configuración de Swarm y la dirección IP del administrador. Ejecuta este comando en cada nodo trabajador. Si tiene éxito, el terminal mostrará un mensaje de confirmación indicando que el nodo se ha unido al Swarm.
Para verificar que los nodos trabajadores se han unido exitosamente al swarm, regresa a tu nodo administrador. Ejecuta el siguiente comando para ver todos los nodos:
docker node ls
Deberías ver una lista de los nodos en tu swarm, incluidos administradores y trabajadores. Esta salida muestra el estado de cada nodo y su rol.
Ahora que has configurado Docker Swarm, puedes desplegar servicios en tu Swarm. Un servicio en Docker Swarm es una tarea que define cómo se ejecutará un contenedor en el Swarm.
Aquí hay un ejemplo de cómo desplegar un servicio simple:
docker service create --replicas 3 --name hello_world alpine ping docker.com
Este comando crea un servicio llamado "hello_world" que ejecuta tres réplicas del contenedor Alpine Linux, realizando un ping a docker.com. Docker Swarm distribuirá estas réplicas entre los nodos automáticamente.
Para listar todos los servicios corriendo en tu swarm, usa el siguiente comando en el nodo administrador:
docker service ls
Para obtener información más detallada sobre un servicio específico, incluidas las tareas (o contenedores) que están corriendo, utiliza:
docker service ps <service_name>
Por ejemplo, para inspeccionar un servicio "hello_world" ya desplegado:
docker service ps hello_world
Una de las ventajas de Docker Swarm es la capacidad de escalar fácilmente los servicios. Puedes aumentar o disminuir el número de réplicas de un servicio así:
docker service scale hello_world=5
Este comando aumentará el número de réplicas en ejecución para el servicio "hello_world" a 5. Docker Swarm gestionará qué nodos reciben estas réplicas adicionales, asegurando un balanceo de carga adecuado.
Puedes actualizar la configuración de un servicio en ejecución sin detenerlo. Por ejemplo, puedes cambiar la versión de la imagen utilizada por el servicio.
docker service update --image alpine:latest hello_world
Esto actualiza el servicio "hello_world" para usar la última versión de la imagen Alpine. Docker Swarm realiza una actualización continua, reemplazando las tareas antiguas con nuevas tareas usando la imagen actualizada sin tiempo de inactividad.
Para eliminar un servicio cuando ya no se necesita, ejecuta el siguiente comando:
docker service rm hello_world
Este comando elimina el servicio especificado del swarm y detiene todas las réplicas asociadas.
Si decides eliminar un nodo trabajador del swarm, puedes abandonarlo usando este comando en el nodo trabajador:
docker swarm leave
Para el nodo administrador, si quieres eliminarlo o reiniciarlo, usa:
docker swarm leave --force
Configurar Docker Swarm en Linux te permite gestionar y escalar contenedores de manera eficiente a través de múltiples nodos. Esta guía te lleva a través de iniciar Docker Swarm, añadir nodos, desplegar servicios, escalar servicios, actualizar servicios y finalmente eliminar nodos y servicios cuando sea necesario.
Al implementar Docker Swarm, das un gran paso para proporcionar alta disponibilidad, balanceo de carga y gestión simplificada de contenedores. Puedes explorar más las capacidades de Docker Swarm, como la configuración de red y la comunicación segura de nodos.
Este conocimiento forma una base sólida sobre la cual puedes construir implementaciones avanzadas e integrarte con tuberías de CI/CD para automatizar tus procesos de desarrollo y entrega.
Si encuentras algo incorrecto en el contenido del artículo, puedes