Agent de conteneur Amazon ECS Linux - 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.

Agent de conteneur Amazon ECS Linux

L'agent Amazon ECS est un processus qui s'exécute sur chaque instance de conteneur enregistrée auprès de votre cluster. Il facilite la communication entre vos instances de conteneur et Amazon ECS.

Chaque version d'agent de conteneur Amazon ECS prend en charge un ensemble de différentes fonctions et fournit des correctifs des versions précédentes. Dans la mesure du possible, nous recommandons toujours d'utiliser la dernière version de l'agent de conteneur Amazon ECS. Pour mettre à jour votre agent de conteneur avec la dernière version, consultez Mise à jour de l'agent de conteneur Amazon ECS.

Pour voir les fonctionnalités et les améliorations incluses dans chaque version d'agent, consultez https://github.com/aws/amazon-ecs-agent/releases.

Important

La version minimale de Docker pour des métriques fiables est la version v20.10.13 et les versions ultérieures, qui sont incluses dans l'AMI 20220607 optimisée pour Amazon ECS et les versions plus récentes.

La version de l'agent Amazon ECS 1.20.0 et les versions plus récentes ne prennent plus en charge les versions de Docker antérieures à 1.9.0.

Cycle de vie

Lorsque l'agent de conteneur Amazon ECS enregistre une instance Amazon EC2 dans votre cluster, le statut de l'instance Amazon EC2 est ACTIVE et le statut de connexion de l'agent est TRUE. Cette instance de conteneur peut exécuter des demandes de tâches.

Si vous arrêtez (sans la résilier) une instance de conteneur, son statut reste ACTIVE, mais le statut de connexion de l'agent devient FALSE en quelques minutes. Toutes les tâches qui étaient en cours d'exécution sur l'instance de conteneur s'arrêtent. Si vous redémarrez l'instance de conteneur, l'agent de conteneur se connecte à nouveau avec le service Amazon ECS service et vous êtes à nouveau en mesure d'exécuter des tâches sur l'instance.

Important

