Comment puis-je configurer un proxy HTTP pour Docker et l’agent de conteneur Amazon ECS dans Amazon Linux 2 ou Amazon Linux 2023 ?

Lecture de 4 minute(s)
0

Je souhaite configurer un proxy HTTP pour Docker ainsi que l’agent de conteneur Amazon Elastic Container Service (Amazon ECS) dans Amazon Linux 2 ou Amazon Linux 2023.

Résolution

Pour configurer un proxy HTTP pour Docker ainsi que l’agent de conteneur Amazon ECS dans Amazon Linux 2 ou Amazon Linux 2023, suivez les étapes suivantes.

Remarque : vous pouvez également définir vos variables d’environnement lors du lancement à l’aide des données utilisateur d’Amazon Elastic Compute Cloud (Amazon EC2) au moyen d’un script de données utilisateur. Pour un script de données utilisateur qui fonctionne sur toutes les versions de Linux, consultez la section Configuration du proxy HTTP pour les instances de conteneurs Linux.

Si vous utilisez Amazon Linux, consultez Comment puis-je configurer un proxy HTTP pour Docker et l’agent de conteneur Amazon ECS dans Amazon Linux ?

Important : l’AMI Amazon Linux (également appelée Amazon Linux 1) a atteint sa fin de vie le 31 décembre 2023. Il est recommandé de mettre à niveau vos applications vers Amazon Linux 2023.

Stockez l’adresse IP et le port du serveur proxy

Pour stocker l’adresse IP et le port du serveur proxy, suivez les étapes suivantes :

  1. Connectez-vous à l’instance Amazon EC2 avec SSH.
  2. En tant qu’utilisateur racine, stockez l’adresse IP et le port du serveur proxy pour une utilisation ultérieure dans les variables d’environnement. Par exemple :
    export PROXY_SERVER_IP=x.x.x.x
    export PROXY_PORT=1234

Configurer un proxy HTTP pour le démon Docker

Pour configurer un proxy HTTP pour le démon Docker, suivez les étapes suivantes :

  1. Exécutez les commandes suivantes avec les autorisations sudo :

    mkdir -p /etc/systemd/system/docker.service.d
    cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf
    [Service]
    Environment="HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT"
    Environment="HTTPS_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT"
    Environment="NO_PROXY=169.254.169.254,169.254.170.2"
    EOF

    Remarque : HTTP_PROXY est l’adresse de socket (IPaddress:Port) du proxy HTTP utilisé pour connecter l’agent de conteneur ECS à Internet.

    Si la variable HTTP_PROXY est définie, vous devez définir la variable NO_PROXY sur 169.254.169.254,169.254.170.2. Ce paramètre filtre les métadonnées de l’instance Amazon EC2, les rôles AWS Identity and Access Management (IAM) pour les tâches, ainsi que le trafic du démon Docker provenant du proxy.

  2. Pour recharger les unités en raison de la modification de docker.service sur le disque, exécutez la commande suivante :

    systemctl daemon-reload
  3. Pour redémarrer Docker, exécutez la commande suivante :

    systemctl restart docker.service

    Remarque : la commande précédente arrête tous les conteneurs en cours d’exécution, y compris l’agent ecs-agent sur l’instance de conteneur ECS.

  4. Pour vérifier les paramètres du proxy HTTP pour Docker, exécutez la commande suivante :

    docker info | grep -i proxy

    Remarque : la sortie de la commande affiche le proxy HTTP et le proxy HTTPS.

Configurer un proxy HTTP pour l’agent de conteneur

Pour configurer un proxy HTTP pour le démon Docker, suivez les étapes suivantes :

  1. Dans votre fichier /etc/ecs/ecs.config existant, incluez la configuration du proxy à l’aide des paramètres de configuration de l’agent HTTP_PROXY and NO_PROXY. Par exemple :

    cat <<EOF > /etc/ecs/ecs.config
    HTTP_PROXY=http://$PROXY_SERVER_IP:$PROXY_PORT
    NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock
    EOF
  2. Pour appliquer les configurations HTTP de l’étape 1 à l’ecs-agent, exécutez la commande suivante :

    systemctl restart ecs

    Remarque : si vous utilisez une Amazon Machine Image (AMI) optimisée pour Amazon ECS, l’agent de conteneur s’exécute par défaut via ecs-init.

  3. Pour vérifier les paramètres du proxy HTTP pour Docker et l’agent de conteneur, exécutez la commande suivante :

    docker inspect ecs-agent | grep -i proxy

    Remarque : les paramètres du proxy apparaissent dans la sortie de la commande.

Configurer un proxy HTTP pour ecs-init

Pour configurer un proxy HTTP pour ecs-init, procédez comme suit :

  1. Exécutez les commandes suivantes avec les autorisations sudo :

    mkdir -p /etc/systemd/system/ecs.service.d
    cat <<EOF > /etc/systemd/system/ecs.service.d/http-proxy.conf
    [Service]
    Environment="HTTPS_PROXY=$PROXY_SERVER_IP:$PROXY_PORT/"
    Environment="NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock"
    EOF
  2. Pour recharger les unités en raison de la modification de docker.service sur le disque, exécutez la commande suivante :

    systemctl daemon-reload
  3. Pour appliquer les configurations HTTP de l’étape 1 à l’ecs-agent, exécutez la commande suivante :

    systemctl restart ecs

    Remarque : la configuration de Docker et de l’agent de conteneur affecte uniquement l’instance en cours d’exécution. Pour mettre à jour toutes les instances d’un cluster, créez une configuration de lancement, puis utilisez un groupe Auto Scaling pour lancer de nouvelles instances.

Informations connexes

Mise à jour de l’agent de conteneur Amazon ECS

Démarrage d’instances de conteneurs avec les données utilisateur Amazon EC2

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 7 mois