Swarm

Création d'un swarm

sudo docker-machine ssh <HOSTNAME>

( '>')
/) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY.
(/-_--_-\) www.tinycorelinux.net

sudo docker swarm init

Il est possible d'adresser l'adresse IP avec le paramètre --advertise-addr [MANAGER IP]

sudo docker swarm init --advertise-addr 192.168.99.1

Swarm initialized: current node (lqa547d54gmcrj3ve44iy5nos) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-0i0hed99q0tb7im8f0970u5bb3qycq1gg0yovcmg6dglgq05ei-3yjxi3i5q5l4hb14dan45dse9 192.168.99.1:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

Ajout d'un node

sudo docker swarm join --token SWMTKN-1-0...

L'exécution de la commande donnée lors de l'init se fait à partir des machines Workers

This node joined a swarm as a worker.

Ajout d'un manager

sudo docker join-token manager

L'exécution de la commande se fait à partir d'une machine Manager

To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-3edht31px6h2dxy4pkks6y3w84b85iswuapixofdrp8f6n1dgl-32fz7im2v28bni3edr64pfqgf 192.168.99.101:2377

Le token donner en réponse doit être exécuter sur une machine qui n'a pas encore été instancier.

This node joined a swarm as a manager.

Vérification du nouveau node Manager

# sudo docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
fla30ymipka1agkdc5yresfad node1 Ready Active 19.03.5
sxnrd7ghuwy1jo8ylt0d1nnpo node2 Ready Active Leader 19.03.5
z2tcurug0z432abs82nyhjudm node3 Ready Pause 19.03.5
0w77y9czjwuxkqyxazd3ahozx * node4 Ready Active Reachable 19.03.5

Liste de l'ensemble des nodes du cluster

sudo docker node ls

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
fla30ymipka1agkdc5yresfad * node1 Ready Active Leader 19.03.5
sxnrd7ghuwy1jo8ylt0d1nnpo node2 Ready Active 19.03.5
z2tcurug0z432abs82nyhjudm node3 Ready Active 19.03.5

Promotion d'un node worker en manager

sudo docker promote <HOSTNAME>

Node node2 promoted to a manager in the swarm.

Destitution d'un node manager en worker

sudo docker node demote <HOSTNAME>

Manager node1 demoted in the swarm.

Modification de la capacité du node à exécuter une tâche

sudo docker node update --availability [STATUS] <HOSTNAME>

L'option --availability dispose de 3 status :

pause : le node ne pourra plus recevoir de nouvelles tâches

drain : les tâches du node seront réparties sur d'autres node du cluster

active : le node repasse actif et pourra recevoir de nouvelles tâches

<HOSTNAME>
node3

Vérification de la prise en compte du status

# sudo docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
fla30ymipka1agkdc5yresfad node1 Ready Active 19.03.5
sxnrd7ghuwy1jo8ylt0d1nnpo * node2 Ready Active Leader 19.03.5
z2tcurug0z432abs82nyhjudm node3 Ready Pause 19.03.5

Suppression d'un Node

sudo docker swarm leave

La commande doit être executé sur chaque node Workers à supprimer.

Node left the swarm.

Pour supprimer un node Manager ajouter l'option -f

Node left the swarm.