Si vous arrêtez et démarrez une instance de conteneur, ou si vous redémarrez cette instance, certaines versions antérieures de l'agent de conteneur Amazon ECS enregistrent à nouveau l'instance sans annuler l'enregistrement de l'ID d'instance de conteneur d'origine. C'est pourquoi Amazon ECS indique un nombre d'instances de conteneur dans votre cluster supérieur au nombre réel. (Si vous avez des ID d'instance de conteneur en double pour la même instance Amazon EC2, vous pouvez annuler en toute sécurité l'enregistrement des doublons qui sont répertoriés avec le statut ACTIVE et avec le statut de connexion d'agent FALSE.) Ce problème est corrigé dans la version actuelle de l'agent de conteneur Amazon ECS. Pour plus d'informations sur la mise à jour de la version actuelle, consultez Mise à jour de l'agent de conteneur Amazon ECS.

Si vous remplacez le statut d'une instance de conteneur par DRAINING, les nouvelles tâches ne sont pas placées sur l'instance de conteneur. Toutes les tâches de service en cours d'exécution sur l'instance de conteneur sont supprimées, si possible, afin que vous puissiez effectuer les mises à jour du système. Pour plus d’informations, consultez Vidange des instances de conteneurs Amazon ECS.

Si vous annulez l'enregistrement d'une instance de conteneur ou la résiliez, le statut de l'instance de conteneur passe immédiatement à INACTIVE et l'instance de conteneur ne figure plus dans la liste des instances de conteneur. Cependant, vous pouvez toujours décrire l'instance de conteneur pendant une heure après la résiliation. Après un délai d'une heure, la description de l'instance n'est plus disponible.

Important

Vous pouvez drainer les instances manuellement ou créer un hook de cycle de vie du groupe Auto Scaling pour définir l'état de l'instance sur DRAINING. Pour plus d'informations sur les hooks de cycle de vie Auto Scaling, consultez Hooks de cycle de vie Amazon EC2 Auto Scaling.

AMI optimisée pour Amazon ECS

Les variantes Linux de l'AMI optimisée pour Amazon ECS utilisent l'AMI Amazon Linux 2 comme base. Le nom de l'AMI source Amazon Linux 2 pour chaque variante peut être récupéré en interrogeant l'API de Systems Manager Parameter Store. Pour plus d’informations, consultez Récupération des métadonnées de l'AMI Linux optimisées pour Amazon ECS. Lorsque vous lancez nos instances de conteneur à partir de l'AMI Amazon Linux 2 optimisée pour Amazon ECS la plus récente, vous recevez la version actuelle de l'agent de conteneur. Pour lancer une instance de conteneur avec la dernière AMI Amazon Linux 2 optimisée pour Amazon ECS, veuillez consulter Lancement d'une instance de conteneur Amazon ECS Linux.

Informations supplémentaires

Les pages suivantes fournissent des informations supplémentaires sur les modifications :

Paramètres de configuration du journal de l'agent de conteneur Amazon ECS

L'agent de conteneur Amazon ECS stocke les journaux sur vos instances de conteneur.

Pour l'agent de conteneur version 1.36.0 et ultérieure, les journaux sont par défaut situés sur /var/log/ecs/ecs-agent.log sur les instances Linux et C:\ProgramData\Amazon\ECS\log\ecs-agent.log sur les instances Windows.

Pour l'agent de conteneur version 1.35.0 et antérieure, les journaux sont par défaut situés sur /var/log/ecs/ecs-agent.log.timestamp sur les instances Linux et C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp sur les instances Windows.

Par défaut, les journaux de l'agent font l'objet d'une rotation toutes les heures et un maximum de 24 journaux sont stockés.

Voici les variables de configuration de l'agent de conteneur qui peuvent être utilisées pour modifier le comportement de journalisation de l'agent par défaut. Pour plus d’informations, consultez Configuration de l'agent de conteneur Amazon ECS.

ECS_LOGFILE

Exemples de valeur : /ecs-agent.log

Valeur par défaut sur Linux : Null

Valeur par défaut sur Windows : Null

Emplacement où les journaux de l'agent doivent être écrits. Si vous exécutez l'agent viaecs-init, méthode par défaut lors de l'utilisation de l'AMI optimisée pour Amazon ECS, le chemin intégré au conteneur est /log et il est ecs-init monté sur l'hôte. /var/log/ecs/

ECS_LOGLEVEL

Exemples de valeur : crit, error, warn, info, debug

Valeur par défaut sur Linux : info

Valeur par défaut sur Windows : info

Niveau de détail à consigner.

ECS_LOGLEVEL_ON_INSTANCE

Exemples de valeur : none, crit, error, warn, info, debug

Valeur par défaut sur Linux : none, si ECS_LOG_DRIVER est explicitement défini sur une valeur non vide ; sinon, la même valeur que ECS_LOGLEVEL

Valeur par défaut sur Windows : none, si ECS_LOG_DRIVER est explicitement défini sur une valeur non vide ; sinon, la même valeur que ECS_LOGLEVEL

Peut être utilisé pour remplacer ECS_LOGLEVEL et définir un niveau de détail qui doit être enregistré dans le fichier journal sur instance, distinct du niveau qui est enregistré dans le pilote de journalisation. Si un pilote de journalisation est explicitement défini, les journaux sur instance sont désactivés par défaut. Ils peuvent être réactivés avec cette variable.

ECS_LOG_DRIVER

Exemples de valeur : awslogs, fluentd, gelf, json-file, journald, logentries syslog, splunk

Valeur par défaut sur Linux : json-file

Valeur par défaut sur Windows : Non applicable

Détermine le pilote de journalisation utilisé par le conteneur de l'agent.

ECS_LOG_ROLLOVER_TYPE

Exemples de valeur : size, hourly

Valeur par défaut sur Linux : hourly

Valeur par défaut sur Windows : hourly

Détermine si le fichier journal de l'agent de conteneur est pivoté toutes les heures ou en fonction de sa taille. Par défaut, le fichier journal de l'agent fait l'objet d'une rotation toutes les heures.

ECS_LOG_OUTPUT_FORMAT

Exemples de valeur : logfmt, json

Valeur par défaut sur Linux : logfmt

Valeur par défaut sur Windows : logfmt

Détermine le format de sortie du journal. Lorsque le json format est utilisé, chaque ligne du journal est une carte JSON structurée.

ECS_LOG_MAX_FILE_SIZE_MB

Exemples de valeur : 10

Valeur par défaut sur Linux : 10

Valeur par défaut sur Windows : 10

Lorsque la ECS_LOG_ROLLOVER_TYPE variable est définie sursize, elle détermine la taille maximale (en Mo) du fichier journal avant sa rotation. Si le type de substitution est défini sur hourly, cette variable est ignorée.

ECS_LOG_MAX_ROLL_COUNT

Exemples de valeur : 24

Valeur par défaut sur Linux : 24

Valeur par défaut sur Windows : 24

Détermine le nombre de fichiers journaux ayant fait l'objet d'une rotation à conserver. Les fichiers journaux plus anciens sont supprimés une fois cette limite atteinte.

Pour l'agent de conteneur version 1.36.0 et ultérieure, voici un exemple de fichier journal lorsque le format logfmt est utilisé.

level=info time=2019-12-12T23:43:29Z msg="Loading configuration" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-agent:latest" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-pause:0.1.0" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Amazon ECS agent Version: 1.36.0, Commit: ca640387" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Creating root ecs cgroup: /ecs" module=init_linux.go level=info time=2019-12-12T23:43:29Z msg="Creating cgroup /ecs" module=cgroup_controller_linux.go level=info time=2019-12-12T23:43:29Z msg="Loading state!" module=statemanager.go level=info time=2019-12-12T23:43:29Z msg="Event stream ContainerChange start listening..." module=eventstream.go level=info time=2019-12-12T23:43:29Z msg="Restored cluster 'auto-robc'" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Restored from checkpoint file. I am running as 'arn:aws:ecs:us-west-2:0123456789:container-instance/auto-robc/3330a8a91d15464ea30662d5840164cd' in cluster 'auto-robc'" module=agent.go

Voici un exemple de fichier journal lorsque le format JSON est utilisé.

{"time": "2019-11-07T22:52:02Z", "level": "info", "msg": "Starting Amazon Elastic Container Service Agent", "module": "engine.go"}

Pour les versions 1.35.0 et antérieures de l'agent de conteneur, voici le format du fichier journal.

2016-08-15T15:54:41Z [INFO] Starting Agent: Amazon ECS Agent - v1.12.0 (895f3c1) 2016-08-15T15:54:41Z [INFO] Loading configuration 2016-08-15T15:54:41Z [WARN] Invalid value for task cleanup duration, will be overridden to 3h0m0s, parsed value 0, minimum threshold 1m0s 2016-08-15T15:54:41Z [INFO] Checkpointing is enabled. Attempting to load state 2016-08-15T15:54:41Z [INFO] Loading state! module="statemanager" 2016-08-15T15:54:41Z [INFO] Detected Docker versions [1.17 1.18 1.19 1.20 1.21 1.22] 2016-08-15T15:54:41Z [INFO] Registering Instance with ECS 2016-08-15T15:54:41Z [INFO] Registered! module="api client"