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

Entendiendo el ciclo de vida de un servicio

9/24
Recursos

Desde el Cliente , ‘docker service create’ le envía al Nodo Manager el servicio: se crea, se verifican cuántas tareas tendrá, se le otorga una IP virtual y asigna tareas a nodos; esta información es recibida por el Nodo Worker, quien prepara la tarea y luego ejecuta los contenedores.

Aportes 16

Preguntas 0

Ordenar por:

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

El ciclo de vida es muy parecido a el ciclo de ir a un restaurante.

Usas la API de docker swarm para hablar con el orquestor, vas hacía donde esta la persona que toma las ordenes y le decis lo que queres.

La persona toma tu pedido y crea la orden (el orquestor crea el servicio).

Se tienen un monton de ordenes en el restaurante, y posiblemente en algún momento vamos a querer saber como esta la preparación de tu orden, asi que le asignamos un ID a tu orden asi podemos ir ‘chequeando’ como esta en el futuro (el orquestor le asigna una IP a tu servicio).

Hay que empezar a hacer lo que se pidio en la orden así que vamos a ver que cocinero (que nodo) esta disponible para trabajar, buscamos uno adecuado que pueda realizar lo que requiere nuestra orden y le damos la tarea (según cuanta cpu/memoria/necesidad de comunicación, él orquestor decide a que nodo darle el servicio)

El cocinero empieza a realizar la orden, si queremos saber como esta la orden, podemos verlo por que la orden tiene un ID, así que me puedo referir a esa orden de una forma única entre todas las otras ordenes que se estan haciendo en el restaurante

No necesitamos saber como el cocinero esta haciendo nuestra orden, si esta haciendo este o otro tipo de corte, estamos totalmente abstraídos de eso, de la misma forma que nosotros no vemos a los cocineros por que los maneja la persona que se encarga de las ordenes, nosotros ya no vemos los contenedores por que eso ahora es tarea de el/los orquestor(es) de swarm

// Ver estado de un servicio
docker service ps nombreServicio

// Ver información de un servicio
docker service inspect nombreServicio

// Ver logs
docker service logs -f nombreServicio

// Eliminar servicio
docker service rm nombreServicio

Un servicio es como una descripción de algo que se tiene que llevar a cabo, ahora esta descripción nos dice qué se quiere hacer, pero recordemos que se puede escalar los servicios, entonces podemos llevar el servicio en marcha según la escalabilidad que le demos, entonces le estaríamos diciendo al nodo manager “che quiero 5 nodos haciendo esto” entonces el nodo manager realiza su planificación, y en su planificación están 5 tareas de determinado servicio, las cuales asigna a los nodos workers.
Entonces tenes identificadores (IDs) para:

  • Identificar servicios, es decir la descripción de lo que se tiene que llevar a cabo.
  • Identificar los servicios en ejecución (tareas).
  • Identificar los contenedores en los cuales las tareas se están llevando a cabo.

Según entiendo sobre el tema los IDs en Swarm.

Ammm… en que clase se caerá Moby Dick al agua… jajaja
Yo dijo que en la clase 13 XD
(No Spoilers)

Ejecución de servicios en docker
Lo que docker usar para ejecutar servicios es sistema o un enfoque llamado **scheduling **o planificación.

Los **managers **planifican en que nodo van a ejecutarse los contenedores de los servicios, para eso le asigna tarea a los nodos.

Muy interesante

docker service ps pinger
docker service inspect pinger
docker service inspect --pretty pinger
docker service logs pinger
docker service logs -f pinger // para que siga sacando el resultado
docker service rm pinger

Imagen compartida en la clase.

Gran clase!

TIP: docker service rm elimina el contenedor creado para nos nodos. Ya que no aparece en el listado de contenedores:
>docker ps -a

Las tareas son templates que el manager le envía a los nodos worker para que puedan construir los contenedores de esa tarea.

Desde el Cliente , ‘docker service create’ le envía al Nodo Manager el servicio: se crea, se verifican cuántas tareas tendrá, se le otorga una IP virtual y asigna tareas a nodos; esta información es recibida por el Nodo Worker, quien prepara la tarea y luego ejecuta los contenedores.

– Ver el estado de un servicio

docker service ps <nameService>
docker service ps pinger

– Ver la informacion de un servicios

docker service inspect <namService>
docker service inspect pinger
docker service inspect --pretty pinger

– Ver logs de un servicio (-f: nos muestra en ejecución)

docker service logs -f <nameService>
docker service logs -f pinger

– Eliminar un servicio, despues de unos segundos elimina el contenedor

docker service rm <nameService>
doccer service rm pinger
  • Inspeccionar los contenedores de un servicio
docker service ps <service_name>
# docker service ps pigner
  • Inspeccionar la información de un servicio
docker service inspect <service_name>
# docker service inspect pinger
  • Inspeccionar los logs de un servicio
docker service logs -f <service_name>
# docker service logs -f pinger

Es importante que la aplicación sea de dos factores para poder saber si está funcionando correctamente

  • Destruir un servicio
 docker service rm <service_name>
 # docker service rm pinger

Cuando eliminamos un servicio no necesariamente se detiene el contenedor que usaba ese servicio instantáneamente, es posible que se tarde unos cuantos segundos más.

Moby estaba borrachito

// Ver estado de un servicio
docker service ps pinger
// Ver información de un servicio
docker service inspect pinger
// Ver logs
docker service logs -f pinger
// Eliminar servicio
docker service rm pinger