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

Lesedauer: 4 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 Ausstehend in den Status Wird ausgeführt wechselt, ist diese Aufgabe fehlgeschlagen und wechselt in den Status Beendet.

Wenn Ihre Fargate-Aufgaben in einem privaten Subnetz ohne konfigurierte NAT-Instance oder Gateway ausgeführt werden, müssen Sie die richtigen Amazon Virtual Private Cloud (Amazon VPC)-Endpunkte einrichten. Dies beinhaltet Endpunkte für Folgendes:

  • **Amazon Elastic Container Registry (Amazon ECR):**Dies ist erforderlich, um das Image aus dem ECR-Repository abzurufen.
  • **Amazon Simple Storage Service (Amazon S3):**Dies ist erforderlich, da Amazon ECR Amazon S3 zum Speichern Ihrer Image-Ebenen verwendet. Wenn Ihre Container Images von Amazon ECR herunterladen, müssen die Container auf Amazon ECR zugreifen, um das Image-Manifest abzurufen, und auf Amazon S3 zugreifen, um die tatsächlichen Image-Ebenen herunterzuladen.
  • AWS Secrets Manager und/oder AWS Systems Manager**: ** Diese sind erforderlich, wenn Sie in Ihren Aufgabendefinitionen entweder auf Secrets Manager-Geheimnisse oder auf Systems Manager Parameter Store-Parameter verweisen, um vertrauliche Daten in Ihre Container einzufügen. Sie müssen die Schnittstellen-VPC-Endpunkte für Secrets Manager oder Systems Manager erstellen, damit diese Aufgaben diese Dienste erreichen können. Sie dürfen die Endpunkte nur von dem spezifischen Service (Secrets Manager oder System Manager) aus erstellen, in dem Ihre vertraulichen Daten gehostet werden.
  • **Amazon CloudWatch:**Dies ist erforderlich, wenn die Fargate-Aufgaben awslogs als Protokollierungstreiber verwenden. Dies liegt daran, dass die Aufgaben, die awslogs als Protokollierungstreiber verwenden, ihre Protokolle nach CloudWatch exportieren. 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

  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 Container-Definitionen 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:**Sie müssen VPC-Endpunkte verwenden, wenn Ihre Aufgaben in einem privaten Subnetz ohne NAT-Gateway oder NAT-Instance ausgeführt werden.

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

  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 dann auf der Registerkarte Details des Endpunkts nach der VPC-ID.

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

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

  • Die Eingangsregel der Sicherheitsgruppe muss den 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.

Jetzt können Ihre Fargate-Aufgaben die CloudWatch-Endpunkte erreichen, die Sie erstellt haben.


Ähnliche Informationen

VPC-Endpunkte mit Amazon ECR-Schnittstelle (AWS PrivateLink)

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren