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

Installieren des Amazon-ECS-Container-Agenten

Wenn Ihre Container-Instance nicht mit einem Amazon-ECS-optimierten AMI gestartet wurde, können Sie den Amazon-ECS-Containeragenten manuell mit einer der folgenden Vorgehensweisen installieren. Der Amazon-ECS-Container-Agent ist in Amazon-ECS-optimierten AMIs enthalten und erfordert keine Installation.

Anmerkung

Die systemd-Einheiten für die Amazon ECS- und Docker-Services enthalten die Anweisung, auf die Beendigung von cloud-init zu warten, bevor beide Services gestartet werden. Der cloud-init-Prozess gilt erst als abgeschlossen, wenn die Ausführung der Amazon EC2-Benutzerdaten beendet wurde. Daher kann das Starten von Amazon-ECS oder Docker über Amazon-EC2-Benutzerdaten zu einer Systemblockade führen. Um den Container-Agent mit Amazon EC2-Benutzerdaten zu starten, können Sie systemctl enable --now --no-block ecs.service verwenden.

So installieren Sie den Amazon-ECS-Container-Agent auf einer Amazon Linux 2-EC2-Instance

Um den Amazon-ECS-Containeragenten auf einer Amazon Linux 2-EC2-Instance mit dem Befehl amazon-linux-extras zu installieren, gehen Sie wie folgt vor.

So installieren Sie den Amazon-ECS-Container-Agent auf einer Amazon Linux 2-EC2-Instance
  1. Starten Sie eine Amazon Linux 2-EC2-Instance mit einer IAM-Rolle, die den Zugriff auf Amazon ECS erlaubt. Weitere Informationen finden Sie unter IAM-Rolle für Amazon-ECS-Container-Instance.

  2. Verbinden Sie sich mit der Instance.

  3. Deaktivieren Sie das zusätzliche Amazon Linux-Repository docker. Das zusätzliche ecs-Amazon Linux-Repository ist mit seiner eigenen Version von Docker versehen, daher muss das Extra-docker deaktiviert werden, um künftige Konflikte zu vermeiden. Dadurch wird sichergestellt, dass Sie immer jene Docker-Version verwenden, die von Amazon ECS für eine bestimmte Version des Containeragenten bestimmt ist.

    [ec2-user ~]$ sudo amazon-linux-extras disable docker
  4. Installieren und aktivieren Sie das zusätzliche ecs-Amazon Linux-Repository.

    [ec2-user ~]$ sudo amazon-linux-extras install -y ecs; sudo systemctl enable --now ecs
  5. (Optional) Dank der Agenten-Introspektions-API können Sie überprüfen, ob der Agent ausgeführt wird und Sie können Informationen über Ihre neue Container-Instance einholen. Weitere Informationen finden Sie unter Amazon-ECS-Container-Introspektion.

    [ec2-user ~]$ curl -s http://localhost:51678/v1/metadata | python -mjson.tool
    Anmerkung

    Wenn Sie keine Antwort erhalten, stellen Sie sicher, dass Sie die IAM-Rolle der Amazon-ECS-Container-Instance beim Starten der Instance verknüpft haben. Weitere Informationen finden Sie unter IAM-Rolle für Amazon-ECS-Container-Instance.

Installieren des Amazon-ECS-Container-Agenten auf einer Amazon-Linux-EC2-Instance

Gehen Sie wie folgt vor, um den Amazon-ECS-Container-Agenten auf einer Amazon-Linux-EC2-Instance mithilfe des Amazon-YUM-Repositorys zu installieren.

So installieren Sie den Amazon-ECS-Container-Agenten auf einer Amazon-Linux-EC2-Instance
  1. Starten Sie eine Amazon Linux EC2-Instance mit einer IAM-Rolle, die den Zugriff auf Amazon ECS ermöglicht. Weitere Informationen finden Sie unter IAM-Rolle für Amazon-ECS-Container-Instance.

  2. Verbinden Sie sich mit der Instance.

  3. Installieren Sie das Paket ecs-init. Weitere Informationen zu ecs-initfinden Sie im Quellcode auf GitHub.

    [ec2-user ~]$ sudo yum install -y ecs-init
  4. Starten Sie den Docker-Daemon.

    [ec2-user ~]$ sudo service docker start

    Ausgabe:

    Starting cgconfig service:                                 [  OK  ]
    Starting docker:	                                   [  OK  ]
  5. Starten Sie den ecs-init Upstart-Auftrag.

    [ec2-user ~]$ sudo service ecs start

    Ausgabe:

    ecs start/running, process 2804
  6. (Optional) Dank der Agenten-Introspektions-API können Sie überprüfen, ob der Agent ausgeführt wird und Sie können Informationen über Ihre neue Container-Instance einholen. Weitere Informationen finden Sie unter Amazon-ECS-Container-Introspektion.

    [ec2-user ~]$ curl -s http://localhost:51678/v1/metadata | python -mjson.tool

So installieren Sie den Amazon-ECS-Container-Agent auf einer Nicht–Amazon Linux-EC2-Instance

