Salta al contenuto

Come posso configurare un proxy HTTP per Docker e l'agente del container Amazon ECS in Amazon Linux?

4 minuti di lettura
0

Desidero configurare un proxy HTTP per Docker e l'agente del container Amazon Elastic Container Service (Amazon ECS) in Amazon Linux.

Breve descrizione

Esegui queste azioni:

  • Memorizza l'indirizzo IP e la porta del server proxy.
  • Configura un proxy HTTP per il daemon Docker.
  • Configura un proxy HTTP per l'agente del container Amazon ECS.
  • Configura un proxy HTTP per ecs-init. Per ulteriori informazioni, consulta amazon-ecs-init sul sito web GitHub.

Nota: per impostare le variabili di ambiente durante l'avvio, puoi anche utilizzare i dati utente di Amazon Elastic Compute Cloud (Amazon EC2) con uno script. Per uno script di dati utente che funziona su tutte le versioni di Linux, consulta Utilizzo di un proxy HTTP per le istanze di container Amazon ECS Linux.

Se utilizzi Amazon Linux 2 o Amazon Linux 2023, consulta How do I set up an HTTP proxy for Docker and the Amazon ECS container agent in Amazon Linux 2 or Amazon Linux 2023? (Come posso configurare un proxy HTTP per Docker e per l'agente del container Amazon ECS in Amazon Linux 2 o Amazon Linux 2023?)
Nota: L'Amazon Machine Image (AMI) Amazon Linux 1 ha raggiunto la fine del suo ciclo di vita. È consigliabile eseguire la migrazione alle AMI Amazon Linux 2 o Amazon Linux 2023. Per ulteriori informazioni, consulta Domande frequenti sulle AMI Amazon Linux.

Risoluzione

Memorizza l'indirizzo IP e la porta del server proxy

Completa i seguenti passaggi:

  1. Utilizza SSH per connetterti all'istanza Amazon EC2.
  2. Come utente root, annota l'indirizzo IP e la porta del server proxy da utilizzare in seguito nelle variabili di ambiente:
    export PROXY_SERVER_IP=x.x.x.xexport PROXY_PORT=1234

Configura un proxy HTTP per il daemon Docker

Completa i seguenti passaggi:

  1. Esegui questi comandi con autorizzazioni 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

    Nota: HTTP_PROXY è l'indirizzo del socket (IPaddress:Port) del proxy HTTP utilizzato per connettere l'agente del container Amazon ECS a Internet.

    Se la variabile HTTP_PROXY è impostata, devi impostare la variabile NO_PROXY su 169.254.169.254,169.254.170.2. Questa impostazione filtra i metadati dell'istanza Amazon EC2, i ruoli AWS Identity and Access Management (AWS IAM) per le attività e il traffico del daemon Docker proveniente dal proxy.

  2. Per riavviare Docker, esegui questo comando:

    service docker restart

    Nota: il comando precedente interrompe tutti i container in esecuzione. Ad esempio, arresta ecs-agent sull'istanza di container.

  3. Per verificare le impostazioni del proxy HTTP per Docker, esegui questo comando:

    docker info | grep -i proxy

    Nota: l'output del comando mostra il proxy HTTP e il proxy HTTPS.

Configura un proxy HTTP per l'agente del container Amazon ECS

Completa i seguenti passaggi:

  1. Nel file /etc/ecs/ecs.config, aggiungi i parametri di configurazione dell'agente HTTP_PROXY e NO_PROXY.
    Esempio:

    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. Per applicare le configurazioni del proxy HTTP a ecs-agent, esegui questo comando:

    sudo start ecs

    Nota: se utilizzi un'AMI ottimizzata per Amazon ECS, l'agente del container Amazon ECS viene eseguito tramite ecs-init per impostazione predefinita.

  3. Per verificare le impostazioni del proxy HTTP per Docker e per l'agente del container Amazon ECS, esegui questo comando:

    docker inspect ecs-agent | grep -i proxy

Nota: le impostazioni del proxy vengono visualizzate nell'output del comando.

Configura un proxy HTTP per ecs-init

Esegui questi comandi con autorizzazioni 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

Nota: la configurazione sia per Docker che per l'agente del container Amazon ECS influisce solo sull'istanza corrente. Per aggiornare tutte le istanze in un cluster, crea una configurazione di avvio con dati utente e utilizza un gruppo Auto Scaling per avviare nuove istanze.

Informazioni correlate

Aggiornamento dell'agente del container Amazon ECS

Avvio delle istanze di container Amazon ECS Linux per il trasferimento di dati