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
Obtenir les tokens pour rejoindre
docker swarm join-token worker
docker swarm join-token manager
docker node rm WORKER_NAME
Sur le maitre :
docker service create --replicas NB_REPLICAS -p 80:80 --name INSTANCE_NAME IMAGE
Voir les services :
docker service ls
Voir les instances lancées :
docker service ps [INSTANCE_NAME]
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 service scale INSTANCE_NAME=TOTAL
Pour voir si ça fonctionne : docker service ls
docker service rm INSTANCE_NAME
Pour voir si ça fonctionne : docker service ls
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 service update --image IMAGE:TAG INSTANCE_NAME
Pour voir si ça fonctionne : docker service ls
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, utiliser curl pour envoyer l'IP du client à nginx.
PS: Une simple vision des logs suffit à vérifier que ça fonctionne
NON NOTÉ ! Reprendre le cours sur le Dockerfile, et utiliser la propriété HEALTHCHECK (cf. Vers la fin).
NOTÉ ! A faire en groupe (2 personnes max. sauf exception de ma part)
Petit projet composé de deux sous projets :
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
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 ?).
Une petite appli (web ou desktop - en plus) capable d'envoyer des requètes (HTTP ou WebSocket) vers cette infra. Une petite interface utilisateur permettant de choisir des modes gentils, normals, agressifs (change l'envoie d'un hash aléatoire auto toutes les X secondes) 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) ou se connecter à la socket.
L'esclave pour gagner du temps : Docker hub
L'ensemble des caractères est : a ⟶ z A ⟶ Z 0 ⟶ 9
L'appli doit permettre: