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.
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 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'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.
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 un bilan de santé dans la définition d'une tâche, consultezSurveillance de l'état.
Les valeurs d'état de santé possibles d'un conteneur sont décrites ci-dessous :
-
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 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 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 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 conteneur Amazon ECS est déconnecté du service Amazon ECS, 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'agent Amazon ECS. 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.