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 ECS tâches Amazon à l'aide de vérifications de l'état des conteneurs
Lorsque vous créez une définition de tâche, vous pouvez configurer un contrôle de santé pour vos conteneurs. Les contrôles de santé sont des commandes qui s'exécutent localement sur un conteneur et valident l'état et la disponibilité de l'application.
L'agent de ECS conteneur Amazon surveille et rapporte uniquement les contrôles de santé spécifiés dans la définition de la tâche. Amazon ECS ne surveille pas les contrôles de santé Docker intégrés à une image de conteneur mais qui ne sont pas spécifiés 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'un contrôle de santé est défini dans une définition de tâche, le conteneur exécute le processus de contrôle de santé à l'intérieur du conteneur, puis évalue le code de sortie pour déterminer l'état de santé de l'application.
Le bilan de santé comprend les paramètres suivants :
-
Commande : commande exécutée par le conteneur pour déterminer s'il est sain. Le tableau de chaînes peut commencer par
CMD
pour exécuter directement les arguments de la commande, ou parCMD-SHELL
pour exécuter la commande avec le shell par défaut du conteneur. -
Intervalle : intervalle de temps (en secondes) entre chaque bilan de santé.
-
Délai d'attente : délai (en secondes) nécessaire pour qu'un bilan de santé réussisse avant qu'il ne soit considéré comme un échec.
-
Réessais : nombre de fois où il faut réessayer un contrôle de santé qui a échoué avant que le contenant ne soit considéré comme insalubre.
-
Période de début : période de grâce facultative qui donne aux conteneurs le temps de démarrer avant que les tests de santé échoués ne soient pris en compte dans le nombre maximum de tentatives.
Pour plus d'informations sur la manière de spécifier un bilan de santé dans la définition d'une tâche, consultezSurveillance de l'état.
Ce qui suit décrit les valeurs d'état de santé 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
—Le contrôle de santé du conteneur est en cours d'évaluation, aucun contrôle de santé du conteneur n'est défini ou Amazon ECS n'a pas connaissance de l'état de santé du conteneur.
Les commandes de contrôle de santé s'exécutent sur le conteneur. Vous devez donc inclure les commandes dans l'image du conteneur.
Le bilan de santé se connecte à l'application via l'interface de bouclage du conteneur à localhost
ou127.0.0.1
. Un code de sortie égal à 0
indique un succès, et un code de sortie différent de zéro indique un échec.
Tenez compte des points suivants lorsque vous utilisez des contrôles de santé des conteneurs :
-
Les contrôles de santé des conteneurs nécessitent la version 1.17.0 ou supérieure de l'agent de ECS conteneur Amazon.
-
Les contrôles de santé des conteneurs sont pris en charge pour les tâches Fargate si vous utilisez une version de plate-forme Linux ou supérieure ou une
1.1.0
version de plate-forme Windows ou supérieure1.1.0
Comment Amazon ECS détermine l'état de santé des tâches
Les conteneurs essentiels et dotés d'une commande de vérification de l'état dans la définition de la tâche sont les seuls pris en compte pour déterminer l'état de santé 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 le
HEALTHY
même, le statut de la tâche estHEALTHY
.
Prenons l'exemple d'état des tâches suivant avec deux conteneurs essentiels.
Conteneur 1 : santé | Container 2 : santé | Santé des tâches |
---|---|---|
UNHEALTHY |
UNKNOWN |
UNHEALTHY |
UNHEALTHY |
HEALTHY |
UNHEALTHY |
HEALTHY |
UNKNOWN |
UNKNOWN |
HEALTHY |
HEALTHY |
HEALTHY |
Prenons l'exemple d'intégrité des tâches suivant avec 3 conteneurs.
Conteneur 1 : santé | Container 2 : santé | Container 3 : santé | Santé des tâches |
---|---|---|---|
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 bilans de santé sont-ils affectés par les déconnexions d'agents
Si l'agent de ECS conteneur Amazon est déconnecté du ECS service Amazon, le conteneur ne passera pas à un UNHEALTHY
statut. Cela 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. L'état du bilan de santé est la réponse « dernière réponse » de l'ECSagent Amazon. Ainsi, si le conteneur a été pris en compte HEALTHY
avant la déconnexion, cet état restera en vigueur jusqu'à ce que l'agent se reconnecte et qu'un autre contrôle de santé ait lieu. Aucune hypothèse n'a été émise quant au statut des surveillances de l'état des conteneurs.