Perché la mia istanza Amazon ECS o Amazon EC2 non è in grado di unirsi al cluster?
Non riesco a usare il cluster Amazon Elastic Container Service (Amazon ECS) per registrare la mia istanza Amazon Elastic Compute Cloud (Amazon EC2).
Risoluzione
Prerequisito
Prima di completare i seguenti passaggi manuali, usa il runbook AWSSupport-TroubleshootECSContainerInstance di AWS Systems Manager per verificare automaticamente la presenza di potenziali problemi.
Il runbook AWSSupport-TroubleshootECSContainerInstance di AWS Systems Manager risolve automaticamente i problemi più comuni per cui la tua istanza Amazon EC2 non può registrarsi o unirsi a un cluster. Il runbook esegue una verifica dei seguenti requisiti:
- I dati utente dell'istanza contengono le informazioni corrette sul cluster. Per ulteriori informazioni, consulta AWSSupport-TroubleshootECSContainerInstance.
- Il profilo dell'istanza contiene le autorizzazioni richieste.
- La rete è configurata correttamente
Nota: assicurati di utilizzare il runbook AWS Support-TroubleshootECSContainerInstance nella stessa regione AWS in cui si trovano il cluster ECS e l'istanza EC2.
Se l'output del runbook non fornisce consigli, utilizza le seguenti soluzioni per risolvere manualmente il problema.
Verifica lo stato dell'agente Amazon ECS sull'istanza Amazon Linux 2
Per verificare se l’agente del container Amazon ECS è in esecuzione nell’istanza, esegui il comando seguente:
sudo systemctl status ecs
Se l'agente del container non è in esecuzione nell’istanza, esegui il seguente comando per avviare l'agente:
sudo systemctl start ecs
L'output del comando deve essere simile al seguente esempio:
ecs start/running, process 23403
Controlla le configurazioni di avvio
Se l'istanza che stai avviando fa parte di un gruppo Auto Scaling, verifica che la configurazione di avvio del gruppo Auto Scaling sia corretta. Per ulteriori informazioni, consulta il passaggio Create a new launch configuration in Refreshing an Amazon ECS Container Instance Cluster with a new AMI.
Verifica l'Amazon Machine Image (AMI) della tua istanza
Se l'AMI che usi per l'istanza EC2 è un'AMI copiata o personalizzata, verifica che l'istanza disponga dei seguenti requisiti:
- Una distribuzione Linux che esegua almeno la versione 3.10 del kernel Linux.
- Versione più recente dell'agente del container Amazon ECS Linux.
- Un daemon Docker che esegua almeno la versione 1.9.0 e tutte le dipendenze di runtime Docker. Per ulteriori informazioni, consulta Install Docker Engine from binaries sul sito Web di Docker. Per visualizzare la versione corrente di Docker, esegui il comando sudo docker version. Per ulteriori informazioni, consulta Install Docker Engine sul sito Web di Docker.
Questi requisiti sono preconfigurati sull'AMI ottimizzata di Amazon ECS. È consigliabile utilizzare un’AMI ottimizzata per Amazon ECS, a meno che l'applicazione non richieda una versione non ancora disponibile in tale AMI.
Verifica se i dati utente di un'istanza contengono le informazioni corrette sul cluster
Per verificare se i dati utente di un'istanza contengono le informazioni corrette sul cluster, esegui il seguente comando:
#!/bin/bash echo ECS_CLUSTER=<cluster-name> >> /etc/ecs/ecs.config
Verifica i file di log
Se il problema persiste, utilizza Amazon ECS logs collector per raccogliere i log. Quindi, esamina i log per individuare la causa. Puoi anche controllare i file di log sull'host del container per l'agente container e Docker.
Per visualizzare i file di log per l'agente container e Docker, esegui i seguenti comandi:
sudo cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-**sudo cat /var/log/docker
Risoluzione degli errori più comuni
Errore: Lancio di una nuova istanza EC2. Motivo dello stato: Questo account è attualmente bloccato e non è riconosciuto come account valido. In caso di domande, contatta aws-verification@amazon.com. Avvio dell'istanza EC2 non riuscito.
Questo errore si verifica quando l’account è bloccato e Amazon non lo riconosce. Per sbloccare l’account, invia un'email ad aws-verification@amazon.com. Assicurati di includere il tuo account nell’e-mail che devi sbloccare.
Errore: nuova registrazione: ClientException: Container instance 12345678910xxxxxxxxxxxx is inactive.\n\tstatus code: 400, request id: 012345678a-012345b-012ab-0a1-9f645f4s5c12" module=agent.go
Questo errore viene visualizzato quando l'agente ECS non riesce a utilizzare il cluster ECS per registrare l'istanza di container EC2 perché l'istanza EC2 non è attiva. Questo errore è correlato all'applicazione che è in esecuzione sull'istanza. Per comprendere la causa dell'errore, controlla innanzitutto l'applicazione. Se l'errore persiste, controlla i log dell'agente ECS.
Errore: Poche istanze sono in grado di unirsi al cluster, ma con le stesse configurazioni, altre istanze non sono in grado di unirsi al cluster.
Questo errore si verifica a causa di una ThrottlingException che si verifica quando una chiamata API specifica supera il limite di velocità. Per risolvere questo errore, aumenta il limite di velocità a livello di account. Controlla le API, come RegisterTargets e RegisterContainerInstance.
Errore: Dopo aver modificato il tipo di istanza, le nuove istanze non sono in grado di unirsi al cluster.
Questo errore si verifica quando l'agente ECS è bloccato nello stato In sospeso e non si può modificare il tipo di istanza. Per modificare il tipo di istanza in Amazon ECS, completa i seguenti passaggi:
- Elimina l'istanza di container.
- Avvia una nuova istanza di container con la nuova dimensione dell'istanza.
Nota: È consigliabile utilizzare un'AMI Amazon Linux 2 ottimizzata per Amazon ECS per avviare l’istanza per il tuo cluster.
In alternativa, puoi creare una nuova configurazione di avvio. Quindi, aggiorna la configurazione di avvio nel gruppo Auto Scaling.
Per ulteriori informazioni, consulta Come posso modificare il tipo della mia istanza di container in Amazon ECS?
Errore: Impossibile registrarsi come istanza di container con ECS: AccessDeniedException: Utente: arn:aws:sts: :1122334455:assumed-role/ecsInstanceRole/I-00aa11bb22cc33def non è autorizzato a eseguire: ecs:RegisterContainerInstance sulla risorsa: arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster . status code: 400, request id: 0a123456-7899-10101-a987-6543210deff
-oppure-
Errore: 2019-06-29T16:10:09Z [ERROR] Error re-registering: AccessDeniedException: Utente: arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/I-0052b2e858b1891ef non è autorizzato a eseguire: ecs:registerContainerInstance sulla risorsa: arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster status code: 400, request id: 0a123456-7899-10101-a987-123456pqrs
Questi errori si verificano a causa della mancanza delle autorizzazioni IAM. Per risolvere questi errori, è necessario creare un ruolo IAM dell'istanza di container.
Inoltre, esegui il runbook AWSSupport-TroubleshootECSContainerInstance per vedere quali autorizzazioni mancano dal ruolo dell'istanza di container.
Informazioni correlate
Crea un cloud privato virtuale
Perché le mie istanze container Amazon ECS con le AMI di Amazon Linux 1 sono disconnesse?
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 2 anni fa