Manuelles Aktualisieren des Amazon ECS-Container-Agenten (für nicht für Amazon AMIs ECS optimierte Systeme) - 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.

Manuelles Aktualisieren des Amazon ECS-Container-Agenten (für nicht für Amazon AMIs ECS optimierte Systeme)

Gelegentlich müssen Sie möglicherweise den Amazon ECS-Container-Agenten aktualisieren, um Fehlerkorrekturen und neue Funktionen zu erhalten. Durch die Aktualisierung des Amazon-ECS-Container-Agenten werden laufende Aufgaben oder Services auf der Container-Instance nicht unterbrochen.

Anmerkung

Agent-Updates gelten nicht für Windows-Container-Instances. Wir empfehlen, dass Sie die neuen Container-Instances starten, um die Agent-Version in Ihren Windows-Clustern zu aktualisieren.

  1. Melden Sie sich bei Ihrer Container-Instance über SSH an.

  2. Überprüfen Sie, ob ihr Agent die Umgebungsvariable ECS_DATADIR nutzt, um seinen Status zu speichern.

    ubuntu:~$ docker inspect ecs-agent | grep ECS_DATADIR

    Ausgabe:

    "ECS_DATADIR=/data",
    Wichtig

    Wenn der vorherige Befehl die Umgebungsvariable ECS_DATADIR nicht zurücksendet, müssen Sie sämtliche Aufgaben, die auf dieser Container-Instance ausgeführt werden, abbrechen, bevor Sie Ihren Agenten aktualisieren. Neuere Agenten mit der Umgebungsvariable ECS_DATADIR speichern ihren Status und Sie können sie aktualisieren, während Aufgaben problemlos ausgeführt werden.

  3. Halten Sie den Amazon-ECS-Container-Agent an.

    ubuntu:~$ docker stop ecs-agent
  4. Löschen Sie den Agent-Container.

    ubuntu:~$ docker rm ecs-agent
  5. Stellen Sie sicher, dass das /etc/ecs-Verzeichnis und die Konfigurationsdatei für den Amazon-ECS-Container-Agenten unter /etc/ecs/ecs.config vorhanden sind.

    ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
  6. Bearbeiten Sie die Datei /etc/ecs/ecs.config und stellen Sie sicher, dass sie mindestens die folgenden Variablendeklarationen enthält. Wenn Sie nicht möchten, dass Ihre Container-Instance im Default-Cluster registriert wird, legen Sie Ihren Cluster-Namen als einen Wert für ECS_CLUSTER fest.

    ECS_DATADIR=/data ECS_ENABLE_TASK_IAM_ROLE=true ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true ECS_LOGFILE=/log/ecs-agent.log ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"] ECS_LOGLEVEL=info ECS_CLUSTER=default

    Weitere Informationen zu diesen und anderen Agenten-Laufzeitoptionen erhalten Sie unterKonfiguration des Amazon-ECS-Container-Agenten.

    Anmerkung

    Sie können Ihre Agentenumgebungsvariablen optional in Amazon S3 speichern (die beim Start mithilfe von EC2 Amazon-Benutzerdaten auf Ihre Container-Instances heruntergeladen werden können). Dies empfiehlt sich für sensible Daten, wie beispielsweise Authentifizierungs-Anmeldeinformationen für private Repositorys. Weitere Informationen erhalten Sie unter Speichern der Amazon ECS-Container-Instance-Konfiguration in Amazon S3 und Verwenden von AWS Nicht-Container-Images in Amazon ECS.

  7. Rufen Sie das neueste Image für den Amazon-ECS-Container-Agent von Amazon-Elastic-Container-Registry-Public ab.

    ubuntu:~$ docker pull public.ecr.aws/ecs/amazon-ecs-agent:latest

    Ausgabe:

    Pulling repository amazon/amazon-ecs-agent a5a56a5e13dc: Download complete 511136ea3c5a: Download complete 9950b5d678a1: Download complete c48ddcf21b63: Download complete Status: Image is up to date for amazon/amazon-ecs-agent:latest
  8. Führen Sie den neuesten Amazon-ECS-Container-Agenten in Ihrer Container-Instance aus.

    Anmerkung

    Verwenden Sie Docker-Neustartrichtlinien oder einen Prozessmanager (wie upstart oder systemd), um den Container-Agenten als Service oder Daemon zu behandeln und sicherzustellen, dass dieser nach dem Beenden wieder gestartet wird. Das Amazon ECS-optimierte AMI verwendet das ecs-init RPM für diesen Zweck, und Sie können den Quellcode für dieses RPM unter einsehen. GitHub

    Das folgende Beispiel des Agenten-Ausführungsbefehls ist auf mehrere Zeilen verteilt, um die Optionen deutlicher darzustellen. Weitere Informationen zu diesen und anderen Agenten-Laufzeitoptionen erhalten Sie unterKonfiguration des Amazon-ECS-Container-Agenten.

    Wichtig

    Für Betriebssysteme mit SELinux aktivierter Option ist die --privileged Option in Ihrem docker run Befehl erforderlich. Darüber hinaus empfehlen wir für Container-Instances mit SELinux aktivierter Option, die :Z Option zu den Volume Mounts /log und den /data Volume Mounts hinzuzufügen. Die Host-Mounts für diese Volumen müssen jedoch vorhanden sein, bevor Sie den Befehl ausführen. Andernfalls erhalten Sie die Fehlermeldung no such file or directory. Gehen Sie wie folgt vor, wenn Sie Schwierigkeiten haben, den Amazon ECS-Agenten auf einer SELinux -fähigen Container-Instance auszuführen:

    • Erstellen Sie auf Ihrer Container-Instance Mounting-Punkte für Hoste-Volume.

      ubuntu:~$ sudo mkdir -p /var/log/ecs /var/lib/ecs/data
    • Fügen Sie die Option --privileged zum unteren Befehl docker run hinzu.

    • Fügen Sie die Option :Z zu den Container-Volume-Mounts /log und /data (z. B. --volume=/var/log/ecs/:/log:Z) zum unteren Befehl docker run hinzu.

    ubuntu:~$ sudo docker run --name ecs-agent \ --detach=true \ --restart=on-failure:10 \ --volume=/var/run:/var/run \ --volume=/var/log/ecs/:/log \ --volume=/var/lib/ecs/data:/data \ --volume=/etc/ecs:/etc/ecs \ --volume=/etc/ecs:/etc/ecs/pki \ --net=host \ --env-file=/etc/ecs/ecs.config \ amazon/amazon-ecs-agent:latest
    Anmerkung

    Wenn Sie die Meldung Error response from daemon: Cannot start container erhalten, können Sie den fehlerhaften Container mit dem Befehl sudo docker rm ecs-agent löschen und den Agenten neu starten.