Planen Ihrer Container auf Amazon ECS - 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.

Planen Ihrer Container auf Amazon ECS

Amazon Elastic Container Service (Amazon ECS) ist ein optimistisches Parallelitätssystem mit gemeinsamem Status, das flexible Planungsfunktionen für Ihre containerisierten Workloads bietet. Die Amazon-ECS-Scheduler nutzen dieselben Clusterzustandsinformationen, die von der Amazon-ECS-API bereitgestellt werden, um entsprechende Entscheidungen zur Platzierung zu treffen.

Amazon ECS bietet einen Service-Scheduler für lang laufende Aufgaben und Anwendungen. Es bietet auch die Möglichkeit, eigenständige Aufgaben oder geplante Aufgaben für Batch-Aufträge oder Einzelausführungsaufgaben auszuführen. Sie können die Strategien und Einschränkungen für die Aufgabenplatzierung für ausgeführte Aufgaben angeben, die Ihren Anforderungen am besten entsprechen. Sie können z. B. angeben, ob Aufgaben über mehrere Availability Zones oder innerhalb einer einzelnen Availability Zone ausgeführt werden. Integrieren Sie Aufgaben optional mit Ihren eigenen benutzerdefinierten oder Drittanbieter-Schedulern.

Service-Scheduler

Der Service-Scheduler eignet sich für lang laufende zustandslose Services und Anwendungen. Der Service Scheduler stellt sicher, dass die von Ihnen angegebene Einplanungsstrategie einhalten wird, und plant Aufgaben neu ein, wenn eine Aufgabe fehlschlägt. Wenn beispielsweise die zugrunde liegende Infrastruktur fehlschlägt, kann der Service-Scheduler Aufgaben neu planen.

Der Service-Scheduler ersetzt auch Aufgaben, die nach einem Fehlschlagen einer Container-Zustandsprüfung oder einer Load-Balancer-Zielgruppen-Zustandsprüfung als fehlerhaft eingestuft wurden. Dieser Ersatz hängt von den Parametern maximumPercent und desiredCount der Servicedefinition ab. Wenn eine Aufgabe als fehlerhaft markiert ist, startet der Service-Scheduler zunächst eine Ersatzaufgabe. Wenn die Ersatzaufgabe den Zustand HEALTHY hat, stoppt der Service-Scheduler die fehlerhafte Aufgabe. Wenn die Ersatzaufgabe den Zustand UNHEALTHY hat, stoppt der Scheduler entweder die fehlerhafte Ersatzaufgabe oder die vorhandene fehlerhafte Aufgabe, sodass die Gesamtanzahl der Aufgaben auf einen Wert gleich desiredCount eingestellt wird. Wenn der Parameter maximumPercent den Scheduler daran hindert, zuerst eine Ersatzaufgabe zu starten, stoppt der Scheduler fehlerhafte Aufgaben einzeln nach dem Zufallsprinzip, um Kapazität freizugeben, und startet dann eine Ersatzaufgabe. Der Start- und Stoppvorgang wird fortgesetzt, bis alle fehlerhaften Aufgaben durch fehlerfreie Aufgaben ersetzt wurden. Sobald alle fehlerhaften Aufgaben ersetzt wurden und nur noch fehlerfreie Aufgaben ausgeführt werden, werden, wenn die Gesamtzahl der Aufgaben desiredCount übersteigt, die fehlerfreien Aufgaben nach dem Zufallsprinzip angehalten, bis die Gesamtzahl der Aufgaben gleich desiredCount ist. Weitere Informationen zu maximumPercent und desiredCount finden Sie unter Servicedefinitionsparamater.

Anmerkung

Dieses Verhalten gilt nicht für Aufgaben, die von Services ausgeführt und verwaltet werden, die den Bereitstellungstyp fortlaufende Aktualisierung verwenden. Während einer fortlaufenden Aktualisierung beendet der Service-Scheduler zuerst fehlerhafte Aufgaben und startet dann Ersatzaufgaben.

Es gibt zwei Strategien für Service-Scheduler:

  • REPLICA: Die Replica-Einplanungsstrategie platziert und die gewünschte Anzahl von Aufgaben in Ihrem Cluster und behält sie bei. Standardmäßig verteilt der Service-Scheduler Aufgaben über Availability Zones. Mit Aufgabenplatzierungsstrategien und -bedingungen können Sie festlegen, wie Aufgaben platziert und beendet werden. Weitere Informationen finden Sie unter Replikat.

  • DAEMON: Die Daemon-Einplanungsstrategie stellt genau eine Aufgabe auf jeder aktiven Container-Instance bereit, die alle von Ihnen in Ihrem Cluster angegebenen Platzierungsbedingungen für die Aufgaben erfüllt. Bei Verwendung dieser Strategie ist es nicht erforderlich, eine gewünschte Anzahl von Aufgaben oder eine Aufgabenplatzierungsstrategie anzugeben oder Auto-Scaling-Richtlinien zu verwenden. Weitere Informationen finden Sie unter Daemon.

    Anmerkung

    Fargate-Aufgaben unterstützen die DAEMON-Einplanungsstrategie nicht.

Optional stellt der Service-Scheduler auch sicher, dass Aufgaben für einen Elastic Load Balancing-Load Balancer registriert werden. Sie können Ihre Services, die vom Service-Scheduler verwaltet werden, aktualisieren. Dies kann das Bereitstellen einer neuen Aufgabendefinition oder das Ändern der Anzahl der gewünschten Aufgaben umfassen, die ausgeführt werden. Standardmäßig verteilt der Service Scheduler Aufgaben über mehrere Availability Zones. Mit Aufgabenplatzierungsstrategien und -bedingungen können Sie jedoch festlegen, wie Aufgaben platziert und beendet werden. Weitere Informationen finden Sie unter Amazon-ECS-Dienstleistungen.

Eigenständige Aufgaben

Sie können eine eigenständige Aufgabe ausführen, wenn Sie Prozesse wie Batch-Aufträge haben, die Aufgaben ausführen und dann anhalten. Zum Beispiel können Sie einen Prozess RunTask aufrufen lassen, wenn ein Auftrag in eine Warteschlange gestellt wird. Die Aufgabe nimmt den Auftrag aus der Warteschlange, führt ihn aus und wird dann beendet. Mithilfe von RunTask können Sie der Standardstrategie zur Platzierung von Aufgaben erlauben, Aufgaben zufällig über Ihr Cluster zu verteilen. Dadurch wird die Wahrscheinlichkeit gesenkt, dass einer einzelnen Instance eine unverhältnismäßige Anzahl von Aufgaben zugewiesen wird. Alternativ können Sie RunTask verwenden, um anzupassen, wie der Scheduler mithilfe von Platzierungsstrategien und -einschränkungen Aufgaben platziert.

Benutzerdefinierte Scheduler

Mit Amazon ECS können Sie eigenen Scheduler erstellen oder Scheduler von Drittanbietern verwenden. Weitere Informationen finden Sie unter So erstellen Sie einen benutzerdefinierten Scheduler für Amazon ECS. Benutzerdefinierte Scheduler verwenden die StartTask -API-Operation, um Aufgaben auf bestimmten Container-Instances in Ihrem Cluster zu platzieren.

Anmerkung

Benutzerdefinierte Scheduler sind nur mit Aufgaben kompatibel, die auf EC2-Instances gehostet werden. Wenn Sie Amazon ECS auf Fargate verwenden, funktioniert die StartTask API nicht.