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.
Ermitteln Sie den Zustand von ECS Amazon-Aufgaben mithilfe von Container-Zustandsprüfungen
Wenn Sie eine Aufgabendefinition erstellen, können Sie eine Zustandsprüfung für Ihre Container konfigurieren. Integritätsprüfungen sind Befehle, die lokal in einem Container ausgeführt werden und den Zustand und die Verfügbarkeit von Anwendungen überprüfen.
Der ECS Amazon-Container-Agent überwacht und berichtet nur über die in der Aufgabendefinition angegebenen Zustandsprüfungen. Amazon überwacht ECS keine Docker-Zustandsprüfungen, die in ein Container-Image eingebettet, aber nicht in der Container-Definition angegeben sind. Parameter für die Zustandsprüfung, die in einer Container-Definition angegeben sind, überschreiben Docker-Zustandsprüfungen, die im Container-Image vorhanden sind.
Wenn in einer Aufgabendefinition eine Integritätsprüfung definiert ist, führt der Container den Integritätsprüfungsprozess innerhalb des Containers aus und wertet dann den Exit-Code aus, um den Zustand der Anwendung zu ermitteln.
Die Integritätsprüfung besteht aus den folgenden Parametern:
-
Befehl — Der Befehl, den der Container ausführt, um festzustellen, ob er fehlerfrei ist. Das Zeichenfolge-Array kann mit
CMD
beginnen, um die Befehlsargumente direkt auszuführen, oder mitCMD-SHELL
, um den Befehl mit der Standard-Shell des Containers auszuführen. -
Intervall — Der Zeitraum (in Sekunden) zwischen den einzelnen Zustandsprüfungen.
-
Timeout — Der Zeitraum (in Sekunden), in dem auf eine erfolgreiche Zustandsprüfung gewartet werden soll, bevor sie als Fehlschlag gewertet wird.
-
Wiederholungen — Gibt an, wie oft eine fehlgeschlagene Zustandsprüfung wiederholt werden muss, bevor der Container als fehlerhaft eingestuft wird.
-
Startzeitraum — Die optionale Übergangszeit, um Containern Zeit zum Bootstrapping zu geben, bevor fehlgeschlagene Integritätsprüfungen auf die maximale Anzahl von Wiederholungen angerechnet werden.
Informationen darüber, wie Sie eine Integritätsprüfung in einer Aufgabendefinition angeben, finden Sie unter. Zustandsprüfung
Im Folgenden werden die möglichen Integritätsstatuswerte für einen Container beschrieben:
-
HEALTHY
– Die Container-Zustandsprüfung wurde erfolgreich bestanden. -
UNHEALTHY
– Die Container-Zustandsprüfung ist fehlgeschlagen. -
UNKNOWN
— Der Container-Gesundheitscheck wird ausgewertet, es wurde keine Container-Zustandsprüfung definiert, oder Amazon ECS hat keinen Integritätsstatus des Containers.
Die Befehle zur Integritätsprüfung werden auf dem Container ausgeführt. Daher müssen Sie die Befehle in das Container-Image aufnehmen.
Die Integritätsprüfung stellt über die Loopback-Schnittstelle des Containers unter localhost
oder eine Verbindung zur Anwendung her. 127.0.0.1
Ein Exit-Code von 0
bedeutet Erfolg, und ein Exit-Code ungleich Null zeigt einen Fehler an.
Beachten Sie bei der Verwendung von Container-Integritätsprüfungen Folgendes:
-
Für Container-Zustandsprüfungen ist Version 1.17.0 oder höher des Amazon ECS Container Agents erforderlich.
-
Container-Zustandsprüfungen werden für Fargate-Aufgaben unterstützt, wenn Sie eine Linux-Plattformversion
1.1.0
oder höher oder eine Windows-Plattformversion1.1.0
oder höher verwenden
Wie Amazon ECS den Zustand von Aufgaben bestimmt
Container, die unverzichtbar sind und in der Aufgabendefinition den Befehl Health Check enthalten, sind die einzigen, die bei der Bestimmung des Aufgabenzustands berücksichtigt werden.
Die folgenden Regeln werden der Reihe nach ausgewertet:
-
Wenn der Status eines wichtigen Containers lautet
UNHEALTHY
, dann ist der AufgabenstatusUNHEALTHY
. -
Wenn der Status eines wichtigen Containers ist
UNKNOWN
, dann ist der AufgabenstatusUNKNOWN
. -
Wenn der Status aller wichtigen Container lautet
HEALTHY
, dann ist der AufgabenstatusHEALTHY
.
Betrachten Sie das folgende Beispiel für den Zustand einer Aufgabe mit zwei wichtigen Containern.
Zustand von Container 1 | Behälter 2 Gesundheit | Gesundheit der Aufgabe |
---|---|---|
UNHEALTHY |
UNKNOWN |
UNHEALTHY |
UNHEALTHY |
HEALTHY |
UNHEALTHY |
HEALTHY |
UNKNOWN |
UNKNOWN |
HEALTHY |
HEALTHY |
HEALTHY |
Betrachten Sie das folgende Beispiel für den Zustand einer Aufgabe mit 3 Containern.
Zustand von Container 1 | Behälter 2 Gesundheit | Behälter 3 Gesundheit | Gesundheit der Aufgabe |
---|---|---|---|
UNHEALTHY |
UNKNOWN |
UNKNOWN |
UNHEALTHY |
UNHEALTHY |
UNKNOWN |
HEALTHY |
UNHEALTHY |
UNHEALTHY |
HEALTHY |
HEALTHY |
UNHEALTHY |
HEALTHY |
UNKNOWN |
HEALTHY |
UNKNOWN |
HEALTHY |
UNKNOWN |
UNKNOWN |
UNKNOWN |
HEALTHY |
HEALTHY |
HEALTHY |
HEALTHY |
Wie wirken sich Verbindungsabbrüche auf Integritätsprüfungen von Agenten aus
Wenn der ECS Amazon-Container-Agent vom ECS Amazon-Service getrennt wird, führt dies nicht dazu, dass ein Container in einen UNHEALTHY
Status wechselt. Dies ist beabsichtigt, um sicherzustellen, dass Container auch bei Neustarts des Agenten oder bei vorübergehender Nichtverfügbarkeit weiter laufen. Der Status der Zustandsprüfung entspricht der Antwort des ECS Amazon-Kundendienstmitarbeiters „Zuletzt gehört von“. Wenn der Container also HEALTHY
vor der Unterbrechung berücksichtigt wurde, bleibt dieser Status bestehen, bis der Agent die Verbindung wieder herstellt und eine weitere Zustandsprüfung durchgeführt wird. Es werden keine Annahmen über den Status der Zustandsprüfungen der Container getroffen.