Déterminer l'état des ECS tâches Amazon à l'aide de vérifications de l'état des conteneurs - Amazon Elastic Container Service

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 par CMD-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érieure 1.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 :

  1. Si le statut d'un conteneur essentiel estUNHEALTHY, le statut de la tâche estUNHEALTHY.

  2. Si le statut d'un conteneur essentiel estUNKNOWN, le statut de la tâche estUNKNOWN.

  3. 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.