ajout drain et lister toute les task +

ajout des titres les element dans compose/stack
This commit is contained in:
Tom David--Broglio 2023-12-11 18:30:16 +01:00
parent 02adaa4fda
commit 2fd3144f09

View file

@ -591,47 +591,65 @@ docker0# docker swarm join-token <manager|worker>
Les _labels_ servent notamment à définir des contraintes de placement des
services lors de l'utilisation de _docker stack_.
### Drainer une machine du cluster
Pour effectuer un maintenance ou autre sur une machine (node), il faut la drainer (déplacer tous ses conteneurs vers les autres noeuds)
~~~
# docker node update --availability drain <noeud>
~~~
On peut verifier qu'il n'y a plus de services qui tournent sur cette machines [#lister-toute-les-tasks-de-tous-les-services-sans-docker-service](#lister-toute-les-tasks-de-tous-les-services-sans-docker-service)
### Supprimer une machine du cluster
De préférence après avoir drainé le noeud
~~~
# docker node rm <hash-machine>
~~~
## Compose/stack (docker stack)
Docker permet de déployer des infrastructures multi-conteneurs (_stacks_) simplement à l'aide de `docker stack` (anciennement Docker Compose, logiciel tier). Il est très utile dans le cadre de déploiement sur un cluster Swarm.
L'infra est à décrire dans un fichier YAML.
Déployer (ou mettre à jour à chaud) une nouvelle _stack_ :
### Déployer (ou mettre à jour à chaud) une nouvelle _stack_
~~~
# docker stack deploy -c <stack_name.yml> <stack name>
~~~
Lister les _stacks_ :
### Lister les _stacks_
~~~
# docker stack ls
~~~
Lister les _services_, toutes _stacks_ confondues ou pour une _stack_ donnée :
### Lister les _services_, toutes _stacks_ confondues ou pour une _stack_ donnée
~~~
# docker service ls
# docker stack services <stack name>
~~~
Lister les _tasks_ (replicas) d'une _stack_ ou d'un _service_ donné :
### Lister les _tasks_ (replicas) d'une _stack_ ou d'un _service_ donné
~~~
# docker stack ps <stack name>
# docker service ps <service name>
~~~
Supprimer une _stack_ :
### Lister toute les _tasks_ de tous les _services_ (sans docker service)
~~~
# for stack_name in $(docker stack ls --format "table {{.Name}}");do docker stack ps $stack_name ;done ;
# On peut aussi filtrer avec les task uniquement sur un noeud de la swarm
# for stack_name in $(docker stack ls --format "table {{.Name}}");do docker stack ps $stack_name --filter "NODE=nodeName" ;done ;
~~~
### Supprimer une _stack_
~~~
# docker stack rm <stack name>
@ -1048,3 +1066,14 @@ vous pouvez en désespoir de cause redémarrer le démon Docker.
En fonction de la configuration, redémarrer le démon Docker peut éteindre les conteneurs en cours d'exécution… ou pas.
[`live-restore`](https://docs.docker.com/config/containers/live-restore/) devrait permettre ça mais ça ne fonctionne par sur Debian 11.
## docker service ls `Error response from daemon: rpc error: code = Unimplemented desc = unknown method ListServiceStatuses`
Cette erreur peut arriver quand un noeud de la swarm est dans une version plus ancienne, différente de celle des autres noeud
~~~
# docker node ls
xxxxxxxxxxxxxxx appxx Ready Active Leader 18.09.7
~~~
Il faut alors mettre à jour docker sur ce noeud.