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.
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:
-
Log 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
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.
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 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 tramite
ecs-init
, che è il metodo predefinito quando si utilizza Amazon ECS -optimizedAMI, il percorso all'interno del contenitore è/log
e loecs-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
, 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 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 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 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"