Stellen Sie Amazon ECS-Services bereit, indem Sie Aufgaben ersetzen - 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.

Stellen Sie Amazon ECS-Services bereit, indem Sie Aufgaben ersetzen

Wenn Sie einen Service erstellen, der den Bereitstellungstyp Fortlaufende Aktualisierung (ECS) verwendet, ersetzt der Amazon ECS Service Scheduler die derzeit ausgeführten Aufgaben durch neue Aufgaben. Die Anzahl der Aufgaben, die Amazon ECS während einer fortlaufenden Aktualisierung für den Service hinzufügt oder entfernt, wird durch die Service-Bereitstellungskonfiguration gesteuert.

Amazon ECS verwendet die folgenden Parameter, um die Anzahl der Aufgaben zu bestimmen:

  • Das minimumHealthyPercent stellt die untere Grenze für die Anzahl der Aufgaben dar, die für einen Service während einer fortlaufenden Bereitstellung oder wenn eine Container-Instance ausgelastet ist, ausgeführt und fehlerfrei sein sollten, ausgedrückt als Prozentsatz der gewünschten Anzahl von Aufgaben für den Service. Dieser Wert wird aufgerundet. Zum Beispiel, wenn der minimale gesunde Prozentsatz 50 ist und die gewünschte Aufgabenanzahl vier ist, kann der Scheduler zwei bestehende Aufgaben stoppen, bevor er zwei neue Aufgaben startet. Ebenso kann der Scheduler, wenn der minimale fehlerfreie Prozentsatz 75 % beträgt und die gewünschte Anzahl zwei ist, keine Aufgaben stoppen, da der resultierende Wert auch zwei ist.

  • Der maximumPercent stellt die Obergrenze für die Anzahl der Aufgaben dar, die für einen Service während einer fortlaufenden Bereitstellung oder wenn eine Container-Instance ausgelastet ist, ausgeführt werden sollten, als Prozentsatz der gewünschten Anzahl von Aufgaben für einen Dienst. Dieser Wert wird abgerundet. Wenn der maximale Prozentsatz beispielsweise vier beträgt 200 und die gewünschte Anzahl an Aufgaben gleich vier ist, kann der Scheduler vier neue Aufgaben starten, bevor er vier bestehende Aufgaben stoppt. Ebenso, wenn der maximale Prozentsatz 125. ist und die gewünschte Aufgabenanzahl drei ist, kann der Scheduler keine Aufgaben starten, da der resultierende Wert ebenfalls drei ist.

Wenn Aufgaben während einer fortlaufenden Bereitstellung fehlerhaft werden, ersetzt Amazon ECS sie, um Ihren Service aufrechtzuerhalten minimumHealthyPercent und die Verfügbarkeit zu schützen. Fehlerhafte Aufgaben werden mit derselben Service-Version ersetzt, zu der sie gehören. Dadurch wird sichergestellt, dass das Ersetzen fehlerhafter Aufgaben in der Quellrevision unabhängig von Aufgabenfehlern in der Zielrevision ist. Wenn die maximumPercent Einstellung dies zulässt, startet der Scheduler Ersatzaufgaben, bevor er fehlerhafte Aufgaben beendet. Wenn der maximumPercent Parameter den Scheduler daran hindert, zuerst eine Ersatzaufgabe zu starten, stoppt der Scheduler jeweils eine fehlerhafte Aufgabe, um Kapazität freizugeben, bevor eine Ersatzaufgabe gestartet wird.

Wichtig

Beim Festlegen eines minimalen fehlerfreien Prozentsatzes oder eines maximalen Prozentsatzes sollten Sie sicherstellen, dass der Planer mindestens eine Aufgabe anhalten oder starten kann, wenn eine Bereitstellung initiiert wird. Wenn Ihr Service über eine Bereitstellung verfügt, die aufgrund einer ungültigen Bereitstellungskonfiguration nicht mehr besteht, wird eine Serviceereignismeldung gesendet. Weitere Informationen finden Sie unter service (service-name) konnte aufgrund der Konfiguration der Dienstbereitstellung während einer Bereitstellung keine Aufgaben beenden oder starten. Aktualisieren Sie den Wert minimumHealthyPercent oder MaximumPercent und versuchen Sie es erneut..

Fortlaufende Bereitstellungen verfügen über zwei Methoden, mit denen Sie schnell feststellen können, wann eine Servicebereitstellung fehlgeschlagen ist:

Die Methoden können getrennt oder zusammen verwendet werden. Wenn beide Methoden verwendet werden, wird die Bereitstellung als fehlgeschlagen eingestuft, sobald das Fehlerkriterium für eine der beiden Fehlermethoden erfüllt ist.

Bestimmen Sie anhand der folgenden Anleitungen, welche Methode verwendet werden soll:

  • Schutzschalter – Verwenden Sie diese Methode, wenn Sie eine Bereitstellung anhalten möchten, falls die Aufgaben nicht gestartet werden können.

  • CloudWatch Alarme — Verwenden Sie diese Methode, wenn Sie eine Bereitstellung auf der Grundlage von Anwendungsmetriken beenden möchten.

Beide Methoden unterstützen das Rollback zur vorherigen Service-Revision.

Auflösung des Container-Images

Amazon ECS löst standardmäßig die in der Aufgabendefinition angegebenen Container-Image-Tags in Container-Image-Digests auf. Wenn Sie einen Service erstellen, der eine einzelne Aufgabe ausführt und verwaltet, wird diese Aufgabe verwendet, um Image-Digests für die Container in der Aufgabe einzurichten. Wenn Sie einen Service erstellen, der mehrere Aufgaben ausführt und verwaltet, wird die erste Aufgabe, die während der Bereitstellung vom Service Scheduler gestartet wird, verwendet, um die Image-Digests für die Container in den Aufgaben einzurichten.

Wenn drei oder mehr Versuche, die Container-Image-Digests einzurichten, fehlschlagen, wird die Bereitstellung ohne Image-Digest-Auflösung fortgesetzt. Wenn der Bereitstellungs-Schutzschalter aktiviert ist, schlägt die Bereitstellung zusätzlich fehl und wird zurückgesetzt.

Nachdem die Container-Image-Digests eingerichtet wurden, verwendet Amazon ECS die Digests, um alle anderen gewünschten Aufgaben zu starten sowie für zukünftige Service-Aktualisierungen. Dies führt dazu, dass alle Aufgaben in einem Service immer identische Container-Images ausführen, was zu einer Versionskonsistenz für Ihre Software führt.

Sie können dieses Verhalten für jeden Container in Ihrer Aufgabe konfigurieren, indem Sie den versionConsistency-Parameter in der Container-Definition verwenden. Weitere Informationen finden Sie unter versionConsistency.

Anmerkung
  • Amazon-ECS-Agentenversionen, die älter als 1.31.0 sind, unterstützen keine Image-Digest-Auflösung. Agentenversionen 1.31.0 bis 1.69.0 unterstützen Image-Digest-Auflösung nur für Images, die in Amazon-ECR-Repositorys übertragen wurden. Agentenversionen 1.70.0 oder höher unterstützen Image-Digest-Auflösung für alle Images.

  • Die Mindest-Plattformversion von Fargate Linux für die Image-Digest-Auflösung ist 1.3.0. Die Mindest-Plattformversion von Fargate Windows für die Image-Digest-Auflösung ist 1.0.0.

  • Amazon ECS erfasst keine Übersichten von Sidecar-Containern, die von Amazon ECS verwaltet werden, wie z. B. der Amazon GuardDuty Security Agent oder der Service Connect-Proxy.

  • Um die potenzielle Latenz im Zusammenhang mit der Container-Image-Auflösung in Diensten mit mehreren Aufgaben zu reduzieren, führen Sie Amazon ECS-Agent-Version 1.83.0 oder höher auf EC2 Container-Instances aus. Um potenzielle Latenzen zu vermeiden, geben Sie Container-Image-Digests in Ihrer Aufgabendefinition an.

  • Wenn Sie einen Service mit einer gewünschten Aufgaben-Anzahl von Null erstellen, kann Amazon ECS keine Container-Digests einrichten, bis Sie eine weitere Bereitstellung des Service mit einer gewünschten Aufgaben-Anzahl von mehr als Null auslösen.

  • Um aktualisierte Image-Digests zu erstellen, können Sie eine neue Bereitstellung erzwingen. Die aktualisierten Digests werden zum Starten neuer Aufgaben verwendet und wirken sich nicht auf bereits ausgeführte Aufgaben aus. Weitere Informationen zum Erzwingen neuer Bereitstellungen finden Sie forceNewDeploymentin der Amazon ECS-API-Referenz.

  • Wenn bei der Verwendung von EC2 Kapazitätsanbietern nicht genügend Kapazität vorhanden ist, um eine Aufgabe bei der ersten Bereitstellung zu starten, kann die Konsistenz der Softwareversionen fehlschlagen. Um sicherzustellen, dass die Versionskonsistenz auch bei begrenzter Kapazität erhalten bleibt, sollten Sie explizit versionConsistency: "enabled" in Ihrer Container-Konfiguration für Aufgabendefinitionen festlegen, anstatt sich auf das Standardverhalten zu verlassen. Dies veranlasst Amazon ECS, zu warten, bis Kapazität verfügbar ist, bevor mit der Bereitstellung fortgefahren wird.