Docker - TP 4 : Docker Swarm

Thomas S.

2018-2019

Docker - TP 4 : Docker Swarm

Sommaire

  • Une ruche connectée
  • TP final

Docker - TP 4 : Docker Swarm

Features

Docker - TP 4 : Docker Swarm

Créer nœud maitre

docker swarm init --advertise-addr IP_VISIBLE

L'éxécution donne la commande pour rejoindre le nœud,
Voir les nœuds :

docker node ls

Docker - TP 4 : Docker Swarm

Rejoindre nœud maitre

Obtenir les tokens pour rejoindre

docker swarm join-token worker

docker swarm join-token manager

Docker - TP 4 : Docker Swarm

Supprimer nœud esclave

docker node rm WORKER_NAME

Docker - TP 4 : Docker Swarm

Ajouter des services

Sur le maitre :

docker service create --replicas NB_REPLICAS -p 80:80 --name INSTANCE_NAME IMAGE

Docker - TP 4 : Docker Swarm

Ajouter des services

Voir les services :

docker service ls

Voir les instances lancées :

docker service ps [INSTANCE_NAME]

Docker - TP 4 : Docker Swarm

Enlever les services d'un nœud

docker node update --availability drain NODE_NAME

Pour voir si ça fonctionne : docker service ps INSTANCE_NAME

Pour le remettre actif, mettre --availability active

Docker - TP 4 : Docker Swarm

Mettre à jour le nombre de services

docker service scale INSTANCE_NAME=TOTAL

Pour voir si ça fonctionne : docker service ls

Docker - TP 4 : Docker Swarm

Enlever les services

docker service rm INSTANCE_NAME

Pour voir si ça fonctionne : docker service ls

Docker - TP 4 : Docker Swarm

Infos sur les nœuds

Soi-même :

docker node inspect self

Un autre nœud

docker node inspect NAME

Service(s) en éxécution

docker node ps NAME

Docker - TP 4 : Docker Swarm

Mise à jour progressive

docker service update --image IMAGE:TAG INSTANCE_NAME

Pour voir si ça fonctionne : docker service ls

Docker - TP 4 : Docker Swarm

TP1 : Une mise en bouche

NON NOTÉ ! Utiliser toutes les commandes vues précédemment pour voir le résultat qu'elles produisent.

Afin de facilité le travail, on va mettre en place un nginx pour commencer.

Ensuite, tenter avec une application web qui affiche une IP par exemple.

Docker - TP 4 : Docker Swarm

TP2 : Une mise en application plus concrète

NON NOTÉ ! Reprendre le TP (Celui sur les IPs du cours précédent) et utiliser la scalabilité pour faire apparaitre les IPs.

Docker - TP 4 : Docker Swarm

TP3 : Utilisation du HealthCheck

NON NOTÉ ! Reprendre le cours sur le Dockerfile, et utiliser la propriété HEALTHCHECK (cf. Vers la fin).

Docker - TP 4 : Docker Swarm

TP4 : Final

Perceval - C'est mortel

Docker - TP 4 : Docker Swarm

TP4 : Final

NOTÉ ! A faire en groupe (2 personnes max. sauf exception de ma part)

Petit projet composé de deux sous projets :

  • Une infrastructure Swarm avec des workers;
  • Un caller qui appellera cette infrastructure.

Prévoir un projet Gitlab (la forge) avec moi en collaborateur (prévoir des sous dossiers si vous faites un slave vous même)

Voir les diapos suivantes

Docker - TP 4 : Docker Swarm

TP4 : Final - Infra Docker Swarm (1/4)

Votre infrastructure devra pouvoir répondre à des résolutions de hash MD5. Si la charge de travail (monitorer) devient trop importante, des containers devront être créer. Et inversement.

Il y aura donc des serveurs en écoute (scalabilité), un container capable de changer la scalabilité, et éventuellement une base de données capable de stocker les hash réussi (Redis ?).

Docker - TP 4 : Docker Swarm

TP4 : Final - Infra Docker Swarm (2/4)

Scheme

Docker - TP 4 : Docker Swarm

TP4 : Final - Call (3/4)

Une petite appli capable d'envoyer des requètes (HTTP ou WebSocket) vers cette infra. Une petite interface utilisateur permettant de choisir des modes gentils, normals, agressifs est requise.

Le plus, serait d'avoir le monitoring plus ou moins (5 - 10 secondes) de l'infrastructure (idem par HTTP ou WebSocket par exemple).

Comment accède-t-on à Docker dans un container ? Avec cette image (docker:dind).

L'esclave pour gagner du temps : Docker hub

Docker - TP 4 : Docker Swarm

TP4 : Requis (4/4)

  • Pas de languages de programmations obligatoires;
  • Forcément du Docker Linux (pour me faciliter la tâche de correction 😄);
  • Des projets Git lisibles, complets, propres;
  • Bon courage

Docker - TP 4 : Docker Swarm

TP4 : Final

Bohort - Bon courage
Dernière maj : Voir Github 🐻 1 /
Précédent
Suivant