Recopilando: sobre Docker-Engine para entrar posteriormente al tema que nos ocupa (Docker-Swarm), tenemos una forma Visual de hacerlo con este diagrama en el cual tenemos las tres capas (Server , Api , Cli) los objetos (images , container , networ , volumen) con esto podemos entender mejor (Docker-Suarm).
Docker-Swarm-Arquitectura
–. Docker Swarm es una herramienta de orquestación que se ejecuta en aplicaciones Docker. Crear e implementar un clúster de nodos Docker.
-. Cada nodo de un Docker Swarm es un demonio de Docker, y todos los demonios de Docker interactúan mediante la API de Docker. Cada contenedor dentro del Swarm puede ser implementado y accedido por nodos del mismo clúster. Los Nodos-Docker que es un Demonio-Docker, pueden tener todos los contenedores que queramos solo esta limitado por las maquinas de dispongamos.
-.Docker-Swarm puede reprogramar contenedores en caso de dejar de funcionar, (los contenedores del nodos). El nodo-Swarm tiene una carpeta de respaldo que podemos usar para restaurar los datos en un nuevo contenedor.
-. Aplicando todo lo comentado anteriormente para crear el diagrama siguiente, tenemos Doker-Swarm crea los cluster y estos se compone de Nodes y estos de contenedores. Los Nodes se relacionan con los objetos como la Api-Docker, Registry.
-. Administración de clústeres integrada con Docker Engine use la CLI de Docker-Engine para crear un Swarm de Docker-Engines donde puede implementar servicios de aplicaciones.
-. Escalado para cada servicio, puede declarar la cantidad de tareas que desea ejecutar. Cuando escala hacia arriba o hacia abajo, el administrador de enjambres (Swarm) se adapta automáticamente agregando o eliminando tareas para mantener el estado deseado.
Servicios-Swarm
-. Los contenedores Docker se lanzan por medio de Servicios, tenemos dos tipos de Servicios :
- . Los servicios globales son los que controla los contenedores que se quieren ejecutarse en un nodo Swarm.
- . Los servicios replicados especifican la cantidad de tareas idénticas que requiere un desarrollador en la máquina host.
-. Al crear un Servicios, se iniciar tareas la cual se ejecuta para realiza el trabajo, por lo tanto podemos decir
que servicio es una descripción de una tarea que queremos ejecutar .
-. Los nodos-Swarm son una instancia del Motor-Docker, podemos implementar múltiples Nodos-Swarm en un solo servidor pero cuando ponemos el sistema en producción distribuiremos los Nodos-Swarm en diferentes
servidores físicos o virtuales
-. Como hemos dicho anteriormente los contenedores se lanzan mediante servicios, este conjunto de contenedores (de una misma imagen) que nos permite el escalado de aplicación, por supuesto antes de implementar un Servicio-Docker tenemos que tener un Nodo-Swarm implementado
-. Tenemos dos tipos de (Nodo-Swarm) los (node-Manager) y (node-Worker) :
- . (node-Manager): Se encarga de tareas de mantenimiento y administración del clúster.
- . (node-Worker): Se encarga de recoge y ejecuta tareas manda el nodo administrador.
– . El (node-Worker) tiene un agente que informa sobre el estado de las tareas del nodo al (node-Manager), Los (node-Worker) se comunican con el (node-Manager) mediante API a través de HTTP.
-. En este tercer diagrama he implementado la creación de los Servicios ataves Docker-Cliente (Cli) y la comunicación del (node-master) con el (node-worker) a traves de HTTP.
Recopilando:
Creamos los servicios en la interfaces Cli, con la Api nos conectamos a nuestro ecosistema Swarm y orquestamos creando las tareas para los Servicios que es la asignación de trabajos a través de su dirección IP, los (node-master) asignas y instruyen a los (node-worker) para ejecutar la tareas. en esencia el (node-worker) ejecutan las tareas que le asigna el (node-master) .
Referencias: (Entorno-Moreluz)