Agente contenitore Amazon ECS Linux - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Agente contenitore Amazon ECS Linux

L'ECSagente Amazon è un processo che viene eseguito su ogni istanza di container registrata nel tuo cluster. Facilita la comunicazione tra le istanze dei container e Amazon. ECS

Ogni versione di Amazon ECS Container Agent supporta un set di funzionalità diverso e fornisce correzioni di bug rispetto alle versioni precedenti. Quando possibile, consigliamo sempre di utilizzare la versione più recente di Amazon ECS Container Agent. Per passare all'ultima versione dell'agente del container, consulta Aggiornamento dell'agente ECS container Amazon.

Per scoprire quali funzionalità e miglioramenti sono inclusi in ogni versione dell'agente, consulta https://github.com/aws/ amazon-ecs-agent /releases.

Importante

La versione minima di Docker per parametri affidabili è la versione Docker v20.10.13 e successive, inclusa in Amazon ECS -optimized e versioni successive. AMI 20220607

Le versioni di Amazon ECS Agent 1.20.0 e le versioni più recenti hanno un supporto obsoleto per le versioni Docker precedenti a. 1.9.0

Ciclo di vita

Quando l'agente Amazon ECS Container registra un'EC2istanza Amazon nel tuo cluster, l'EC2istanza Amazon riporta il suo stato ACTIVE e lo stato della connessione dell'agente comeTRUE. Questa istanza di container può accettare richieste di esecuzione di attività.

Se interrompi un'istanza di container (senza terminarla), lo stato rimane ACTIVE, ma lo stato di connessione dell'agente passa a FALSE entro pochi minuti. Tutte le attività in esecuzione nell'istanza di container vengono interrotte. Se riavvii l'istanza del contenitore, l'agente del contenitore si riconnette al ECS servizio Amazon e puoi eseguire nuovamente le attività sull'istanza.

Importante

Se interrompi e avvii un'istanza di container o riavvii quell'istanza, alcune versioni precedenti di Amazon ECS Container Agent registrano nuovamente l'istanza senza annullare la registrazione dell'ID dell'istanza del contenitore originale. In questo caso, Amazon ECS elenca più istanze di container nel cluster di quante ne possiedi effettivamente. (Se disponi di un'istanza contenitore duplicata IDs per lo stesso ID di EC2 istanza Amazon, puoi annullare in sicurezza la registrazione dei duplicati elencati ACTIVE con uno stato di connessione dell'agente pari a.) FALSE Questo problema è stato risolto nella versione corrente di Amazon ECS Container Agent. Per ulteriori informazioni sull'aggiornamento alla versione corrente, consulta Aggiornamento dell'agente ECS container Amazon.

Se modifichi lo stato di un'istanza di container in DRAINING, le nuove attività non vengono posizionate nell'istanza di container. Qualsiasi attività di servizio in esecuzione nell'istanza di container viene rimossa, se possibile, in modo che possano essere eseguiti gli aggiornamenti di sistema. Per ulteriori informazioni, consulta Drenaggio delle istanze di ECS container Amazon.

Se annulli la registrazione di un'istanza di container o la termini, lo stato dell'istanza di container passa immediatamente a INACTIVE e l'istanza di container non viene più segnalata quando elenchi le istanze di container. Tuttavia, puoi ancora descrivere l'istanza di container per un'ora in seguito alla terminazione. Dopo un'ora, la descrizione dell'istanza non è più disponibile.

Importante

Puoi svuotare manualmente le istanze o creare un hook del ciclo di vita del gruppo Auto Scaling per impostare lo stato dell'istanza su DRAINING. Per ulteriori informazioni sui ganci del ciclo di vita di Amazon EC2 Auto Scaling, consulta gli hook del ciclo di vita di Amazon Auto Scaling.

Ottimizzato ECS per Amazon AMI

Le varianti Linux di Amazon ECS -optimized AMI utilizzano Amazon Linux 2 AMI come base. Il AMI nome sorgente di Amazon Linux 2 per ogni variante può essere recuperato interrogando il Systems Manager Parameter Store. API Per ulteriori informazioni, consulta Recupero di metadati Linux ottimizzati ECS per Amazon AMI. Quando avvii le nostre istanze di container dall'Amazon Linux 2 più recente ottimizzato per ECS Amazon, AMI ricevi la versione attuale di Container Agent. Per avviare un'istanza di container con la versione più recente di Amazon Linux 2 ECS ottimizzata per AmazonAMI, consultaAvvio di un'istanza di container Amazon ECS Linux.

Informazioni aggiuntive

Nelle pagine seguenti vengono fornite ulteriori informazioni sulle modifiche:

Parametri di configurazione del registro di Amazon ECS Container Agent

L'Amazon ECS Container Agent archivia i log sulle istanze dei container.

Per l'agente del container versione 1.36.0 e successive, di default i log si trovano in /var/log/ecs/ecs-agent.log sulle istanze Linux e in C:\ProgramData\Amazon\ECS\log\ecs-agent.log sulle istanze Windows.

Per l'agente del container versione 1.35.0 e precedenti, di default i log si trovano in /var/log/ecs/ecs-agent.log.timestamp sulle istanze Linux e C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp sulle istanze Windows.

Di default, i log dell'agente vengono ruotati ogni ora per un massimo di 24 log archiviati.

Di seguito sono riportate le variabili di configurazione dell'agente del container che possono essere utilizzate per modificare il comportamento di registrazione dell'agente predefinito. Per ulteriori informazioni, consulta Configurazione di Amazon ECS Container Agent.

ECS_LOGFILE

Valori di esempio: /ecs-agent.log

Valore predefinito in Linux: Null

Valore predefinito in Windows: Null

Determina la posizione in cui devono essere scritti i log degli agenti. Se si esegue l'agente tramiteecs-init, che è il metodo predefinito quando si utilizza Amazon ECS -optimizedAMI, il percorso all'interno del contenitore è /log e lo ecs-init monta /var/log/ecs/ sull'host.

ECS_LOGLEVEL

Valori id esempio: crit, error, warn, info, debug

Valore predefinito in Linux: info

Valore predefinito in Windows: info

Il livello di dettaglio da registrare.

ECS_LOGLEVEL_ON_INSTANCE

Valori di esempio: none, crit, error, warn, info, debug

Valore di default su Linux: none, se ECS_LOG_DRIVER viene impostato esplicitamente su un valore non vuoto; altrimenti lo stesso valore di ECS_LOGLEVEL

Valore di default su Windows: none, se ECS_LOG_DRIVER viene impostato esplicitamente su un valore non vuoto; altrimenti lo stesso valore di ECS_LOGLEVEL

Può essere usato per sovrascrivere ECS_LOGLEVEL e impostare un livello di dettaglio da registrare nel file di log nell'istanza, separato dal livello registrato nel driver di registrazione. Se un driver di registrazione è impostato in modo esplicito, i log in istanza sono disattivati per impostazione predefinita. Possono essere riattivati con questa variabile.

ECS_LOG_DRIVER

Valori di esempio: awslogs, fluentd, gelf, json-file, journald, logentries syslog, splunk

Valore predefinito in Linux: json-file

Valore predefinito in Windows: non applicabile

Determina il driver di registrazione utilizzato dal contenitore dell'agente.

ECS_LOG_ROLLOVER_TYPE

Valori di esempio: size e hourly

Valore predefinito in Linux: hourly

Valore predefinito in Windows: hourly

Determina se il file di registro dell'agente contenitore viene ruotato ogni ora o in base alle dimensioni. Di default, il file di log dell'agente viene ruotato ogni ora.

ECS_LOG_OUTPUT_FORMAT

Valori di esempio: logfmt e json

Valore predefinito in Linux: logfmt

Valore predefinito in Windows: logfmt

Determina il formato di output del log. Quando viene utilizzato il json formato, ogni riga del log è una mappa strutturataJSON.

ECS_LOG_MAX_FILE_SIZE_MB

Valori di esempio: 10

Valore predefinito in Linux: 10

Valore predefinito in Windows: 10

Quando la ECS_LOG_ROLLOVER_TYPE variabile è impostata susize, questa variabile determina la dimensione massima (in MB) del file di registro prima che venga ruotato. Se il tipo di rollover è impostato su hourly, questa variabile viene ignorata.

ECS_LOG_MAX_ROLL_COUNT

Valori di esempio: 24

Valore predefinito in Linux: 24

Valore predefinito in Windows: 24

Determina il numero di file di log ruotati da mantenere. I file di log più vecchi vengono eliminati una volta raggiunto questo limite.

Per l'agente del container versione 1.36.0 e successive, il seguente è un file di log di esempio quando viene utilizzato il formato logfmt.

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

Di seguito è riportato un esempio di file di registro quando viene utilizzato il JSON formato.

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

Per le versioni dell'agente del container 1.35.0 e precedenti, il seguente è il formato del file di log.

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"