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

So aktualisieren Sie manuell den Amazon-ECS-Container-Agenten (für nicht Amazon-ECS-optimierte AMIs)
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 Agenten-Umgebungsvariablen optional in Amazon S3 speichern (diese können in Ihren Container-Instances zum Startzeitpunkt mithilfe von Amazon EC2-Benutzerdaten heruntergeladen werden). Dies empfiehlt sich für sensible Daten, wie beispielsweise Authentifizierungs-Anmeldeinformationen für private Repositorys. Weitere Informationen finden Sie unter Speichern der Container-Instance-Konfiguration in Amazon S3 und Private Registrierungsauthentifizierung für Aufgaben.

  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. Weitere Informationen finden Sie unter Container automatisch starten und Neustartrichtlinien in der Docker-Dokumentation. Das Amazon-ECS-optimierte AMI verwendet zu diesem Zweck das ecs-init RPM, und Sie können den Quellcode für dieses RPM auf anzeigen 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

    SELinux-fähige Betriebssysteme erfordern die Option --privileged in Ihrem Befehl docker run. Für SELinux-fähige Container-Instances empfiehlt es sich, die Option :Z zu den /log und /data-Volumen-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 Amazon-ECS-Agenten auf einer SELinux-fähigen Container-Instance haben, dann 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.