Container-Instance-Ausgleich
Wenn Sie einen Amazon-ECS-Kapazitätsanbieter verwenden, müssen Sie keine Maßnahmen im Zusammenhang mit dem Ausgleich von Container-Instances ergreifen. Der Kapazitätsanbieter koordiniert den Ausgleich von Container-Instances mit der Auto-Scaling-Gruppe.
Es kann vorkommen, dass Sie eine Container-Instance aus Ihrem Cluster entfernen müssen, beispielsweise, um Systemaktualisierungen durchzuführen, den Docker-Daemon zu aktualisieren oder die Cluster-Kapazität zu reduzieren. Amazon ECS bietet die Möglichkeit, eine Container-Instance in einen DRAINING
-Status zu überführen. Dies wird Container-Instance-Ausgleich genannt. Wenn eine Container-Instance auf DRAINING
festgelegt wird, lässt es Amazon ECS nicht zu, dass die Platzierung neuer Aufgaben in der Container-Instance geplant wird.
Ausgleichsverhalten für Services
Alle Aufgaben, die Teil eines Dienstes sind, die sich in einem PENDING
-Zustand befinden, werden sofort gestoppt. Wenn im Cluster verfügbare Kapazität für Container-Instances vorhanden ist, startet der Service-Scheduler Ersetzungsaufgaben. Wenn nicht genügend Kapazität für Container-Instances vorhanden ist, wird eine Service-Ereignismeldung gesendet, die das Problem angibt.
Aufgaben, die Teil eines Dienstes auf der Container-Instance sind, die sich in einem RUNNING
-Zustand befinden werden in einen STOPPED
-Zustand übertragen. Der Service Scheduler versucht, die Aufgaben gemäß den Bereitstellungskonfigurationsparametern des Service, minimumHealthyPercent
und maximumPercent
, zu ersetzen. Weitere Informationen finden Sie unter Servicedefinitionsparameter.
-
Beträgt der Wert für
minimumHealthyPercent
weniger als 100 % kann der Scheduler die AngabedesiredCount
während des Ersetzens der Aufgabe vorübergehend ignorieren. Beträgt der Wert fürdesiredCount
beispielsweise vier Aufgaben, kann der Scheduler bei einem Minimum von 50 % zwei bestehende Aufgaben stoppen, bevor er zwei neue Aufgaben startet. Bei einem Minimum von 100 % kann der Service-Scheduler keine vorhandenen Aufgaben entfernen, bis die Ersatzaufgaben als fehlerfrei angesehen werden. Wenn Aufgaben für Services, die keinen Load Balancer verwenden, den StatusRUNNING
aufweisen, werden Sie als fehlerfrei angesehen. Aufgaben für Services, die einen Load Balancer nutzen, gelten als fehlerfrei, wenn Sie den StatusRUNNING
aufweisen und die Container-Instance, auf der sie gehostet sind, vom Load Balancer als fehlerfrei gemeldet wird. -
Der Parameter
maximumPercent
stellt eine Obergrenze für die Anzahl der laufenden Aufgaben während der Aufgabenersetzung dar, sodass Sie die Größe des Ersatzstapels festlegen können. Bei einemdesiredCount
von vier Aufgaben beispielsweise werden bei einem Maximum von 200 % vier neue Aufgaben gestartet, bevor die vier auszugleichenden Aufgaben gestoppt werden (sofern die hierfür erforderlichen Cluster-Ressourcen verfügbar sind). Bei einem Maximum von 100 % können keine Ersatzaufgaben gestartet werden, bis die Ausgleichsaufgaben gestoppt wurden.Wichtig Wenn sowohl
minimumHealthyPercent
als auchmaximumPercent
100 % betragen, kann der Service vorhandene Aufgaben nicht entfernen und auch keine Ersatzaufgaben starten. Dies verhindert einen erfolgreichen Ausgleich von Container-Instances und verhindert neue Bereitstellungen.
Ausgleichsverhalten für eigenständige Aufgaben
Alle eigenständigen Aufgaben im PENDING
- oder RUNNING
-Status bleiben unberührt. Sie müssen warten, bis sie von alleine stoppen, oder müssen sie manuell stoppen. Die Container-Instance bleibt im Status DRAINING
.
Eine Container-Instance hat den Ausgleich abgeschlossen, wenn alle Aufgaben, die auf der Instance ausgeführt werden, zu einem STOPPED
-Zustand übergegangen sind. Die Container-Instance verbleibt in einem DRAINING
-Zustand, bis sie erneut aktiviert oder gelöscht wird. Sie können den Status der Tasks auf der Container-Instance überprüfen, indem Sie die ListTasks-Operation mit dem containerInstance
-Parameter verwenden, um so eine Liste von Aufgaben für die Instance, gefolgt von einem DescribeTasks-Vorgang mit dem Amazon-Ressourcennamen (ARN) oder der ID jeder Aufgabe, um den Aufgabenstatus zu überprüfen, zu erhalten.
Wenn Sie bereit sind, dass die Container-Instance erneut mit dem Hosten von Tasks beginnen kann, ändern Sie den Status der Container-Instance von DRAINING
auf ACTIVE
. Der Amazon ECS-Service Scheduler berücksichtigt dann die Container-Instance für die Aufgabenplatzierung erneut.