Wie kann ich den Fehler „dockertimeouerror unable transition start timeout after wait 3m0s“ in Amazon ECS für Fargate beheben?

Lesedauer: 3 Minute
0

Bei meinen Amazon Elastic Container Service (Amazon ECS)-Aufgaben für AWS Fargate erhalte ich die Fehlermeldung „dockertimeouerror unable transition start timeout after wait 3m0s“.

Kurzbeschreibung

Dieser Fehler tritt auf, wenn bei Ihren Fargate-Aufgaben ein Problem mit der Netzwerkkonfiguration auftritt. Für Fargate beträgt der Standardwert des Start-Timeouts 3 Minuten. Wenn eine Aufgabe nicht innerhalb von 3 Minuten vom Status pending in den Status running wechselt, ist diese Aufgabe fehlgeschlagen und wechselt in den Status stopped.

Für Fargate-Aufgaben, die in einem privaten Subnetz ohne konfigurierte NAT-Instance oder konfiguriertes Gateway ausgeführt werden, konfigurieren Sie die richtigen Amazon Virtual Private Cloud (Amazon VPC)-Endpunkte. Sie müssen über die folgenden Endpunkte verfügen:

  • Amazon Elastic Container Registry (Amazon ECR): Dieser Endpunkt ist erforderlich, um das Image aus dem ECR-Repository abzurufen.
  • Amazon Simple Storage Service (Amazon S3): Dieser Endpunkt ist erforderlich, da Amazon ECR Amazon S3 zum Speichern Ihrer Image-Ebenen verwendet. Um Images von Amazon ECR herunterzuladen, müssen die Container auf Amazon ECR zugreifen, um das Image-Manifest abzurufen, und auf Amazon S3, um die Image-Ebenen herunterzuladen.
  • AWS Secrets Manager und/oder AWS Systems Manager: Diese Endpunkte sind erforderlich, wenn Sie in Ihren Aufgabendefinitionen auf Secrets-Manager-Geheimnisse oder Parameter aus Systems Manager Parameter Store verweisen. Sie müssen die Schnittstellen-VPC-Endpunkte für Secrets Manager oder Systems Manager erstellen, damit diese Aufgaben die Dienste erreichen können. Die Endpunkte dürfen nur von dem spezifischen Service (Secrets Manager oder System Manager) aus erstellt werden, in dem Ihre vertraulichen Daten gehostet werden.
  • Amazon CloudWatch: Dieser Endpunkt ist erforderlich, wenn die Fargate-Aufgaben awslogs als Protokollierungstreiber verwenden. Die Aufgaben, die awslogs als Protokollierungstreiber verwenden, exportieren ihre Protokolle zu CloudWatch. Wenn Sie awslogs verwenden und der VPC-Endpunkt für CloudWatch erstellt, aber nicht eingerichtet wurde, können Ihre Aufgaben den Endpunkt nicht erreichen. Sie erhalten die folgende Fehlermeldung: „DockerTimeoutError: Could not transition to started; timed out after waiting 3m0s."

Lösung

Prüfen Sie, ob Ihre Aufgabendefinition den awslogs-Protokollierungstreiber verwendet

Führen Sie die folgenden Schritte aus:

  1. Öffnen Sie die Amazon-ECS-Konsole.
  2. Wählen Sie im Navigationsbereich Aufgabendefinitionen aus.
  3. Wählen Sie die Aufgabendefinition aus, die von Ihrer Aufgabe oder Ihrem Service verwendet wird, und wählen Sie dann den Namen Ihrer Aufgabendefinition.
  4. Wählen Sie im Abschnitt Containerdefinitionen Ihrer Aufgabendefinition in der Spalte Containername das Expander-Symbol für Ihren Container aus.
  5. Überprüfen Sie im Unterabschnitt Protokollkonfiguration, ob Protokolltreiber auf awslogs gesetzt ist.

Wichtig: Wenn Ihre Aufgaben in einem privaten Subnetz ohne NAT-Gateway oder NAT-Instance ausgeführt werden, müssen Sie VPC-Endpunkte verwenden.

Bestätigen, dass Sie über einen VPC-Endpunkt für Ihre Fargate-Aufgaben verfügen

Führen Sie die folgenden Schritte aus:

  1. Öffnen Sie die Amazon-VPC-Konsole.
  2. Wählen Sie im Navigationsbereich Endpunkte aus.
  3. Prüfen Sie, ob com.amazonaws.region.logs im Feld Servicename vorhanden ist.

Wenn der Endpunkt nicht existiert, erstellen Sie einen neuen Endpunkt.

Wenn der Endpunkt existiert, überprüfen Sie, ob es sich bei dem Endpunkt um dieselbe VPC handelt, auf der die Fargate-Aufgaben ausgeführt werden. Wählen Sie dazu in der VPC-Konsole den Endpunkt aus und suchen Sie auf der Registerkarte Details des Endpunkts nach der VPC-ID.

Wenn der Endpunkt nicht von derselben VPC verwendet wird wie die Fargate-Aufgaben, erstellen Sie einen neuen Endpunkt.

Wenn der Endpunkt von derselben VPC verwendet wird wie die Fargate-Aufgaben, überprüfen Sie die der VPC zugeordnete Sicherheitsgruppe auf Folgendes:

  • Die Eingangsregel der Sicherheitsgruppe muss Datenverkehr über Port 443 von den Fargate-Aufgaben zulassen.
  • Die mit der Fargate-Aufgabe verknüpfte Sicherheitsgruppe muss über eine Ausgangsregel verfügen, um Datenverkehr über Port 443 an den VPC-Endpunkt zu senden.

Verwandte Informationen

Amazon ECR interface VPC endpoints (AWS PrivateLink)

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 8 Monaten