TP8 : Mise en place d'un cluster Docker Swarm et Rolling Update
1. Introduction
Dans ce TP, vous allez :
- Créer un cluster Swarm avec plusieurs nœuds.
- Déployer un service simple « ping » avec Nginx.
- Mettre à l’échelle ce service.
- Effectuer une mise à jour progressive vers un service « pong ».
- Visualiser la répartition des conteneurs.
2.1. Préparation du cluster
- Activer un point d’accès Wi-Fi sur un téléphone pour connecter tous vos PC.
- Initialiser le Swarm sur un premier nœud (manager) :
- Rejoindre le cluster depuis les autres nœuds (workers) :
- Vérifier les nœuds :
2.2. Déploiement d’un service « ping »
Note : Nous utilisons une image personnalisée au lieu de l'image Nginx par défaut afin de mieux contrôler son contenu, notamment pour y inclure nos propres fichiers HTML et assurer une mise à jour cohérente lors du rolling update.
- Créer un fichier
docker-compose.yml: - Dans le dossier
html-ping, créer un fichierindex.htmlavec le texte "ping". - Construire et tagger l’image avant le déploiement :
- Pousser l’image vers un registre (obligatoire) :
- Déployer la stack :
- Tester l’accès :
- Ouvrez un navigateur sur
http://<IP_MANAGER>:8080: vous devriez voir "ping".
2.3. Scaling
- Monter à 10 réplicas :
- Vérifier la répartition :
- Redescendre à 4 réplicas :
2.4. Rolling Update vers « pong »
- Modifier votre page web pour afficher "pong" :
- Dans un nouveau dossier
html-pong, créer un fichierindex.htmlavec le texte "pong". - Construire et tagger l’image mise à jour :
- Pousser l’image vers un registre (obligatoire) :
-
Mettre à jour le service :
-
Vérifier la transition progressive :
- Le service doit passer de « ping » à « pong » sans interruption.
- Comment vérifié si il y a une intéruption ? A vour d'essayer des méthodes.
2.5. Visualisation
-
Déployer Docker Swarm Visualizer :
-
A vous de jouer ;)
-
Aller sur
http://<IP_MANAGER>:9000pour voir la répartition des conteneurs.
2.6. Nettoyage
- Supprimer la stack :
- Optionnel : quitter le Swarm sur chaque nœud (sauf manager) :
- Sur le manager :