Amazon EC2 ECS-Container-Instances - 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.

Amazon EC2 ECS-Container-Instances

Der Amazon ECS-Agent ist ein Prozess, der auf jeder Container-Instance ausgeführt wird, die in Ihrem Cluster registriert ist. Es erleichtert die Kommunikation zwischen Ihren Container-Instances und Amazon ECS.

Anmerkung

Auf Linux-Container-Instances mountet der Agent-Container Verzeichnisse der obersten Ebene wie /lib/lib64, und. /proc Dies ist für ECS-Funktionen und -Funktionen wie Amazon EBS-Volumes, awsvpc Netzwerkmodus, Amazon ECS Service Connect und FireLens für Amazon ECS erforderlich.

Jede Amazon-ECS-Container-Agenten-Version unterstützt unterschiedliche Features und bietet Fehlerbehebungen aus früheren Versionen. Wir empfehlen grundsätzlich, die neueste Version des Amazon-ECS-Container-Agenten zu verwenden, wenn dies möglich ist. Die neueste Version für Ihren Container-Agenten finden Sie unter Überprüfen des Amazon-ECS-Container-Agenten.

Der Amazon ECS-Container-Agent enthält das amazon-ecs-pause Image. Amazon ECS verwendet dieses Image für Aufgaben, die den awsvpc Netzwerkmodus verwenden.

Informationen darüber, welche Funktionen und Verbesserungen in den einzelnen Agent-Versionen enthalten sind, finden Sie unter https://github.com/aws/ amazon-ecs-agent /releases.

Wichtig

Die Mindestversion von Docker für zuverlässige Metriken ist die Docker-Version v20.10.13 und neuer, die in Amazon-ECS-optimiertem AMI 20220607 und neuer enthalten ist.

Die Amazon-ECS-Agent-Versionen 1.20.0 und neuer haben die Unterstützung für Docker-Versionen älter als 18.01.0 eingestellt.

Lebenszyklus

Wenn der Amazon ECS-Container-Agent eine EC2 Amazon-Instance in Ihrem Cluster registriert, meldet die EC2 Amazon-Instance ihren Status als ACTIVE und ihren Agent-Verbindungsstatus alsTRUE. Die Container-Instance kann Anfragen zur Ausführung von Aufgaben akzeptieren.

Wenn Sie eine Container-Instance anhalten (nicht beenden), lautet ihr Status weiterhin ACTIVE, der Agent-Verbindungsstatus wird jedoch innerhalb von wenigen Minuten in FALSE geändert. Alle Aufgaben, die gerade auf der Container-Instance ausgeführt wurden, werden gestoppt. Wenn Sie die Container-Instance erneut starten, stellt der Container-Agent erneut eine Verbindung zum Amazon-ECS-Service her und Sie können wieder Aufgaben auf der Instance ausführen.

Wichtig

Wenn Sie eine Container-Instance stoppen und starten oder einen Neustart der Instance durchführen, wird die Instance bei einigen älteren Versionen des Amazon-ECS-Container-Agenten erneut registriert, ohne dass die Registrierung der ursprünglichen Container-Instance-ID aufgehoben wird. In diesem Fall listet Amazon ECS mehr Container-Instances in Ihrem Cluster auf, als tatsächlich vorhanden sind. (Wenn Sie eine doppelte Container-Instance IDs für dieselbe EC2 Amazon-Instance-ID haben, können Sie die Duplikate, die als ACTIVE mit dem Agent-Verbindungsstatus aufgeführt sind, problemlos abmelden.) FALSE Dieses Problem ist in der aktuellen Version des Amazon-ECS-Container-Agenten behoben. Weitergehende Informationen zum Aktualisieren auf die aktuelle Version finden Sie unter Überprüfen des Amazon-ECS-Container-Agenten.

Wenn Sie den Status einer Container-Instance in DRAINING ändern, werden keine neuen Aufgaben in die Container-Instance gestellt. Wenn möglich, werden alle auf der Container-Instance ausgeführten Serviceaufgaben entfernt, damit Sie Systemaktualisierungen vornehmen können. Weitere Informationen finden Sie unter Entleeren von Amazon ECS-Container-Instances.

Wenn Sie die Registrierung einer Container-Instance aufheben oder eine Container-Instance beenden, wird ihr Status umgehend in INACTIVE geändert und die Container-Instance ist nicht mehr in der Auflistung Ihrer Container-Instances aufgeführt. Allerdings ist nach der Beendigung noch für eine Stunde eine Beschreibung der Container-Instance möglich. Nach einer Stunde ist die Instance-Beschreibung nicht mehr verfügbar.

Wichtig

Sie können die Instances manuell ausgleichen oder einen Auto-Scaling-Gruppenlebenszyklus-Hook erstellen, um den Instance-Status auf DRAINING zu setzen. Weitere Informationen zu EC2 Auto Scaling Scaling-Lifecycle-Hooks finden Sie unter Amazon Auto Scaling Scaling-Lifecycle-Hooks.

Docker-Unterstützung

Amazon ECS unterstützt die letzten beiden Hauptversionen von Docker, die auf Amazon Linux veröffentlicht wurden. Derzeit umfasst dies Docker 20.10.x und Docker 25.x.

