Salta al contenuto

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

4 minuti di lettura
0

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

Risoluzione

Per configurare un proxy HTTP per Docker e per l'agente del container Amazon ECS in Amazon Linux 2 o Amazon Linux 2023, completa i seguenti passaggi.

Nota: puoi anche impostare le variabili di ambiente durante l'avvio utilizzando i dati utente di Amazon Elastic Compute Cloud (Amazon EC2) con uno script di dati utente. 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, consulta How do I set up an HTTP proxy for Docker and the Amazon ECS container agent in Amazon Linux? (Come posso configurare un proxy HTTP per Docker e per l'agente del container Amazon ECS in Amazon Linux?)

Importante: l'AMI Amazon Linux (detta anche Amazon Linux 1) è giunta alla fine del suo ciclo di vita il 31 dicembre 2023. È consigliabile aggiornare le applicazioni ad Amazon Linux 2023.

Memorizza l'indirizzo IP e la porta del server proxy

Per memorizzare l'indirizzo IP e la porta del server proxy, completa i seguenti passaggi:

  1. Connettiti all'istanza Amazon EC2 tramite SSH.
  2. Come utente root, memorizza l'indirizzo IP e la porta del server proxy per un uso successivo nelle variabili di ambiente. Ad esempio:
    export PROXY_SERVER_IP=x.x.x.x
    export PROXY_PORT=1234

Configura un proxy HTTP per il daemon Docker

Per configurare un proxy HTTP per il daemon Docker, completa i seguenti passaggi:

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

    Nota: HTTP_PROXY è l'indirizzo socket (IPaddress:Port) del proxy HTTP utilizzato per connettere l'agente del container 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 ricaricare le unità a seguito della modifica di docker.service su disco, esegui questo comando:

    systemctl daemon-reload
  3. Per riavviare Docker, esegui questo comando:

    systemctl restart docker.service

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

  4. 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

Per configurare un proxy HTTP per il daemon Docker, completa i seguenti passaggi:

  1. Nel file /etc/ecs/ecs.config esistente, includi la configurazione del proxy utilizzando i parametri di configurazione dell'agente HTTP_PROXY e NO_PROXY. Ad esempio:

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

    systemctl restart ecs

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

  3. Per verificare le impostazioni del proxy HTTP per Docker e per l'agente del container, 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

Per configurare un proxy HTTP per ecs-init, completa i seguenti passaggi:

  1. Esegui questi comandi con autorizzazioni 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. Per ricaricare le unità a seguito della modifica di docker.service su disco, esegui questo comando:

    systemctl daemon-reload
  3. Per applicare le configurazioni HTTP dal passaggio 1 a ecs-agent, esegui questo comando:

    systemctl restart ecs

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

Informazioni correlate

Aggiornamento dell'agente del container Amazon ECS

Avvio delle istanze di container con i dati utente di Amazon EC2

AWS UFFICIALEAggiornata 2 anni fa