TP08 - Matheo-hrts/2024-2025-Admin-2 GitHub Wiki

TP8 : Docker Swarm & High availability

1. Publier une image Docker sur dockerHub

Documentez brièvement l'image que vous avez conçue et publiée sur le Docker Hub, ainsi que les vérifications effectuées pour valider son fonctionnement.

Nous récupérons l'image nginx grâce à la commande suivante :

FROM nginx:1.25.4

COPY ./index.html /usr/share/nginx/html/

Ensuite nous construisons notre image grâce à la commande docker build -t matheohrts/l1-9-swarm:1.0 . Pour finir, nous le publions sur Docker Hub grâce à docker push.
Afin de vérifier si notre image fonctionne correctement, nous executons la commande docker pull marheohrts/l1-9-swarm:1.0 pour récupérer l'image et docker run -p 8080:80 marheohrts/l1-9-swarm:1.0 pour la lancer. Et pour finir, dans un browser, nous allons sur l'url avec le port indiquer.

image

2. Mise en place de votre Swarm

Documentez ce que vous avez mis en place pour obtenir votre Swarm. En particulier, faites, pour chaque configuration testée, un schéma qui représente votre service avec les différents noeuds du swarm, leurs rôles respectifs et les containers qu'ils font tourner. Notez, après chaque manipulation, vos observations et les conclusions que vous en tirez.

Afin de pouvoir joindre les autres swarm avec docker swarm join --token <token>, nous avons d'abord du ouvrir le port 2377 avec la commande sudo ufw allow 2377

Réponses aux questions

  • Comment changer le type d'un node? docker node promote <node>
  • Quelles commandes docker node sont disponibles, et lesquelles pourraient vous être utiles ?
  • demote
  • inspect
  • ls
  • promote
  • ps
  • rm
  • update
  • Après avoir lancé pour la première fois votre service, sur quels nodes ce service est-il exécuté? Comment avez-vous obtenu la réponse ?
  • l1-9-ephec-m (mangager)
  • l1-9-ephec-a docker ps sur chaque vps Cependant le site est joignable par tout les VPS
  • Le service a été lancé sur un port spécifique. Sur quel(s) VPS ce port est-il ouvert ?

Il tourne sur les 2 VPS avec le node

  • Que se passe-t'il si vous stoppez un node ? Et si vous aviez 'scalé' votre service à un seul replica et que vous stoppez le node sur lequel il tourne ?

On ne peut plus se connecter au serveur via ce node tant que le docker est inactif mais docker swarm réalloue le conteneur sur les autres noeuds disponible.

3. DNS Round robin

Documentez la mise en oeuvre du Round Robin DNS, et montrez qu'il fonctionne en documentant les commandes ou manipulations de validation.

Nous avons ajouté les adresses ip de chaque VPS dans la zone l1-9:

www    IN    A    54.36.182.163
www    IN    A    54.36.183.201
www    IN    A    54.36.180.61

Pour vérifier son fonctionnnement, nous effectuons les commandes suivantes : dig www.l1-9.ephec-ti.be

image

4. Pour aller plus loin

Documentez vos recherches, manipulations et conclusions sur les trois points d'approfondissement proposés si vous les avez réalisés.

4.1. Sécurité

4.2. Configuration (et secrets)

4.3 Woodytoys

⚠️ **GitHub.com Fallback** ⚠️