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 :
-
Connectez-vous à la liste des modifications apportées à l'agent Amazon ECS
GitHub -
Le code source de l'application
ecs-init
, ainsi que les scripts et la configuration nécessaires à l'empaquetage de l'agent, font désormais partie du référentiel de l'agent. Pour les anciennes versionsecs-init
et emballages, consultez le journal des modifications Amazon ecs-initsur GitHub -
Notes de mise à jour Docker Engine
dans la documentation Docker -
Documentation du pilote NVIDIA
dans la documentation NVIDIA
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.
sur les instances Linux et timestamp
C:\ProgramData\Amazon\ECS\log\ecs-agent.log.
sur les instances Windows.timestamp
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 via
ecs-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 estecs-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
, siECS_LOG_DRIVER
est explicitement défini sur une valeur non vide ; sinon, la même valeur queECS_LOGLEVEL
Valeur par défaut sur Windows :
none
, siECS_LOG_DRIVER
est explicitement défini sur une valeur non vide ; sinon, la même valeur queECS_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 surhourly
, 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"