Fehlerbehebung bei Amazon ECS Managed Instances - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Fehlerbehebung bei Amazon ECS Managed Instances

Verwenden Sie die folgenden Verfahren, um Amazon ECS Managed Instances zu beheben, einschließlich häufiger Probleme, Diagnosetechniken und Lösungsschritte.

Voraussetzungen

Stellen Sie vor der Fehlerbehebung bei Amazon ECS Managed Instances sicher, dass Sie die folgenden Anforderungen erfüllen.

Allgemeine Problembehandlungsszenarien

Container-Agent-Protokolle für Amazon ECS Managed Instances anzeigen

Sie können diese Amazon ECS-Protokolldateien in Amazon ECS Managed Instances anzeigen, indem Sie eine Verbindung zu einem privilegierten Container herstellen, der in der Instance ausgeführt wird.

Schritte zur Diagnose

Stellen Sie einen Debug-Container mit Rechten und Linux-Funktionen als Amazon ECS-Aufgabe bereit:

Legen Sie die folgenden Umgebungsvariablen fest.

Ersetzen Sie die user-input durch Ihre Werte.

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

Erstellen Sie eine Aufgabendefinition mit einer CLI JSON-Datei namensnode-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

Registrieren Sie sich und führen Sie dann die Aufgabe aus. Führen Sie die folgenden Befehle aus.

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 zum Container her. Führen Sie den folgenden Befehl aus.

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

Überprüfen Sie die Amazon ECS-Agentenprotokolle:

Führen Sie in der interaktiven Sitzung des Containers die folgenden Befehle aus:

# 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

Überprüfen Sie die Agent-Metriken:

Führen Sie den folgenden Befehl aus, um die Protokolle anzuzeigen.

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

Probleme bei der Aufgabenplatzierung

Im Folgenden sind Symptome von Problemen bei der Aufgabenverteilung aufgeführt:

  • Aufgaben bleiben im Status AUSSTEHEND hängen

  • Aufgaben konnten auf Amazon ECS Managed Instances nicht gestartet werden

  • Fehler bei unzureichenden Ressourcen

Diagnoseschritte

Führen Sie die folgenden Befehle aus, um Probleme mit der Aufgabenplatzierung zu diagnostizieren und Informationen über Clusterkapazität, Container-Instances und Systemdienste zu sammeln:

# 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

Überwachung der Systemdienste:

# 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

Auflösung

Gehen Sie wie folgt vor, um Probleme mit der Aufgabenverteilung zu lösen, um die richtige Konfiguration und Kapazität sicherzustellen:

  • Überprüfen Sie die Ressourcenanforderungen für Aufgaben im Vergleich zur verfügbaren Kapazität

  • Prüfen Sie die Platzierungsbeschränkungen und Strategien

  • Stellen Sie sicher, dass der Kapazitätsanbieter für Amazon ECS Managed Instances konfiguriert ist

  • Stellen Sie sicher, dass die Task- und Container-Instance-Sicherheitsgruppe über eine ausgehende Regel verfügen, die den Datenverkehr für die Amazon ECS-Agentenverwaltungsendpunkte zulässt.

Netzwerkprobleme

Im Folgenden sind die Symptome von Netzwerkproblemen aufgeführt:

  • Aufgaben können keine externen Dienste erreichen

  • Probleme mit der DNS-Auflösung

Diagnoseschritte

Tests der Netzwerkkonnektivität:

Führen Sie im Debug-Container die folgenden Befehle aus:

Anmerkung

Vergewissern Sie sich, dass die Ihrem Kapazitätsanbieter oder Ihrer Amazon ECS-Aufgabe zugeordnete Sicherheitsgruppe den Datenverkehr zulässt.

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

Einschränkungen für Ressourcen

Im Folgenden sind die Symptome von Netzwerkproblemen aufgeführt:

  • Aufgaben wurden aufgrund von Speicherbeschränkungen beendet

  • CPU-Drosselung

  • Probleme mit dem Festplattenspeicher

Diagnoseschritte

Führen Sie Befehle aus, um die Ressourcen- und Containerlimits zu überwachen.

Überwachung der Ressourcen:

# 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

Container-Grenzwerte:

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

Problem beim Trennen des Container-Instance-Agenten

Im Folgenden sind die Symptome von Problemen beim Trennen des Container-Instance-Agents aufgeführt:

  • Container-Instances werden in der Amazon ECS-Konsole als getrennt angezeigt

  • Aufgaben, die bestimmten Instances nicht zugewiesen werden konnten

  • Fehler bei der Agentenregistrierung in Protokollen

Diagnoseschritte

Wenn auf dem Host bereits eine Privilegien-Task ausgeführt wird, auf die ECS Exec zugreifen kann, führen Sie die folgenden Befehle aus, um Probleme mit der Agenten-Konnektivität zu diagnostizieren:

# 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

Andernfalls erzwingen Sie die Abmeldung der Amazon ECS Managed Instances. Führen Sie den folgenden Befehl aus:

# 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

Auflösung

Gehen Sie wie folgt vor, um Probleme beim Trennen der Agentenverbindung zu lösen:

  • Überprüfen Sie die IAM-Rollenberechtigungen für die Container-Instance

  • Überprüfen Sie, ob die Sicherheitsgruppenregeln ausgehenden HTTPS-Verkehr zu ECS-Endpunkten zulassen

  • Stellen Sie die Netzwerkkonnektivität zu Diensten sicher AWS

  • Starten Sie den ECS-Agent-Dienst neu, falls erforderlich: nsenter -t 1 -m -p systemctl restart ecs

  • Stellen Sie sicher, dass die ECS_CLUSTER-Konfiguration in/etc/ecs/ecs.config Ihrem Clusternamen entspricht

Protokollanalyse in von Amazon ECS verwalteten Instances

Systemprotokolle

Verwenden Sie die folgenden Befehle, um Systemprotokolle zu untersuchen und mögliche Probleme mit der verwalteten Instanz zu identifizieren:

# 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"

Verwenden Sie den EC2 AWS CLI , um die Konsolenausgabe von einer Amazon ECS Managed Instance abzurufen

Verwenden Sie die EC2 Amazon-Instance-ID, um die Konsolenausgabe abzurufen.

Ersetzen Sie die user-input durch Ihre Werte.

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

Bereinigen

Führen Sie den folgenden Befehl aus, um die Debug-Aufgabe zu beenden und die Registrierung der Aufgabendefinition aufzuheben.

# 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

Weitere Ressourcen

Weitere Informationen zur Fehlerbehebung bei Amazon ECS Managed Instances finden Sie in den folgenden Ressourcen: