[Docker] Swarm
Introduction
Docker Swarm permet de faire de la répartition de charge et de la HA dans vos infrastructures Docker.
Pour cela, on va mettre en place un cluster de noeuds avec des managers et des workers (masters/slaves).
Prérequis
- Avoir Docker installé sur tous les noeuds du cluster
Installation
Tout d'abord, rendez-vous sur votre Manager pour créer le cluster :
docker swarm init --advertise-addr <manager-IP>
Ensuite, il faut vous connecter sur chaque Workers pour les faire rejoindre votre cluster :
docker swarm join --token <TOKEN>
Le token a été affiché lors de la création du cluster sur le Manager sinon vous pouvez l'afficher avec cette commande :
docker swarm join-token worker
Et pour faire rejoindre des managers :
docker swarm join-token manager
Manuel
Afficher les membres du cluster
docker node ls
Déployer un conteneur dans le cluster
docker service create --name webserver -p 8080:80 nginx
Déployer une stack dans le cluster
docker stack deploy --compose-file compose.yml <STACK_NAME>
Afficher les services
docker service ls
Scale un service
docker service scale <SERVICE_NAME>=3
Supprimer une stack
docker stack rm <STACK_NAME>
Sortir un noeud du cluster
Sur le noeud :
docker swarm leave
Et depuis le Manager :
docker node rm <NODE_ID>