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'ECSagent Amazon est un processus qui s'exécute sur chaque instance de conteneur enregistrée auprès de votre cluster. Cela facilite la communication entre vos instances de conteneur et AmazonECS.

Chaque version de l'agent de ECS conteneur Amazon prend en charge un ensemble de fonctionnalités différent et fournit des corrections de bogues par rapport aux versions précédentes. Dans la mesure du possible, nous recommandons toujours d'utiliser la dernière version de l'agent de ECS conteneur Amazon. Pour mettre à jour votre agent de conteneur avec la dernière version, consultez Mettre à jour l'agent de ECS conteneur Amazon.

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

Important

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

Les versions de ECS l'agent Amazon 1.20.0 et les versions plus récentes ont rendu obsolète la prise en charge des versions de Docker antérieures à. 1.9.0

Cycle de vie

Lorsque l'agent de ECS conteneur Amazon enregistre une EC2 instance Amazon dans votre cluster, l'EC2instance Amazon indique son statut en tant que ACTIVE et son statut de connexion à l'agent en tant queTRUE. 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 reconnecte au ECS service Amazon et vous pouvez à nouveau 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 anciennes versions de l'agent de ECS conteneur Amazon enregistrent à nouveau l'instance sans annuler l'enregistrement de l'ID d'instance de conteneur d'origine. Dans ce cas, Amazon ECS répertorie plus d'instances de conteneur dans votre cluster que vous n'en avez réellement. (Si vous avez une instance de conteneur dupliquée IDs pour le même ID d'EC2instance Amazon, vous pouvez désenregistrer en toute sécurité les doublons répertoriés comme ACTIVE ayant un statut de connexion à l'agent de.) FALSE Ce problème est résolu dans la version actuelle de l'agent de ECS conteneur Amazon. Pour plus d'informations sur la mise à jour de la version actuelle, consultez Mettre à jour l'agent de ECS conteneur Amazon.

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 de plus amples informations, veuillez consulter Vidange des instances de ECS conteneurs Amazon.

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. Consultez Amazon EC2 Auto Scaling Lifecycle Hooks pour plus d'informations sur les hooks du cycle de vie Auto Scaling.

Optimisé pour Amazon ECS AMI

Les variantes Linux de l'Amazon ECS -optimized AMI utilisent Amazon Linux 2 AMI comme base. Le AMI nom de source Amazon Linux 2 pour chaque variante peut être récupéré en interrogeant le magasin API de paramètres de Systems Manager. Pour de plus amples informations, veuillez consulter Récupération de métadonnées Linux ECS optimisées pour Amazon AMI. Lorsque vous lancez nos instances de conteneur à partir de la version la plus récente d'Amazon Linux 2 ECS optimisée pour Amazon, AMI vous recevez la version actuelle de l'agent de conteneur. Pour lancer une instance de conteneur avec la dernière version d'Amazon Linux 2 ECS optimisée pour AmazonAMI, consultezLancement 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 ECS conteneur Amazon

L'agent de ECS conteneur Amazon 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 de plus amples informations, veuillez consulter Configuration de l'agent de ECS conteneur Amazon.

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, ce qui est la méthode par défaut lorsque vous utilisez Amazon ECS -optimizedAMI, le chemin intégré au conteneur est/log, et il est ecs-init monté /var/log/ecs/ sur l'hôte.

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 JSON carte 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 JSON format 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"