Gestion et mise à l'échelle des services Swarm
Déploiement d'un service
Pour déployer un service sur Docker Swarm, vous pouvez utiliser la commande docker service create. Par exemple, pour déployer un serveur web Nginx, vous pouvez exécuter la commande suivante :
docker service create --name nginx -p 80:80 nginx:latest
Cela créera un nouveau service nommé "nginx" et le déploiera sur l'essaim. Le service exposera le port 80 sur l'hôte et le redirigera vers le port 80 dans le conteneur.
Mise à l'échelle d'un service
Vous pouvez mettre à l'échelle le nombre de répliques (tâches) d'un service à l'aide de la commande docker service scale. Par exemple, pour mettre à l'échelle le service "nginx" à 5 répliques, vous pouvez exécuter :
docker service scale nginx=5
Cela créera 4 tâches supplémentaires pour le service "nginx", et le nœud manager les planifiera automatiquement sur les nœuds workers disponibles.
Mise à jour d'un service
Vous pouvez mettre à jour la configuration d'un service à l'aide de la commande docker service update. Par exemple, pour mettre à jour le service "nginx" afin d'utiliser une version d'image différente, vous pouvez exécuter :
docker service update --image nginx:1.19 nginx
Cela mettra à jour le service "nginx" pour qu'il utilise l'image "nginx:1.19".
Surveillance des services Swarm
Vous pouvez surveiller l'état de vos services Swarm à l'aide des commandes docker service ls et docker service ps. La commande docker service ls vous affichera une liste de tous les services en cours d'exécution dans l'essaim, tandis que la commande docker service ps vous affichera l'état de chaque tâche au sein d'un service.
## Liste de tous les services
docker service ls
## Liste des tâches pour un service spécifique
docker service ps nginx
Mise hors service des nœuds
Si vous devez effectuer une maintenance sur un nœud, vous pouvez le "mettre hors service", ce qui entraînera le réacheminement par le manager de toutes les tâches exécutées sur ce nœud vers d'autres nœuds disponibles. Vous pouvez le faire à l'aide de la commande docker node update :
docker node update --availability drain <NODE-ID>
Remplacez <NODE-ID> par l'ID du nœud que vous souhaitez mettre hors service.
Ceci couvre les bases de la gestion et de la mise à l'échelle des services Docker Swarm. Avec ces connaissances, vous devriez être en mesure de déployer, de mettre à l'échelle et de maintenir vos applications exécutées sur un Docker Swarm.