États des tâches Swarm
Docker vous permet de créer des services, qui peuvent démarrer des tâches. Un service est une description d'un état désiré, et une tâche fait le travail. Le travail est planifié sur les nœuds swarm dans cette séquence :
- Créer un service en utilisant
docker service create
. - La demande va à un nœud gestionnaire Docker.
- Le nœud gestionnaire Docker planifie le service pour s'exécuter sur des nœuds particuliers.
- Chaque service peut démarrer plusieurs tâches.
- Chaque tâche a un cycle de vie, avec des états comme
NEW
,PENDING
, etCOMPLETE
.
Les tâches sont des unités d'exécution qui s'exécutent une fois jusqu'à l'achèvement. Quand une tâche s'arrête, elle n'est pas exécutée à nouveau, mais une nouvelle tâche peut prendre sa place.
Les tâches progressent à travers un nombre d'états jusqu'à ce qu'elles se terminent ou échouent. Les tâches sont
initialisées dans l'état NEW
. La tâche progresse vers l'avant à travers un nombre d'
états, et son état ne va pas en arrière. Par exemple, une tâche ne va jamais de
COMPLETE
à RUNNING
.
Les tâches passent par les états dans l'ordre suivant :
État de la tâche | Description |
---|---|
NEW |
La tâche a été initialisée. |
PENDING |
Les ressources pour la tâche ont été allouées. |
ASSIGNED |
Docker a assigné la tâche aux nœuds. |
ACCEPTED |
La tâche a été acceptée par un nœud travailleur. Si un nœud travailleur rejette la tâche, l'état change à REJECTED . |
READY |
Le nœud travailleur est prêt à démarrer la tâche |
PREPARING |
Docker prépare la tâche. |
STARTING |
Docker démarre la tâche. |
RUNNING |
La tâche s'exécute. |
COMPLETE |
La tâche s'est terminée sans code d'erreur. |
FAILED |
La tâche s'est terminée avec un code d'erreur. |
SHUTDOWN |
Docker a demandé à la tâche de s'arrêter. |
REJECTED |
Le nœud travailleur a rejeté la tâche. |
ORPHANED |
Le nœud était en panne trop longtemps. |
REMOVE |
La tâche n'est pas terminale mais le service associé a été supprimé ou réduit. |
Voir l'état de la tâche
Exécutez docker service ps <nom-du-service>
pour obtenir l'état d'une tâche. Le
champ CURRENT STATE
montre l'état de la tâche et depuis combien de temps elle y est
là.
$ docker service ps webserver
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
owsz0yp6z375 webserver.1 nginx UbuntuVM Running Running 44 seconds ago
j91iahr8s74p \_ webserver.1 nginx UbuntuVM Shutdown Failed 50 seconds ago "No such container: webserver.…"
7dyaszg13mw2 \_ webserver.1 nginx UbuntuVM Shutdown Failed 5 hours ago "No such container: webserver.…"