Direkt zum Inhalt

Wie richte ich einen HTTP-Proxy für Docker und den Amazon ECS-Container-Agenten in Amazon Linux ein?

Lesedauer: 3 Minute
0

Ich möchte einen HTTP-Proxy für Docker und den Amazon Elastic Container Service (Amazon ECS)-Container-Agenten in Amazon Linux einrichten.

Kurzbeschreibung

Ergreife die folgenden Maßnahmen:

  • Speichere die IP-Adresse und den Proxy-Server-Port.
  • Richte einen HTTP-Proxy für den Docker-Daemon ein.
  • Richte einen HTTP-Proxy für den Amazon ECS-Container-Agenten ein.
  • Richte einen HTTP-Proxy für ecs-init ein. Weitere Informationen findest du unter amazon-ecs-init auf der GitHub-Website.

Hinweis: Du kannst auch Amazon Elastic Compute Cloud (Amazon EC2)-Benutzerdaten verwenden, die über ein Benutzerdatenskript verfügen, um deine Umgebungsvariablen beim Start festzulegen. Ein Benutzerdatenskript, das auf allen Linux-Versionen funktioniert, findest du unter HTTP-Proxy für Amazon ECS-Linux-Container-Instances verwenden.

Wenn du Amazon Linux 2 oder Amazon Linux 2023 verwendest, findest du weitere Informationen unter Wie richte ich einen HTTP-Proxy für Docker und den Amazon ECS-Container-Agenten in Amazon Linux 2 oder Amazon Linux 2023 ein?
Hinweis: Amazon Linux 1 Amazon Machine Image (AMI) hat das Ende seiner Lebensdauer erreicht. Es ist eine bewährte Methode, auf Amazon Linux 2- oder Amazon Linux 2023-AMIs zu migrieren. Weitere Informationen findest du unter Häufig gestellte Fragen zu Amazon Linux AMI.

Lösung

IP-Adresse und Proxy-Server-Port speichern

Führe die folgenden Schritte aus:

  1. Verwende SSH, um eine Verbindung zu der Amazon EC2-Instance herzustellen.
  2. Notiere dir als Root-Benutzer die IP-Adresse und den Port des Proxy-Servers, die du später in den Umgebungsvariablen verwenden möchtest:
    export PROXY_SERVER_IP=x.x.x.xexport PROXY_PORT=1234

HTTP-Proxy für den Docker-Daemon einrichten

Führe die folgenden Schritte aus:

  1. Führe die folgenden Befehle mit sudo-Berechtigungen aus:

    cat <<EOF >> /etc/sysconfig/docker
    export HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT
    export HTTPS_PROXY=https://$PROXY_SERVER_IP:$PROXY_PORT
    export NO_PROXY=169.254.169.254,169.254.170.2  
    EOF

    Hinweis: HTTP_PROXY ist die Socket-Adresse (IPaddress:Port) des HTTP-Proxys, der verwendet wird, um den Amazon ECS-Container-Agenten mit dem Internet zu verbinden.

    Wenn die Variable HTTP_PROXY gesetzt ist, musst du die Variable NO_PROXY auf 169.254.169.254,169.254.170.2 setzen. Diese Einstellung filtert Amazon EC2-Instance-Metadaten, AWS Identity and Access Management (IAM)-Rollen für Aufgaben und den Docker-Daemon-Datenverkehr vom Proxy.

  2. Führe den folgenden Befehl aus, um Docker neu zu starten:

    service docker restart

    Hinweis: Der vorangehende Befehl stoppt alle laufenden Container. Beispielsweise stoppt es den ecs-agent auf der Container-Instance.

  3. Führe den folgenden Befehl aus, um die HTTP-Proxy-Einstellungen für Docker zu überprüfen:

    docker info | grep -i proxy

    Hinweis: Die Befehlsausgabe zeigt den HTTP-Proxy und den HTTPS-Proxy.

HTTP-Proxy für den Amazon ECS-Container-Agenten einrichten

Führe die folgenden Schritte aus:

  1. Füg in deiner /etc/ecs/ecs.config-Datei die Agenten-Konfigurationsparameter HTTP_PROXY und NO_PROXY hinzu.
    Beispiel:

    cat <<EOF >> /etc/ecs/ecs.config
    ECS_CLUSTER=your-cluster-name
    HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT
    NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
    EOF
  2. Führe den folgenden Befehl aus, um die HTTP-Proxy-Konfigurationen auf den ecs-agent anzuwenden:

    sudo start ecs

    Hinweis: Wenn du ein für Amazon ECS optimiertes AMI verwendest, läuft der Amazon ECS-Container-Agent standardmäßig über ecs-init.

  3. Führe den folgenden Befehl aus, um die HTTP-Proxy-Einstellungen für Docker und den Amazon ECS-Container-Agenten zu überprüfen:

    docker inspect ecs-agent | grep -i proxy

Hinweis: Die Proxy-Einstellungen werden in der Befehlsausgabe angezeigt.

HTTP-Proxy für ecs-init einrichten

Führe die folgenden Befehle mit sudo-Berechtigungen aus:

cat <<EOF > /etc/init/ecs.override
env HTTP_PROXY=$PROXY_SERVER_IP:$PROXY_PORT
env NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
EOF

Hinweis: Die Konfiguration sowohl für Docker als auch für den Amazon ECS-Container-Agenten wirkt sich nur auf die aktuelle Instance aus. Um alle Instances in einem Cluster zu aktualisieren, erstelle eine Startkonfiguration mit Benutzerdaten und verwende eine Auto-Scaling-Gruppe, um neue Instances zu starten.

Ähnliche Informationen

Amazon ECS-Container-Agenten aktualisieren

Bootstrapping von Container-Instances zur Weitergabe von Daten