Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Swarm

Curso de Swarm

Guido Vilariño

Guido Vilariño

Controlando el despliegue de servicios

13/24
Recursos

Aportes 16

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Comandos usados en la clase con el servicio ejemplo pinger

# Actualizar las replicas de un servicio
docker service update --replicas=20 pinger

# Actualizar paralelismo y orden de la configuración de update en el servicio pinger
docker service update --update-parallelism 4 --update-order start-first pinger

# Actualizar accion en fallo y radio maximo de falla de la configuración de update en el servicio pinger
docker service update --update-failure-action rollback --update-max-failure-ratio 0.5 pinger

# Actualizar paralelismo de la configuracion de rollback en el servicio de pinger
docker service update --rollback-parallelism 0 pinger

Que buena clase y muy practica

docker service scale pinger=10
docker service  update --replicas=20 pinger
docker service  update -d --replicas=20 pinger
docker service inspect pinger
docker service  update --update-parallelism 4 --update-order start-first pinger
docker service inspect pinger
docker service update --args "ping www.facebook.com" pinger
docker service ps pinger
docker service update --update-failure-action rollback --update-max-failure-ratio 0.5 pinger
docker service update --rollback-parallelism 0 pinger
docker service update --args "ping www." pinger
  • Podemos configurar la forma de actuar cuando falle una actualización, podemos indicar que se pause, siga adelante o haga un rollback.

que hacemos cuando --rollback-failure-action falla!
esas cosas que no te dejan dormir!

En el entry “UpdateConfig” se puede ver como está configurado el servicio para comportarse cuando tiene que hacer un update y cuando tiene que rotar sus tareas.

  "UpdateConfig": {
                "Parallelism": 1,
                "FailureAction": "pause",
                "Monitor": 5000000000,
                "MaxFailureRatio": 0,
                "Order": "stop-first"
            }

Si quieren leer un poco más sobre los estados de las tareas cuando se actualiza el servicio acá dejo el link de la Documentación oficial de Docker
https://docs.docker.com/engine/swarm/how-swarm-mode-works/swarm-task-states/

Joya.

Que excelente clase. Con esto ya podemos prevenirnos de subir cualquier servicio roto

tengo una duda, habias puesto de ejemplo real de si el servidor normalmente tarda 5 segundos en arrancar y detecta que ya pasó ese tiempo entonces se produce el error y swarm automaticamente hace el rollback, ahora bien como hacemos para que swarm haga esto mismo pero con errores de codigo que no afectan de manera directa como por ej: dar un error 500 o tirar el server abajo, si no que daña el flujo interno al solo ser error de codigo, te doy un ejemplo, no poder conectarse a mysql desde php, hay maneras de hacer un catch de ese tipo de errores y asi podemos tambien hacer que swarm se adapte a nuestro contexto de errores?

docker service update --update-parallelism 4 --update-order start-first pinger

docker service update --update-failure-action rollback --update-max-failure-ratio 0.5 pinger

que cosa mas poderosa alfin estoy trabajando en un cluster , algo que siempre eh querido hacer!!

– Actualizar las replicas de un servicio, agregando mas replicas

docker service update --replicas=20 pinger
docker service update -d --replicas=20 pinger

– Actualizar paralelismo y orden de la configuración de update en el servicio pinger (stop-first: Arranca con esta cantidad de tareas, start-first: Creame mas tareas cuando esten listas las nuevas y borramela las viejas)

docker service update --update-parallelism 4 --update-order start-first pinger
docker service inspect pinger
docker service update --args "ping www.facebook.com" pinger

– Actualizar accion en fallo y radio maximo de falla de la configuración de update en el servicio pinger

docker service update --update-failure-action rollback --update-max-failure-ratio 0.5 pinger

– Actualizar paralelismo de la configuracion de rollback en el servicio de pinger

docker service update --rollback-parallelism 0 pinger

Intentando hacer roolback de un rolback

  • docker service update --replicas=<n> <servicename>, actualiza el numero de replicas del servicio.
  • docker service update --update-parallelism <n> --update-order <start-first> <servicename>, configura los n nodos que se actualizaran en paralelo, así como se indica el update order.
  • docker service update --update-failure-action rollback --update-max-failure-ratio <n> <servicename>, configura el max n de fallas de un update antes de realizar un rollback del servicio.
  • docker service update --rollback-parallelism <n> <servicename>, configura los n nodos que se haran rollback en paralelo, [0=todos]

Para hacer inspect del valor UpdateConfig de un servicio podemos hacer:

docker service inspect --format="{{ json .Spec.UpdateConfig }}" pinger