Escriu per cercar…

Swarm

Swarm converteix un conjunt de màquines amb docker en una sola màquina lògica on desplegues serveis en comptes de contenidors.

S'ensenya a
Big data aplicatProcessament distribuït i tolerància a falladesIABDSeguretat i alta disponibilitatAlta disponibilitatASIX

Introducció

Amb Compose pots declarar tota una aplicació en un fitxer, però tot passa en una sola màquina.

Aquesta màquina és un punt únic de fallada: si s’apaga, l’aplicació desapareix sencera.

I quan es queda petita, l’única sortida és comprar-ne una de més gran.

Docker Swarm agrupa diverses màquines amb docker en un sol clúster que es comporta com si fos una màquina única.

Tu declares quin servei vols i quantes rèpliques, i el clúster decideix a quina màquina va cada contenidor.

⚠️ No confonguis Swarm mode, que és el que ve integrat a docker des de la versió 1.12, amb Docker Classic Swarm, un producte anterior i independent que ja no es manté.

Nodes

Un clúster té dos tipus de node:

  • Els managers guarden l’estat desitjat del clúster i decideixen on va cada contenidor.

  • Els workers només executen el que el manager els diu.

Un manager també executa contenidors, tret que li diguis el contrari.

Inicialitza un clúster a la primera màquina:

shell
docker swarm init
Swarm initialized: current node (kv2b8nmhq7rksb2p9qzr8yqzu) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3pu6hszjas14... 192.168.123.6:2377

Executa l’ordre que t’ha donat en una segona màquina, i ja tens un clúster de dos nodes:

shell
docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS
kv2b8nmhq7rksb2p9qzr8yqzu *   node-1     Ready     Active         Leader
p3l7dxrfqzp8kt4m2bwn1cvxa     node-2     Ready     Active

Servei

En un swarm no arrenques contenidors: declares serveis.

Un servei diu quina imatge s’ha d’executar i quantes rèpliques n’hi ha d’haver.

shell
docker service create --name web --replicas 3 -p 80:80 httpd:2.4
docker service ls
ID             NAME   MODE         REPLICAS   IMAGE       PORTS
u8k1x0mzqpqe   web    replicated   3/3        httpd:2.4   *:80->80/tcp

Mira on han anat a parar les tres rèpliques:

shell
docker service ps web
NAME    IMAGE       NODE     DESIRED STATE   CURRENT STATE
web.1   httpd:2.4   node-1   Running         Running 2 minutes ago
web.2   httpd:2.4   node-2   Running         Running 2 minutes ago
web.3   httpd:2.4   node-1   Running         Running 2 minutes ago

Estàs llegint una vista prèvia.

Inicia la sessió amb Google per llegir la pàgina sencera.

Inicia la sessió amb Google

Només et demanarem que acceptis les condicions del servei.