Manuelles Aktualisieren des ECS Amazon-Container-Agenten (für ECS AMIs Nicht-Amazon-Optimized) - 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 ECS Amazon-Container-Agenten (für ECS AMIs Nicht-Amazon-Optimized)

Sie müssen den ECS Amazon-Container-Agenten möglicherweise gelegentlich aktualisieren, um Fehlerbehebungen und neue Features darin aufzunehmen. Durch die Aktualisierung des ECS Amazon-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 an überSSH.

  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 ECS Amazon-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 ECS Amazon-Container-Agenten unter existieren/etc/ecs/ecs.config.

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

    Anmerkung

    Sie können Ihre Agenten-Umgebungsvariablen optional in Amazon S3 speichern (diese können in Ihren Container-Instances zum Startzeitpunkt mithilfe von EC2 Amazon-Benutzerdaten heruntergeladen werden). Dies empfiehlt sich für sensible Daten, wie beispielsweise Authentifizierungs-Anmeldeinformationen für private Repositorys. Weitere Informationen erhalten Sie unter Speichern der ECS Amazon-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 ECS Amazon-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 ECS Amazon-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 ECS Amazon-Optimized AMI verwendet das ecs-init RPM für diesen Zweck, und Sie können den Quellcode dafür RPM auf GitHub einsehen.

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

    Wichtig

    Betriebssysteme mit SELinux aktivierter Option benötigen die --privileged Option in Ihrem docker run Befehl. 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. Sollten Sie Schwierigkeiten bei der Ausführung des ECS Amazon-Agenten auf einer Container-Instance haben, dann SELinux verfahren Sie wie folgt:

    • 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.