Risoluzione dei problemi relativi alle istanze gestite da Amazon ECS - 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à.

Risoluzione dei problemi relativi alle istanze gestite da Amazon ECS

Utilizza le seguenti procedure per risolvere i problemi delle istanze gestite di Amazon ECS, inclusi problemi comuni, tecniche di diagnostica e passaggi di risoluzione.

Prerequisiti

Prima di risolvere i problemi relativi alle istanze gestite di Amazon ECS, assicurati di soddisfare i seguenti requisiti.

Scenari per la risoluzione dei problemi comuni

Visualizzazione dei log degli agenti container di Amazon ECS Managed Instances

Puoi visualizzare questi file di log di Amazon ECS in Amazon ECS Managed Instances connettendoti a un contenitore privilegiato in esecuzione nell'istanza.

Fasi di diagnostica

Implementa un contenitore di debug con privilegi e funzionalità Linux come attività Amazon ECS:

Imposta le seguenti variabili di ambiente.

user-inputSostituiscili con i tuoi valori.

export ECS_CLUSTER_NAME="your-cluster-name" export AWS_REGION="your-region" export ACCOUNT_ID="your-account-id"

Crea una definizione di attività utilizzando un file JSON CLI chiamato. node-debugger.json

cat << EOF > node-debugger.json { "family": "node-debugger", "taskRoleArn": "arn:aws:iam::${ACCOUNT_ID}:role/ecsTaskExecutionRole", "executionRoleArn": "arn:aws:iam::${ACCOUNT_ID}:role/ecsTaskExecutionRole", "cpu": "256", "memory": "1024", "networkMode": "host", "pidMode": "host", "requiresCompatibilities": ["MANAGED_INSTANCES", "EC2"], "containerDefinitions": [ { "name": "node-debugger", "image": "public.ecr.aws/amazonlinux/amazonlinux:2023", "essential": true, "privileged": true, "command": ["sleep", "infinity"], "healthCheck": { "command": ["CMD-SHELL", "echo debugger || exit 1"], "interval": 30, "retries": 3, "timeout": 5 }, "linuxParameters": { "initProcessEnabled": true }, "mountPoints": [ { "sourceVolume": "host-root", "containerPath": "/host", "readOnly": false } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/aws/ecs/node-debugger", "awslogs-create-group": "true", "awslogs-region": "${AWS_REGION}", "awslogs-stream-prefix": "ecs" } } } ], "volumes": [ { "name": "host-root", "host": { "sourcePath": "/" } } ] } EOF

Registrarsi, quindi eseguire l'operazione. Esegui i comandi seguenti.

aws ecs register-task-definition --cli-input-json file://node-debugger.json TASK_ARN=$(aws ecs run-task \ --cluster $ECS_CLUSTER_NAME \ --task-definition node-debugger \ --enable-execute-command \ --capacity-provider-strategy capacityProvider=managed-instances-default,weight=1 \ --query 'tasks[0].taskArn' --output text) # Wait for task to be running aws ecs wait tasks-running --cluster $ECS_CLUSTER_NAME --tasks $TASK_ARN

Connect al container. Eseguire il seguente comando seguente.

aws ecs execute-command \ --cluster $ECS_CLUSTER_NAME \ --task $TASK_ARN \ --container node-debugger \ --interactive \ --command "/bin/sh"

Controlla i log degli agenti Amazon ECS:

Nella sessione interattiva del contenitore, esegui i seguenti comandi:

# Install required tools yum install -y util-linux-core # View ECS agent logs nsenter -t 1 -m -p cat /var/log/ecs/ecs-agent.log | tail -50 # Check agent registration nsenter -t 1 -m -p grep "Registered container instance" /var/log/ecs/ecs-agent.log Example Output: {"level":"info","time":"2025-10-16T12:39:37.665","msg":"Registered container instance with cluster!"} # Verify capabilities nsenter -t 1 -m -p grep "Response contained expected value for attribute" /var/log/ecs/ecs-agent.log

Controlla le metriche degli agenti:

Esegui il comando seguente per visualizzare i log.

# View metrics logs nsenter -t 1 -m -p cat /var/log/ecs/metrics.log | tail -20

Problemi di posizionamento delle attività

Di seguito sono riportati i sintomi dei problemi di posizionamento delle attività:

  • Attività bloccate nello stato IN SOSPESO

  • Impossibile avviare le attività su Amazon ECS Managed Instances

  • Risorse insufficienti, errori

Fasi diagnostiche

Esegui i comandi seguenti per diagnosticare i problemi di posizionamento delle attività e raccogliere informazioni sulla capacità del cluster, sulle istanze dei container e sui servizi di sistema:

# Check cluster capacity aws ecs describe-clusters --clusters cluster-name --include STATISTICS # Check cluster capacity providers aws ecs describe-clusters --clusters cluster-name --include STATISTICS --query 'clusters[].capacityProviders' # List container instances aws ecs list-container-instances --cluster cluster-name # Check container instance details aws ecs describe-container-instances --cluster cluster-name --container-instances container-instance-arn # Check container instance remaining resources CPU/Mem aws ecs describe-container-instances --cluster $ECS_CLUSTER_NAME --container-instances container-instance-arn --query 'containerInstances[].remainingResources' # Check container instance Security Group aws ecs describe-container-instances --cluster $ECS_CLUSTER_NAME --container-instances container-instance-arn --query 'containerInstances[].ec2InstanceId' --output text aws ec2 describe-instances --instance-ids instance-id --query 'Reservations[0].Instances[0].SecurityGroups' aws ec2 describe-security-groups --group-ids security-group-id

Monitoraggio dei servizi di sistema:

# Check Containerd status nsenter -t 1 -m -p systemctl status containerd.service # Check Amazon ECS container agent status nsenter -t 1 -m -p systemctl status ecs

Risoluzione

Per risolvere i problemi di posizionamento delle attività, segui questi passaggi per garantire una configurazione e una capacità corrette:

  • Verifica i requisiti delle risorse delle attività rispetto alla capacità disponibile

  • Verifica i vincoli e le strategie di posizionamento

  • Assicurati che il provider di capacità di Amazon ECS Managed Instances sia configurato

  • Assicurati che il gruppo di sicurezza dell'attività e dell'istanza del contenitore disponga di una regola in uscita che consenta il traffico per gli endpoint di gestione degli agenti Amazon ECS

Problemi di rete

Di seguito sono riportati i sintomi di problemi di rete:

  • Le attività non sono in grado di raggiungere servizi esterni

  • Problemi di risoluzione DNS

Fasi diagnostiche

Test di connettività di rete:

Dal contenitore di debug, esegui i seguenti comandi:

Nota

Verifica che il gruppo di sicurezza collegato al tuo provider di capacità o all'attività Amazon ECS consenta il traffico.

# Install DNS Utility yum install bind-utils -y # Test DNS resolution nslookup amazon.com # Test external connectivity curl -I https://amazon.com

Vincoli delle risorse

Di seguito sono riportati i sintomi di problemi di rete:

  • Attività interrotte a causa di limiti di memoria

  • Limitazione della CPU

  • Problemi di spazio su disco

Fasi di diagnostica

Esegui comandi per monitorare le risorse e i limiti dei container.

Monitoraggio delle risorse:

# Check memory usage nsenter -t 1 -m -p free -h # Check disk usage nsenter -t 1 -m -p lsblk # Check disk usage nsenter -t 1 -m -p df -h

Limiti del contenitore:

# Check OOM kills nsenter -t 1 -m -p dmesg | grep -i "killed process"

Problema di disconnessione dell'agente dell'istanza del contenitore

Di seguito sono riportati i sintomi dei problemi di disconnessione dell'agente dell'istanza del contenitore:

  • Le istanze di container vengono visualizzate come disconnesse nella console Amazon ECS

  • Attività che non vengono assegnate a istanze specifiche

  • Errori di registrazione degli agenti nei registri

Fasi diagnostiche

Se esiste un'attività di privilegio esistente in esecuzione sull'host a cui ECS Exec può accedere, esegui i seguenti comandi per diagnosticare i problemi di connettività dell'agente:

# check service status nsenter -t 1 -m -p systemctl restart ecs nsenter -t 1 -m -p systemctl restart containerd # restart stopped services nsenter -t 1 -m -p systemctl restart ecs nsenter -t 1 -m -p systemctl restart containerd

Altrimenti, forzate l'annullamento della registrazione delle istanze gestite di Amazon ECS. Esegui il comando seguente:

# list ECS Managed Instance container aws ecs list-container-instances --cluster managed-instances-cluster --query 'containerInstanceArns' --output text # deregister the specific container instance aws ecs deregister-container-instance \ --cluster $ECS_CLUSTER_NAME \ --container-instance container-instance-arn \ --force

Risoluzione

Per risolvere i problemi di disconnessione degli agenti, segui questi passaggi:

  • Verifica le autorizzazioni del ruolo IAM per l'istanza del contenitore

  • Verifica che le regole del gruppo di sicurezza consentano il traffico HTTPS in uscita verso gli endpoint ECS

  • Garantisci la connettività di rete ai servizi AWS

  • Riavvia il servizio dell'agente ECS se necessario: nsenter -t 1 -m -p systemctl restart ecs

  • Verifica che la configurazione ECS_CLUSTER in/etc/ecs/ecs.config corrisponda al nome del cluster

Analisi dei log nelle istanze gestite di Amazon ECS

Log di sistema

Utilizza i seguenti comandi per esaminare i log di sistema e identificare potenziali problemi con l'istanza gestita:

# Check system messages nsenter -t 1 -m -p journalctl --no-pager -n 50 # Check kernel logs nsenter -t 1 -m -p dmesg | tail -20 # Check for disk space errors nsenter -t 1 -m -p journalctl --no-pager | grep -i "no space\|disk full\|enospc"

Usa il EC2 AWS CLI per ottenere l'output della console da un'istanza gestita di Amazon ECS

Usa l'ID dell' EC2 istanza Amazon per recuperare l'output della console.

Sostituiscili user-input con i tuoi valori.

aws ec2 get-console-output --instance-id instance-id --latest --output text

Pulizia

Esegui quanto segue per interrompere l'attività di deug e annullare la registrazione della definizione dell'attività.

# Stop debug task aws ecs stop-task --cluster $ECS_CLUSTER_NAME --task $TASK_ARN # Deregister task definition (optional) aws ecs deregister-task-definition --task-definition node-debugger

Risorse aggiuntive

Per ulteriori informazioni sulla risoluzione dei problemi delle istanze gestite di Amazon ECS, consulta le seguenti risorse: