Administración y Escalado de Servicios Swarm
Desplegando un Servicio
Para desplegar un servicio en Docker Swarm, puedes usar el comando docker service create. Por ejemplo, para desplegar un servidor web Nginx, puedes ejecutar el siguiente comando:
docker service create --name nginx -p 80:80 nginx:latest
Esto creará un nuevo servicio llamado "nginx" y lo desplegará en el swarm. El servicio expondrá el puerto 80 en el host y lo redireccionará al puerto 80 en el contenedor.
Escalando un Servicio
Puedes escalar el número de réplicas (tareas) de un servicio usando el comando docker service scale. Por ejemplo, para escalar el servicio "nginx" a 5 réplicas, puedes ejecutar:
docker service scale nginx=5
Esto creará 4 tareas adicionales para el servicio "nginx", y el nodo administrador las programará automáticamente en los nodos trabajadores disponibles.
Actualizando un Servicio
Puedes actualizar la configuración de un servicio usando el comando docker service update. Por ejemplo, para actualizar el servicio "nginx" para usar una versión de imagen diferente, puedes ejecutar:
docker service update --image nginx:1.19 nginx
Esto actualizará el servicio "nginx" para usar la imagen "nginx:1.19".
Monitorizando Servicios Swarm
Puedes monitorear el estado de tus servicios swarm usando los comandos docker service ls y docker service ps. El comando docker service ls te mostrará una lista de todos los servicios que se ejecutan en el swarm, mientras que el comando docker service ps te mostrará el estado de cada tarea dentro de un servicio.
## Listar todos los servicios
docker service ls
## Listar tareas para un servicio específico
docker service ps nginx
Drenando Nodos
Si necesitas realizar mantenimiento en un nodo, puedes "drenar" el nodo, lo que hará que el administrador reprograme cualquier tarea que se esté ejecutando en ese nodo a otros nodos disponibles. Puedes hacerlo usando el comando docker node update:
docker node update --availability drain <NODE-ID>
Reemplaza <NODE-ID> con el ID del nodo que deseas drenar.
Esto cubre los fundamentos de la administración y el escalado de servicios Docker Swarm. Con este conocimiento, deberías poder desplegar, escalar y mantener tus aplicaciones que se ejecutan en un Docker Swarm.