WindowsMacSoftwareConfiguraciónSeguridadProductividadLinuxAndroidRendimientoConfiguraciónApple Todo

Introducción a Docker Swarm

Editado 16 Hace unas horas por ExtremeHow Equipo Editorial

DockerOrquestaciónModo de enjambreContenedoresDevOpsGestión de clústeresEscalamientoConfiguraciónLínea de comandosDespliegue de Aplicaciones

Introducción a Docker Swarm

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.

Prerrequisitos

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í.

Paso 1: Verificar la versión de Docker

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.

Paso 2: Inicializar el swarm en el nodo administrador

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.

Paso 3: Añadir nodos trabajadores al swarm

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.

Paso 4: Verificar la instalación de 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.

Paso 5: Desplegar servicios en Docker Swarm

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.

Paso 6: Gestionar servicios

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

Paso 7: Expansión de servicios

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.

Paso 8: Actualizar servicios

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.

Paso 9: Eliminar servicios

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.

Paso 10: Dejar el swarm

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

Conclusión

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


Comentarios