Warum sind meine Amazon ECS-Container-Instances mit Amazon Linux 1-AMIs nicht verbunden?
Meine Container-Instances für Amazon Elastic Container Service (Amazon ECS) sind nicht verbunden.
Kurzbeschreibung
Ihr Amazon ECS-Container-Agent stellt möglicherweise mehrmals pro Stunde eine Verbindung her und erneut eine Verbindung her. Diese Veränderungsereignisse sind normal und geben keinen Anlass zur Sorge.
Wenn Ihr Container-Agent jedoch in einem getrennten Zustand verbleibt, kann die Container-Instance nicht als Teil Ihres ECS-Clusters betrieben werden. Ihr Agent wird getrennt, wenn AgentConnected falsch zurückgibt. Das Problem kann folgende Ursachen haben:
- Netzwerkprobleme verhindern die Kommunikation zwischen der Instanz und Amazon ECS.
- Der Container-Agent verfügt nicht über die erforderlichen AWS Identity and Access Management (IAM)-Berechtigungen für die Kommunikation mit Amazon ECS-Endpunkten.
- Es gibt Probleme mit dem Host- oder Docker-Service innerhalb der Container-Instance.
Gehen Sie wie folgt vor, um die Ursache der Verbindungsunterbrechung zu ermitteln.
Lösung
**Hinweis:**Die folgende Lösung gilt für Amazon ECS-optimierte Amazon Linux 1-AMIs. Eine Lösung, die für Amazon ECS-optimierte Amazon Linux 2-AMIs gilt, finden Sie unter Wie behebe ich Probleme mit einem getrennten Amazon ECS-Agenten?
Stellen Sie sicher, dass der Docker-Service auf der Container-Instance ausgeführt wird
1.Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Docker-Service auf der betroffenen Container-Instance ausgeführt wird:
sudo service docker status
Die Befehlsausgabe ähnelt der folgenden:
docker (pid 23013) is running...
Wenn der Docker-Service nicht läuft oder Sie den Dienst neu starten müssen, führen Sie den folgenden Befehl aus:
sudo service docker restart
**Hinweis:**Geben Sie diesen Befehl nicht ein, während der Service bereits läuft. Stellen Sie zunächst sicher, dass die Container-Instance in den Zustand Leeren versetzt wird. Starten Sie dann den Docker-Service für bestehende Aufgaben neu, die auf einer anderen Container-Instance geplant werden sollen.
Die Befehlsausgabe muss die folgenden Zeilen enthalten:
Stopping docker: [ OK ] Starting docker: [ OK ]
**Hinweis:**Um zu überprüfen, ob der Docker-Service nach dem Neustart-Befehl ausgeführt wird, führen Sie den Befehl sudo service docker status aus.
2.Führen Sie den folgenden Befehl aus, um den ECS-Agenten zu starten:
sudo start ecs
Stellen Sie sicher, dass der Container-Agent auf der Container-Instance ausgeführt wird
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Container-Agent auf der betroffenen Container-Instance ausgeführt wird:
sudo status ecs
Wenn der Container-Agent nicht auf Ihrer Container-Instance läuft, führen Sie den folgenden Befehl aus, um den Agenten zu starten:
sudo start ecs
Die Befehlsausgabe ähnelt der folgenden:
ecs start/running, process 23403
Überprüfen Sie die Protokolldateien für den Container-Agenten und Docker
Wenn Ihre Container-Instances immer noch nicht verbunden sind, überprüfen Sie die Protokolldateien auf dem Container-Host für den Container-Agenten und Docker.
Führen Sie die folgenden Befehle aus, um die Protokolldateien für den Container-Agenten und Docker auszugeben:
sudo cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-** sudo cat /var/log/docker
**Hinweis:**Führen Sie den Amazon ECS Logs Collector aus, um Protokollinformationen von der Container-Instance zu sammeln.
Stellen Sie sicher, dass das IAM-Instanzprofil über die erforderlichen Berechtigungen verfügt
Wenn der Container-Agent immer noch nicht verbunden ist, stellen Sie sicher, dass das mit der Container-Instance verknüpfte IAM-Instanzprofil über die erforderlichen IAM-Berechtigungen verfügt.
1.Stellen Sie mithilfe von SSH eine Verbindung zur Instanz her.
2.Führen Sie den folgenden Befehl aus, um die Instanzmetadaten im Instanzprofil anzuzeigen, das der Instanz zugeordnet ist:
curl http://169.254.169.254/latest/meta-data/iam/info
Die Befehlsausgabe ähnelt der folgenden:
{ "Code" : "Success", "LastUpdated" : "2019-06-29T15:47:03Z", "InstanceProfileArn" : "arn:aws:iam::1122334455:instance-profile/ecsInstanceRole", "InstanceProfileId" : "AIPAJ5WF3LZVY7PLUHV72" }
4.Um bestimmte Fehler bei den Anmeldeinformationen mit dem Container-Agenten zu überprüfen, führen Sie den folgenden Befehl aus, um im Container-Agent-Protokoll nach einer Liste von ECS-Protokollen zu suchen:
cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-**
**Hinweis:**Das Container-Agent-Protokoll wird stündlich rotiert, und das Suffix ändert sich automatisch, um das aktuelle Datum und die aktuelle Uhrzeit widerzuspiegeln. Aktualisieren Sie den Befehl, sodass er den Datumsbereich und die Protokoll-ID enthält, wann das Problem aufgetreten ist.
Wenn der Container-Agent nicht über die erforderlichen Anmeldeinformationen verfügt, erhalten Sie in den Protokollen eine Fehlermeldung ähnlich der folgenden:
2019-06-29T16:10:09Z [ERROR] Unable to register as a container instance with ECS: AccessDeniedException: User: arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/i-0052b2e858b1891ef is not authorized to perform: ecs:RegisterContainerInstance on resource: arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster status code: 400, request id: 0b73e260-5088-4688-a425-6f35f1ef440f 2019-06-29T16:10:09Z [ERROR] Error re-registering: AccessDeniedException: User: arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/i-0052b2e858b1891ef is not authorized to perform: ecs:RegisterContainerInstance on resource: arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster status code: 400, request id: 0b73e260-5088-4688-a425-6f35f1ef440f
Zusätzliche Hilfe
Wenn Sie das Problem mit Ihrer ECS-Container-Instance anhand dieser Lösung nicht identifizieren können, wenden Sie sich an den Premium Support, um Hilfe zu erhalten. Verwenden Sie zunächst den Amazon ECS Logs Collector, um ein Archiv der Protokolle Ihrer Instanz zu erstellen. Hängen Sie die Protokolle dann an ein Support-Ticket an, um dem Support-Techniker bei der Behebung des Problems zu helfen.
Ähnliche Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren