Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Déterminer l'état des tâches Amazon ECS à l'aide de vérifications de l'état des conteneurs
Lorsque vous créez une définition de tâche, vous pouvez configurer une surveillance de l’état pour vos conteneurs. Les surveillances de l’état du conteneur sont des commandes qui s’exécutent localement sur un conteneur et valident l’état et la disponibilité des applications.
L'agent de conteneur Amazon ECS assure une surveillance et génère des rapports uniquement pour les vérifications d'état spécifiées dans la définition de la tâche. Amazon ECS n'assure pas la surveillance de l'état Docker qui est intégrée dans une image de conteneur, mais qui n'est pas spécifiée dans la définition du conteneur. Les paramètres de surveillance de l'état spécifiés dans une définition du conteneur remplacent toutes les surveillances de l'état Docker présentes dans l'image de conteneur.
Lorsqu’une surveillance de l’état est spécifiée dans une définition de tâche, le conteneur exécute le processus de surveillance à l’intérieur du conteneur, puis évalue le code de sortie afin de déterminer l’état de l’application.
La surveillance de l’état comprend les paramètres suivants :
-
Commande : commande que le conteneur exécute pour déterminer si celle-ci est saine. Le tableau de chaînes peut commencer par
CMDpour exécuter directement les arguments de la commande, ou parCMD-SHELLpour exécuter la commande avec le shell par défaut du conteneur. UtilisezCMD-SHELLlorsque vous avez besoin de fonctionnalités du shell telles que les canaux, les redirections, le chaînage de commandes ou l’extension de variables d’environnement. Par exemple,CMD-SHELLvous permet d’utiliser des commandes telles quecurl -f http://localhost/ || exit 1où le shell interprète l’opérateur||. UtilisezCMDpour les commandes simples qui ne nécessitent pas d’interprétation du shell. -
Intervalle : durée (en secondes) entre chaque surveillance de l’état.
-
Délai d’expiration : durée (en secondes) pendant laquelle le système attend que la surveillance de l’état aboutisse avant de la considérer comme un échec.
-
Réessais : nombre de fois où une surveillance de l’état échoué doit être réessayée avant que le conteneur ne soit considéré comme défectueux.
-
Période de démarrage : période de grâce facultative accordée aux conteneurs pour leur permettre de démarrer avant que les échecs de la surveillance de l’état ne soient pris en compte dans le nombre maximal de tentatives.
Si une vérification de l'état aboutit dans le délai défini par
startPeriod, le conteneur est considéré comme sain et toutes les défaillances suivantes sont prises en compte dans le nombre maximal de nouvelles tentatives.
Pour plus d’informations sur la manière de spécifier une surveillance de l’état dans la définition d’une tâche, consultez la section Surveillance de l'état.
Voici une description des valeurs d’état possibles pour un conteneur :
-
HEALTHY: le conteneur a passé avec succès la surveillance de l'état. -
UNHEALTHY: le conteneur a échoué à la surveillance de l'état. -
UNKNOWN: la surveillance de l'état du conteneur est en cours d'évaluation, aucune surveillance de l'état du conteneur n'est définie ou Amazon ECS n'a pas l'état de santé du conteneur.
Les commandes de surveillance de l’état s’exécutent sur le conteneur. Vous devez donc inclure les commandes dans l’image du conteneur.
La surveillance de l’état se connecte à l’application via l’interface de bouclage du conteneur à localhost ou 127.0.0.1. Un code de sortie 0 indique la réussite et tout code de sortie autre que zéro indique qu’il s’agit d’un échec.
Tenez compte des éléments suivants lorsque vous utilisez la surveillance de l’état des conteneurs :
-
Les surveillances de l'état du conteneur requièrent la version 1.17.0 ou une version supérieure de l'agent de conteneur Amazon ECS.
-
Les surveillances de l’état du conteneur sont prises en charge pour les tâches Fargate si vous utilisez une version de plateforme Linux
1.1.0ou ultérieure ou une version de plateforme Windows1.1.0ou ultérieure
Comment Amazon ECS détermine l’état des tâches
Seuls les conteneurs essentiels et disposant d’une commande de surveillance de l’état dans la définition de la tâche sont pris en compte pour déterminer l’état de la tâche.
Les règles suivantes sont évaluées dans l’ordre :
-
Si le statut d’un conteneur essentiel est
UNHEALTHY, le statut de la tâche estUNHEALTHY. -
Si le statut d’un conteneur essentiel est
UNKNOWN, le statut de la tâche estUNKNOWN. -
Si le statut de tous les conteneurs essentiels est
HEALTHY, le statut de la tâche estHEALTHY.
Prenons l’exemple d’état des tâches suivant avec deux conteneurs essentiels.
| État du conteneur 1 | État du conteneur 2 | État de la tâche |
|---|---|---|
UNHEALTHY |
UNKNOWN |
UNHEALTHY |
UNHEALTHY |
HEALTHY |
UNHEALTHY |
HEALTHY |
UNKNOWN |
UNKNOWN |
HEALTHY |
HEALTHY |
HEALTHY |
Prenons l’exemple d’état de la tâche suivant avec trois conteneurs essentiels.
| État du conteneur 1 | État du conteneur 2 | État du conteneur 3 | État de la tâche |
|---|---|---|---|
UNHEALTHY |
UNKNOWN |
UNKNOWN |
UNHEALTHY |
UNHEALTHY |
UNKNOWN |
HEALTHY |
UNHEALTHY |
UNHEALTHY |
HEALTHY |
HEALTHY |
UNHEALTHY |
HEALTHY |
UNKNOWN |
HEALTHY |
UNKNOWN |
HEALTHY |
UNKNOWN |
UNKNOWN |
UNKNOWN |
HEALTHY |
HEALTHY |
HEALTHY |
HEALTHY |
Comment les déconnexions des agents affectent la surveillance de l’état
Si l’agent de conteneur Amazon ECS se déconnecte du service Amazon ECS, cela n’entraînera pas le passage du conteneur à l’état UNHEALTHY. Ce mécanisme a été conçu pour garantir que les conteneurs continuent de fonctionner pendant les redémarrages de l’agent ou en cas d’indisponibilité temporaire. Le statut de la surveillance de l’état correspond à la « dernière réponse reçue » de l’agent Amazon ECS. Ainsi, si le conteneur était considéré comme HEALTHY avant la déconnexion, ce statut restera inchangé jusqu’à ce que l’agent se reconnecte et qu’un autre contrôle d’intégrité soit effectué. Aucune hypothèse n'a été émise quant au statut des surveillances de l'état des conteneurs.