No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Swarm

Curso de Swarm

Guido Vilariño

Guido Vilariño

Administrando servicios en escala

12/24
Recursos

Aportes 24

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Comandos de la clase, con el ejemplo del servicio pinger

# Cambia el numero de tareas
docker service scale pinger=5

# Ver las tareas del servicio
docker service ps pinger

# Ver los logs del servicio
docker service logs -f pinger

# Ver la configuración del servicio
docker service inspect pinger

# actualizar alguna configuración del servicio
docker service update --args "ping www.amazon.com" pinger

# realiza rollback o cambia al spec anterior 
docker service rollback pinger

Docker swarm, cuando hace un update del servicio, guarda el contenido de la configuración anterior. Si hay un problema podemos hacer un rollback y volver a la configuración anterior. Se guarda en el entry “PreviousSpec”.

docker service inspect [nombre_servicio]

para ver el entry mencionado.

Como está explicado este curso me parece excelente. La verdad, así debería ser el de k8s. Quizá en una actualización puedan tomar como ejemplo este de aquí. Para quien lo sigue es mucho más fácil llevar a cabo los ejercicios planteados por el tutor.

Tenemos un swarm con multiples nodos, vamos a tratar de hacer es escalar nuestro servicio de pinger para que tenga muchas replicas

– Ejecutar scale para 5 tareas

docker service scale <nameService>=<cantidad>
docker service scale pinger=5

– Ver el estado de este servicio

docker service ps pinger

– Listamos contenedores para ver que estan corriendo mas de un contenedor

docker ps

– Vamos a ver los logs de este servicio, observamos que todo junto de todas las tareas sin perdernos ningun valor (Ctrl+C) Salir

docker service logs -f pinger 

– Inspeccionamos el servicio para ver cuantas replicas tiene

docker service inspect pinger

– Actualizar en caliente, cambiar configuracion

docker service update --args "ping www.amazon.com" pinger
docker service logs -f pinger 

– Si hay algun problema podemos volver a un estado anterior, es decir hacer un rollback

docker service rollback pinger

– Verificamos

docker service inspect pinger

Para escalar un servicio a varias réplicas usamos el siguiente comando:

  • docker service scale pinger=5
    En este caso, como solicitamos 5 réplicas y sólo tenemos 3 nodos, las dos réplicas restantes se asignarán entre esos nodos.

Para saber los servicios que están corriendo desde el nodo master usamos:

  • docker service ps pinger

Para saber qué contenedores están corriendo en cada nodo, nos situamos en cada nodo y corremos:

  • docker ps

Para ver los logs del servicio ejecutamos:

  • docker service logs -f pinger

Para poder actualizar “en caliente” un servicio:

  • docker service update --args “ping urlDelSitio” pinger
    Este proceso lo ejecuta uno por uno, para evitar el downtime.

Docker swarm, cuando hace un update del servicio, guarda el contenido de la configuración anterior. Si hay un problema podemos hacer un rollback y volver a la configuración anterior. Se guarda en el entry “PreviousSpec”.

  • docker service rollback pinger

el rollback me encanto jajajaja

genial lo del “docker service rolleback”!!

Genial

docker service scale pinger=6
docker service ps pinger
docker ps
docker service logs -f pinger
docker service inspect pinger
docker service update --args "ping www.amazon.com" pinger
docker service logs -f pinger
docker service rollback pinger
docker service ps pinger

Docker esta configurado por defecto para actualizar las tareas de los servicios una por una, de esa manera se garantiza que siempre este disponible.

  • docker service scale servicename=n, escala a n servicios el servicio servicename
  • docker service update --args "arguments" servicename, actualiza el servicio servicename con los argumentos indicados
  • docker service rollback servicename, realiza el rollback de los últimos cambios realizados del servicio servicename.

Increible lo del rollback, nunca falta la pifia!

Excelente! muy útil para mantener alta disponibilidad. https://labs.play-with-docker.com/ es una locura.

si desplegara multiples contenedores con esa tarea de ping a gran escala seria como un ataque de DNS?

docker service scale pinger=5 : escala y replica mi servicio

Super genial!!

node3] (local) root@192.168.0.26 ~
$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
74rdxq9v4urj        pinger              replicated          5/5                 alpine:latest       
[node3] (local) root@192.168.0.26 ~
$ docker service ps pinger
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE                 ERROR               PORTS
xqrohbjszrm5        pinger.1            alpine:latest       node3               Running             Running about a minute ago                        
ot6h0tav5shu         \_ pinger.1        alpine:latest       node3               Shutdown            Shutdown about a minute ago                       
pcx6r0es6oht         \_ pinger.1        alpine:latest       node3               Shutdown            Shutdown 6 minutes ago                            
2kj7lhqf5he3        pinger.2            alpine:latest       node3               Running             Running 2 minutes ago                             
f5a8zrufxi8g         \_ pinger.2        alpine:latest       node3               Shutdown            Shutdown 2 minutes ago                            
4hbb7f88bcoi         \_ pinger.2        alpine:latest       node3               Shutdown            Shutdown 6 minutes ago                         ```
Tenemos un swarm con multiples nodos, vamos a tratar de hacer es escalar nuestro servicio de pinger para que tenga muchas replicas \- Ejecutar scale para 5 tareas ```bashdocker service scale \<nameService>=\<cantidad>docker service scale pinger=5```- Ver el estado de este servicio ```bashdocker service ps pinger```- Listamos contenedores para ver que estan corriendo mas de un contenedor```bashdocker ps```- Vamos a ver los logs de este servicio, observamos que todo junto de todas las tareas sin perdernos ningun valor (Ctrl+C) Salir```bashdocker service logs -f pinger ```- Inspeccionamos el servicio para ver cuantas replicas tiene```bash docker service inspect pinger```- Actualizar en caliente, cambiar configuracion```bashdocker service update --args "ping www.amazon.com" pingerdocker service logs -f pinger ```- Si hay algun problema podemos volver a un estado anterior, es decir hacer un rollback```bashdocker service rollback pinger```- Verificamos```bash docker service inspect pinger``` \- ver los servicios```bashdocker service ls```
Tengo problemas para copiar y pegar el codigo del manager a los nodos desde la aplicacion lab play with docker , alguien puede explicarme como hacerlo? gracias

Cambia el numero de tareas

docker service scale pinger=5

Ver las tareas del servicio

docker service ps pinger

Ver los logs del servicio

docker service logs -f pinger

Ver la configuración del servicio

docker service inspect pinger

actualizar alguna configuración del servicio

docker service update --args “ping amazon” pinger

realiza rollback o cambia al spec anterior

docker service rollback pinger

Y cual es la diferencia entre Swarm y su rollback contra un gestionador de versiones como git?

La característica (_) en el nombre de los servicios significa que es un servicio con una versión antigua.

disculpen mi ignorancia pero no veo la relacion de esto con IBM cloud que es el motivo por que el que estoy haciendo el curso… espero alguien me pueda ayudar

En producción si no es el el swarm donde corremos la base

bien