Saltar al contenido

¿Cómo configuro un proxy HTTP para Docker y el agente de contenedores de Amazon ECS en Amazon Linux?

4 minutos de lectura
0

Quiero configurar un proxy HTTP para Docker y el agente de contenedores de Amazon Elastic Container Service (Amazon ECS) en Amazon Linux 2.

Descripción breve

Haz lo siguiente:

  • Guarda la dirección IP y el puerto del servidor proxy.
  • Configura un proxy HTTP para el daemon de Docker.
  • Configura un proxy HTTP para el agente de contenedores de Amazon ECS.
  • Configura un proxy HTTP para ecs-init. Para más información, consulta amazon-ecs-init en el sitio web de GitHub.

Nota: También puedes usar los datos de usuario de Amazon Elastic Compute Cloud (Amazon EC2) que tienen un script de datos de usuario para configurar las variables de entorno durante el inicio. Para ver un script de datos de usuario que funcione en todas las versiones de Linux, consulta Uso de un proxy HTTP para instancias de contenedor de Linux de Amazon ECS.

Si usas Amazon Linux 2 o Amazon Linux 2023, consulta ¿Cómo configuro un proxy HTTP para Docker y el agente de contenedores de Amazon ECS en Amazon Linux 2 o Amazon Linux 2023?
Nota: La imagen de máquina de Amazon (AMI) de Amazon Linux 1 llegó al final de su vida útil. Se recomienda migrar a las AMI de Amazon Linux 2 o Amazon Linux 2023. Para más información, consulta Preguntas frecuentes sobre las AMI de Amazon Linux.

Resolución

Almacenamiento de la dirección IP y el puerto del servidor proxy

Sigue estos pasos:

  1. Usa SSH para conectarte a la instancia de Amazon EC2.
  2. Como usuario raíz, anota la dirección IP y el puerto del servidor proxy para usarlos más adelante en las variables de entorno:
    export PROXY_SERVER_IP=x.x.x.xexport PROXY_PORT=1234

Configuración de un proxy HTTP para el daemon de Docker

Sigue estos pasos:

  1. Ejecuta los siguientes comandos con permisos de 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 es la dirección de socket (IPaddress:Port) del proxy HTTP que se utiliza para conectar el agente de contenedor de Amazon ECS a Internet.

    Si se establece la variable HTTP_PROXY, debes establecer la variable NO_PROXY en 169.254.169.254,169.254.170.2. Esta configuración filtra los metadatos de las instancias de Amazon EC2, los roles de AWS Identity and Access Management (IAM) para las tareas y el tráfico de daemon de Docker desde el proxy.

  2. Para reiniciar Docker, ejecuta el siguiente comando:

    service docker restart

    Nota: El comando anterior detiene todos los contenedores en ejecución. Por ejemplo, detiene ecs-agent en la instancia de contenedor.

  3. Para comprobar la configuración del proxy HTTP de Docker, ejecuta el siguiente comando:

    docker info | grep -i proxy

    Nota: El resultado del comando muestra el proxy HTTP y el proxy HTTPS.

Configuración de un proxy HTTP para el agente de contenedores de Amazon ECS

Sigue estos pasos:

  1. En el archivo /etc/ecs/ecs.config, añade los parámetros de configuración del agente HTTP_PROXY y NO_PROXY.
    Ejemplo:

    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. Para aplicar las configuraciones del proxy HTTP a ecs-agent, ejecuta el siguiente comando:

    sudo start ecs

    Nota: Si utilizas una AMI optimizada para Amazon ECS, el agente de contenedores de Amazon ECS se ejecuta a través de ecs-init de forma predeterminada.

  3. Para comprobar la configuración del proxy HTTP para Docker y el agente de contenedores de Amazon ECS, ejecuta el siguiente comando:

    docker inspect ecs-agent | grep -i proxy

Nota: La configuración del proxy aparece en la salida del comando.

Configuración de un proxy HTTP para ecs-init

Ejecuta los siguientes comandos con permisos de 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 configuración de Docker y del agente de contenedores de Amazon ECS solo afecta a la instancia actual. Para actualizar todas las instancias de un clúster, crea una configuración de inicio con los datos de usuario y, a continuación, usa un grupo de escalamiento automático para iniciar nuevas instancias.

Información relacionada

Actualización del agente de contenedores de Amazon ECS

Arranque de instancias de contenedor para la transferencia de datos

OFICIAL DE AWSActualizada hace 2 años