Escalado y Actualización de Servicios en Docker Swarm
Clase 12 de 24 • Curso de Swarm
Resumen
¿Cómo escalar servicios en un Swarm de Docker?
El despliegue de aplicaciones con Docker Swarm permite escalar y manejar servicios de manera eficiente en múltiples nodos. Una de las grandes ventajas de Swarm es la capacidad de escalar servicios fácilmente, asegurando disponibilidad y respuesta a la demanda del usuario. Veamos cómo podemos escalar y manejar servicios en un Swarm.
¿Cómo escalar un servicio?
Para escalar un servicio dentro de un Swarm, utilizamos el comando Docker Service Scale
. Esto nos permite crear réplicas de un servicio existente para mejorar la capacidad de manejo de solicitudes.
docker service scale Pinger=5
Esto indica a Docker que queremos cinco réplicas del servicio "Pinger". El scheduler se encarga de distribuir estas réplicas entre los nodos del Swarm.
¿Cómo verificar el estado del servicio escalado?
Después de escalar un servicio, es fundamental verificar que las tareas se distribuyeron como esperábamos. Podemos hacerlo mostrando el estado de las tareas con el comando:
docker service ps Pinger
Este comando proporciona detalles sobre el estado de las tareas, identificándonos en qué nodo se está ejecutando cada una, junto con su ID y estado.
¿Cómo ver los logs de nuestras réplicas?
Para asegurarnos de que nuestras réplicas funcionan correctamente, podemos verificar los logs de nuestro servicio en tiempo real:
docker service logs -f Pinger
Aquí, observamos el output de todas las réplicas, lo que permite un monitoreo continuo y efectivo del servicio.
¿Cómo actualizar un servicio en Docker Swarm?
En un entorno de producción, puede ser necesario actualizar un servicio ya escalado. Docker Swarm nos ofrece comandos para realizar actualizaciones sin downtime.
¿Cuál es el proceso de actualización de un servicio?
Si queremos cambiar la configuración del servicio, tal como la imagen usada o los argumentos de ejecución, podemos usar:
docker service update --args [nuevos_args] Pinger
Por defecto, Docker actualiza las tareas una por una, evitando el downtime y asegurando que el servicio permanezca accesible.
¿Qué es un rolling update?
El rolling update es un método de actualización inteligente que actualiza las tareas por turnos y garantiza que siempre haya instancias activas para atender solicitudes. Esto previene tiempos de inactividad y permite a los usuarios seguir utilizando el servicio sin interrupciones.
¿Cómo realizar un rollback en Docker Swarm?
Un cambio incorrecto o un error de actualización puede poner en riesgo la estabilidad del servicio. Para casos así, Docker Swarm ofrece la posibilidad de realizar un rollback a una versión estable previa del servicio.
¿Cómo ejecutar un rollback?
El comando docker service rollback
nos permite revertir a la última configuración conocida sin problemas:
docker service rollback Pinger
El rollback se ejecuta también uno por uno, manteniendo siempre el servicio activo y minimizando el downtime durante la restauración del estado.
¿Cómo se gestionan las versiones anteriores?
Docker Swarm conserva un historial de versiones aplicadas. Al realizar un rollback, podemos volver a configuraciones estables anteriores sin tener que recordar detalles específicos de la configuración pasada. Esto se administra mediante el comando de inspección:
docker service inspect Pinger
Aquí, las entradas de service spec mantendrán resumen de configuraciones anteriores, proporcionando transparencia y facilitando la gestión de servicios.
Teniendo en cuenta estas prácticas, puedes administrar y mantener servicios distribuidos con Docker Swarm de manera eficiente. ¡Sigue explorando y aplicando estos conceptos en tus proyectos para mejorar tus aplicaciones de red!