Die mindestens erforderliche Docker-Version für Amazon ECS finden Sie in der Amazon ECS-Agentenspezifikationsdatei unter GitHub.

Wenn Sie das Amazon ECS-optimierte AMI verwenden, ist Docker vorinstalliert und für die Zusammenarbeit mit dem Amazon ECS-Container-Agenten konfiguriert. Das AMI beinhaltet eine Docker-Version, die von Amazon ECS getestet und unterstützt wird.

Anmerkung

Amazon ECS unterstützt zwar mehrere Docker-Versionen, wir empfehlen jedoch, die Docker-Version zu verwenden, die mit dem Amazon ECS-optimierten AMI geliefert wird, um die beste Kompatibilität und Unterstützung zu gewährleisten.

Amazon-ECS-optimiertes AMI

Die Linux-Varianten des Amazon-ECS-optimierten AMI verwenden das Amazon-Linux-2-AMI als Basis. Das Amazon-Linux-2-Quell-AMI für jede Variante kann durch Abfragen der Parameter-Store-API von Systems Manager abgerufen werden. Weitere Informationen finden Sie unter Abrufen von Amazon ECS-optimierten Linux-AMI-Metadaten. Wenn Sie Ihre Container-Instances mit dem neuesten für Amazon ECS optimierten Amazon-Linux-2-AMI starten, erhalten Sie die aktuelle Version des Container-Agenten. Weitere Informationen zum Starten einer Container-Instance mit dem neuesten Amazon-ECS-optimierten Amazon Linux 2-AMI finden Sie unterStarten einer Amazon ECS Linux-Container-Instance.

Zusätzliche Informationen

Auf den folgenden Seiten finden Sie weitere Informationen zu den Änderungen:

Konfigurationsparameter für das Amazon ECS-Container-Agent-Protokoll

Der Amazon-ECS-Container-Agent speichert Protokolle auf Ihren Container-Instances.

Bei Container-Agent-Version 1.36.0 und höher befinden sich die Protokolle standardmäßig unter /var/log/ecs/ecs-agent.log auf Linux-Instances und unter C:\ProgramData\Amazon\ECS\log\ecs-agent.log auf Windows-Instances.

Bei Container-Agent-Version 1.35.0 und früher befinden sich die Protokolle standardmäßig unter /var/log/ecs/ecs-agent.log.timestamp auf Linux-Instances und unter C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp auf Windows-Instances.

Standardmäßig werden die Agent-Protokolle stündlich rotiert, wobei maximal 24 Protokolle gespeichert werden.

Im Folgenden finden Sie die Konfigurationsvariablen des Container-Agenten, die verwendet werden können, um das standardmäßige Agenten-Protokollierungsverhalten zu ändern. Detaillierte Informationen zu allen verfügbaren Konfigurationsparametern finden Sie unter Konfiguration des Amazon-ECS-Container-Agenten oder in der README-Datei für Amazon ECS Agent unter GitHub.

Für Container-Agent Version 1.36.0 und höher folgt eine Beispielprotokolldatei für die Verwendung des logfmt-Formats.

level=info time=2019-12-12T23:43:29Z msg="Loading configuration" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-agent:latest" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-pause:0.1.0" module=parse.go level=info time=2019-12-12T23:43:29Z msg="Amazon ECS agent Version: 1.36.0, Commit: ca640387" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Creating root ecs cgroup: /ecs" module=init_linux.go level=info time=2019-12-12T23:43:29Z msg="Creating cgroup /ecs" module=cgroup_controller_linux.go level=info time=2019-12-12T23:43:29Z msg="Loading state!" module=statemanager.go level=info time=2019-12-12T23:43:29Z msg="Event stream ContainerChange start listening..." module=eventstream.go level=info time=2019-12-12T23:43:29Z msg="Restored cluster 'auto-robc'" module=agent.go level=info time=2019-12-12T23:43:29Z msg="Restored from checkpoint file. I am running as 'arn:aws:ecs:us-west-2:0123456789:container-instance/auto-robc/3330a8a91d15464ea30662d5840164cd' in cluster 'auto-robc'" module=agent.go

Im Folgenden finden Sie eine Beispielprotokolldatei für die Verwendung des JSON-Formats.

{"time": "2019-11-07T22:52:02Z", "level": "info", "msg": "Starting Amazon Elastic Container Service Agent", "module": "engine.go"}

Für Container-Agent-Versionen 1.35.0 und früher gilt das folgende Format der Protokolldatei.

2016-08-15T15:54:41Z [INFO] Starting Agent: Amazon ECS Agent - v1.12.0 (895f3c1) 2016-08-15T15:54:41Z [INFO] Loading configuration 2016-08-15T15:54:41Z [WARN] Invalid value for task cleanup duration, will be overridden to 3h0m0s, parsed value 0, minimum threshold 1m0s 2016-08-15T15:54:41Z [INFO] Checkpointing is enabled. Attempting to load state 2016-08-15T15:54:41Z [INFO] Loading state! module="statemanager" 2016-08-15T15:54:41Z [INFO] Detected Docker versions [1.17 1.18 1.19 1.20 1.21 1.22] 2016-08-15T15:54:41Z [INFO] Registering Instance with ECS 2016-08-15T15:54:41Z [INFO] Registered! module="api client"