AWS ECS: Aufgabe kann nicht platziert werden

AWS ECS: Aufgabe kann nicht platziert werden

Ich versuche, einen AWS-Dienst mit automatischer Skalierung einzurichten. Ich habe einen Cluster mit einem Anwendungs-Loadbalancer erstellt und eine Aufgabe mit einem Docker-Image erstellt, das zur Verwendung auf Port 8080 geöffnet sein sollte. Ich habe einen Dienst basierend auf dieser Aufgabe erstellt, für den ich die minimale und gewünschte Anzahl von Instanzen auf 1 und die maximale Anzahl auf 10 festgelegt und Regeln zum Hoch- und Herunterskalieren erstellt habe. Es werden jedoch keine neuen Instanzen erstellt und alles, was ich in der Liste der Ereignisse in regelmäßigen Abständen erhalte, ist:

Der Dienst microrecieverservice konnte keine Aufgabe platzieren, da keine Containerinstanz alle seine Anforderungen erfüllte. Die am besten passende Containerinstanz 97d97ce9-967d-49ad-83ad-f4f904aae1f6 verwendet bereits einen für Ihre Aufgabe erforderlichen Port. Weitere Informationen finden Sie im Abschnitt „Fehlerbehebung“.

Ich konnte nichts Relevantes finden in derAbschnitt zur Fehlerbehebung. Ich konnte dem Cluster manuell eine weitere Instanz hinzufügen, aber die angezeigten Ereignisse änderten sich nicht. Ich konnte mich per SSH mit dieser Instanz verbinden und es gab zwei Docker-Images: eines war amazon-ecs-agent:latest und das andere war meine Aufgabendefinition. An diesem Punkt versuchte ich, eine REST-Anfrage an den Server zu senden, um zu sehen, ob sie durchgeht, aber die Antwort lautete „Verbindung abgelehnt“. Etwa zur gleichen Zeit wurde das Docker-Image neu gestartet.

Der Container führt nichts anderes aus, das Port 8080 verwenden würde, und wenn ich netstat -lntpden Prozess über Port 8080 ausführe, handelt es sich um meinen Docker-Image.

Antwort1

Höchstwahrscheinlich verwendet Ihre Aufgabe Port 8080 als statischen Port.

Da Sie nur eine Instanz in Ihrem Cluster haben, können Sie Ihren Dienst nicht aktualisieren und gleichzeitig Ihre Platzierungsstrategie einhalten. Diese erfordert höchstwahrscheinlich, zuerst die neue Aufgabe zu starten, auf die erfolgreiche Integritätsprüfung zu warten und dann die alte Aufgabe zu stoppen.

Da die einzige Instanz eine auf Port 8080 ausgeführte Aufgabe hat, ist keine Instanz verfügbar, auf der die Aufgabe gestartet werden kann.

VerwendenDynamische ECS-Portzuordnung, oder starten Sie weitere Instanzen in Ihrem Cluster.

verwandte Informationen