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 del container Amazon ECS
L'agente Amazon ECS è un processo che viene eseguito su ogni istanza di container registrata nel cluster. Facilita la comunicazione tra le istanze del contenitore e Amazon ECS.
Nota
Nelle istanze di container Linux, il contenitore dell'agente monta directory di primo livello come, e. /lib
/lib64
/proc
Ciò è necessario per caratteristiche e funzionalità ECS come volumi Amazon EBS, modalità di awsvpc
rete, Amazon ECS Service Connect e FireLens per Amazon ECS.
Ogni versione dell'agente del container di Amazon ECS supporta una serie di funzioni differenti e assicura le correzioni dei bug delle versioni precedenti. Quando possibile, consigliamo sempre di utilizzare la versione più recente dell'agente del container di Amazon ECS. Per passare all'ultima versione dell'agente del container, consulta Aggiornamento dell'agente del container Amazon ECS.
Importante
La versione Docker minima per parametri affidabili è v20.10.13
e successive, inclusa nell'AMI 20220607
ottimizzata per Amazon ECS e versioni successive.
Le versioni dell'agente Amazon ECS 1.20.0
e successive non supportano più le versioni di Docker precedenti alla 1.9.0
.
Ciclo di vita
Quando l'agente container Amazon ECS registra EC2 un'istanza Amazon nel tuo cluster, l' EC2istanza Amazon riporta il suo stato ACTIVE
e lo stato della connessione dell'agente come. TRUE
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 avvii di nuovo l'istanza di container, l'agente del container si riconnetterà al servizio Amazon ECS e potrai nuovamente eseguire attività nell'istanza.
Importante
Se interrompi e avvii un'istanza di container oppure riavvii l'istanza, alcune versioni precedenti dell'agente del container di Amazon ECS registreranno di nuovo l'istanza senza annullare la registrazione dell'ID dell'istanza di container originale. In questo caso, Amazon ECS elenca più istanze di container nel cluster rispetto a quelle effettivamente disponibili. (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 dell'agente del container di Amazon ECS. Per ulteriori informazioni sull'aggiornamento alla versione corrente, consulta Aggiornamento dell'agente del container Amazon ECS.
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 container Amazon ECS.
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.
AMI ottimizzate per Amazon ECS
Le varianti Linux dell'AMI ottimizzata per Amazon ECS utilizzano l'AMI Amazon Linux 2 come base. Il nome dell'AMI di origine di Amazon Linux 2 per ogni variante può essere recuperato interrogando l'API Archivio dei parametri Systems Manager. Per ulteriori informazioni, consulta Recupero di metadati AMI Linux ottimizzati per Amazon ECS. Quando avvii le istanze di container dall'AMI Amazon Linux 2 ottimizzata per Amazon ECS più recente, ricevi la versione dell'agente del container corrente. Per avviare un'istanza di container con l'AMI Amazon Linux 2 ottimizzata per Amazon ECS, consulta Avvio di un'istanza di container Linux di Amazon ECS.
Informazioni aggiuntive
Nelle pagine seguenti vengono fornite ulteriori informazioni sulle modifiche:
-
Registro delle modifiche di Amazon ECS Agent attivo
GitHub -
Il codice sorgente dell'applicazione
ecs-init
, gli script e la configurazione per il pacchetto dell'agente fanno ora parte del repository dell'agente. Per le versioniecs-init
e i pacchetti precedenti di Amazon ecs-init, consulta il changelog di Amazon ecs-initsu GitHub -
Note di rilascio di Docker Engine
nella documentazione Docker -
Documentazione dei driver NVIDIA
nella documentazione NVIDIA
Parametri di configurazione del registro dell'agente container Amazon ECS
L'agente del container di Amazon ECS archivia i log nelle istanze del 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.
sulle istanze Linux e timestamp
C:\ProgramData\Amazon\ECS\log\ecs-agent.log.
sulle istanze Windows.timestamp
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 dell'agente del container Amazon ECS.
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 stai eseguendo l'agente tramite
ecs-init
, che è il metodo predefinito quando si utilizza l'AMI ottimizzata per Amazon ECS, il percorso all'interno del contenitore è/log
e loecs-init
monta sull'host./var/log/ecs/
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
, seECS_LOG_DRIVER
viene impostato esplicitamente su un valore non vuoto; altrimenti lo stesso valore diECS_LOGLEVEL
Valore di default su Windows:
none
, seECS_LOG_DRIVER
viene impostato esplicitamente su un valore non vuoto; altrimenti lo stesso valore diECS_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
ehourly
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
ejson
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 JSON strutturata. 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 suhourly
, 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 file di log di esempio quando viene utilizzato il formato JSON.
{"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"