Um den Amazon-ECS-Container-Agent auf einer Nicht-Amazon Linux-EC2-Instance zu installieren, können Sie den Agent von einem der regionalen S3-Buckets herunterladen und installieren.

Anmerkung

Wenn Sie ein Nicht-Amazon-Linux-AMI verwenden, erfordert Ihre Amazon-EC2-Instance cgroupfs-Support für die cgroup-Treiber, damit der Amazon-ECS-Agent Ressourcenlimits auf Aufgabenebene unterstützt. Weitere Informationen finden Sie unter Amazon-ECS-Agent auf GitHub.

Die neuesten Dateien des Container-Agents von Amazon ECS nach Region für jede Systemarchitektur sind unten als Referenz aufgeführt.

Region Name der Region Amazon-ECS-Init-Deb-Dateien Amazon-ECS-Init-rpm-Dateien
us-east-2 USA Ost (Ohio)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

us-east-1 USA Ost (Nord-Virginia)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

us-west-1 USA West (Nordkalifornien)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

us-west-2 USA West (Oregon)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-east-1 Asien-Pazifik (Hongkong)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-northeast-1 Asien-Pazifik (Tokio)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-northeast-2 Asien-Pazifik (Seoul)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-south-1 Asien-Pazifik (Mumbai)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-southeast-1 Asien-Pazifik (Singapur)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ap-southeast-2 Asien-Pazifik (Sydney)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

ca-central-1 Kanada (Zentral)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

eu-central-1 Europa (Frankfurt)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

eu-west-1 Europa (Irland)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

eu-west-2 Europa (London)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

eu-west-3 Europa (Paris)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

sa-east-1 Südamerika (São Paulo)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64

Amazon ECS init aarch64 (aarch64)

us-gov-east-1 AWS GovCloud (USA-Ost)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

us-gov-west-1 AWS GovCloud (USA West)

Amazon ECS init amd64 (amd64)

Amazon ECS init arm64 (arm64)

Amazon ECS init x86_64 (x86_64)

Amazon ECS init aarch64 (aarch64)

So installieren Sie den Amazon-ECS-Container-Agent auf einer Amazon-EC2-Instance mit einem Nicht-Amazon Linux-AMI
  1. Starten Sie eine Amazon-EC2-Instance mit einer IAM-Rolle, die den Zugriff auf Amazon ECS erlaubt. Weitere Informationen finden Sie unter IAM-Rolle für Amazon-ECS-Container-Instance.

  2. Verbinden Sie sich mit der Instance.

  3. Installieren Sie die neueste Docker-Version auf Ihrer Instance.

  4. Prüfen Sie Ihre Docker-Version, um sicherzustellen, dass Ihr System den Anforderungen der Mindestversion entspricht.

    Anmerkung

    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 1.9.0 eingestellt.

    docker --version
  5. Laden Sie die entsprechende Amazon-ECS-Agent-Datei für Ihr Betriebssystem und Ihre Systemarchitektur herunter und installieren Sie sie.

    Für deb-Architekturen:

    ubuntu:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb ubuntu:~$ sudo dpkg -i amazon-ecs-init-latest.amd64.deb

    Für rpm-Architekturen:

    fedora:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm fedora:~$ sudo yum localinstall -y amazon-ecs-init-latest.x86_64.rpm
  6. Bearbeiten Sie die /lib/systemd/system/ecs.service Datei und fügen Sie die folgende Zeile am Ende des [Unit] Abschnitts hinzu.

    After=cloud-final.service
  7. (Optional) Um die Instance bei einem anderen Cluster als dem default-Cluster anzumelden, bearbeiten Sie die /etc/ecs/ecs.config-Datei und fügen Sie den folgenden Inhalt hinzu. Das folgende Beispiel gibt den MyCluster-Cluster an.

    ECS_CLUSTER=MyCluster

    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.

  8. Starten Sie den Service ecs.

    ubuntu:~$ sudo systemctl start ecs

Ausführen des Amazon-ECS-Agenten mit dem Host-Netzwerkmodus

Beim Ausführen des Amazon-ECS-Container-Agenten erstellt ecs-init den Container-Agent-Container mit dem Netzwerkmodus host. Dies ist der einzige unterstützte Netzwerkmodus für den Container-Agent-Container.

Dies ermöglicht Ihnen, den Zugriff auf den Amazon-EC2-Instance-Metadaten-Service-Endpunkt (http://169.254.169.254) für die vom Container-Agenten gestarteten Container zu blockieren. Auf diese Weise wird sichergestellt, dass Container vom Container-Instance-Profil aus keinen Zugriff auf Anmeldeinformationen der IAM-Rolle haben, und erzwungen, dass die Aufgabe nur die Anmeldeinformationen der IAM-Aufgabenrolle verwendet. Weitere Informationen finden Sie unter IAM-Rolle für Aufgabe.

Dies sorgt auch dafür, dass der Container-Agent nicht um Verbindungen und Netzwerkdatenverkehr auf der docker0-Brücke konkurrieren muss.