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

Lecture de 4 minute(s)
0

Je souhaite configurer un proxy HTTP pour Docker et l'agent de conteneur Amazon Elastic Container Service (Amazon ECS) dans Amazon Linux.

Brève description

Procédez comme suit :

  • Stockez l'adresse IP et le port du serveur proxy.
  • Configurez un proxy HTTP pour le démon Docker.
  • Configurez un proxy HTTP pour l'agent de conteneur Amazon ECS.
  • Configurez un proxy HTTP pour ecs-init. Pour en savoir plus, consultez la page amazon-ecs-init sur le site Web de GitHub.

Remarque : Vous pouvez également utiliser les données utilisateur Amazon Elastic Compute Cloud (Amazon EC2) qui comportent un script de données utilisateur pour définir vos variables d'environnement lors du lancement. Pour un script de données utilisateur qui fonctionne sur toutes les versions de Linux, consultez la section Utilisation d'un proxy HTTP pour les instances de conteneur Amazon ECS Linux.

Si vous utilisez Amazon Linux 2 ou Amazon Linux 2023, consultez la section Comment puis-je configurer un proxy HTTP pour Docker et l'agent de conteneur Amazon ECS dans Amazon Linux 2 ou Amazon Linux 2023 ?
Remarque : Amazon Linux 1 Amazon Machine Image (AMI) a atteint sa fin de vie. Il est recommandé de migrer vers les AMI Amazon Linux 2 ou Amazon Linux 2023. Pour plus d'informations, consultez les FAQ sur les AMI Amazon Linux.

Résolution

Stocker l'adresse IP et le port du serveur proxy

Procédez comme suit :

  1. Utilisez SSH pour vous connecter à l'instance Amazon EC2.
  2. En tant qu'utilisateur racine, notez l'adresse IP et le port du serveur proxy à utiliser ultérieurement dans les variables d'environnement :
    export PROXY_SERVER_IP=x.x.x.xexport PROXY_PORT=1234

Configurer un proxy HTTP pour le démon Docker

Procédez comme suit :

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

    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

    Remarque : HTTP_PROXY est l'adresse de socket (IPaddress:Port) du proxy HTTP utilisé pour connecter l'agent de conteneur Amazon 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 d'instance Amazon EC2, les rôles AWS Identity and Access Management (IAM) pour les tâches et le trafic du démon Docker provenant du proxy.

  2. Pour redémarrer Docker, exécutez la commande suivante :

    service docker restart

    Remarque : La commande précédente arrête tous les conteneurs en cours d'exécution. Par exemple, elle arrête ecs-agent sur l'instance de conteneur.

  3. 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 commande affiche le proxy HTTP et le proxy HTTPS.

Configurer un proxy HTTP pour l'agent de conteneur Amazon ECS

Procédez comme suit :

  1. Dans votre fichier /etc/ecs/ecs.config, ajoutez les paramètres de configuration des agents HTTP_PROXY et NO_PROXY.
    Exemple :

    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. Pour appliquer les configurations du proxy HTTP à ecs-agent, exécutez la commande suivante :

    sudo start ecs

    Remarque : Si vous utilisez une AMI optimisée pour Amazon ECS, l'agent de conteneur Amazon ECS 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 Amazon ECS, exécutez la commande suivante :

    docker inspect ecs-agent | grep -i proxy

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

Configurer un proxy HTTP pour ecs-init

Exécutez les commandes suivantes avec les autorisations sudo :

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

Remarque : La configuration de Docker et de l'agent de conteneur Amazon ECS affecte uniquement l'instance actuelle. Pour mettre à jour toutes les instances d'un cluster, créez une configuration de lancement avec les données utilisateur et utilisez un groupe Auto Scaling pour lancer de nouvelles instances.

Informations connexes

Mise à jour de l'agent de conteneur Amazon ECS

Amorçage d'instances de conteneur pour transmettre des données

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