Ir para o conteúdo

Como configuro um proxy HTTP para o Docker e o atendente de contêiner do Amazon ECS no Amazon Linux?

4 minuto de leitura
0

Quero configurar um proxy HTTP para o Docker e o atendente de contêiner do Amazon Elastic Container Service (Amazon ECS) no Amazon Linux.

Breve descrição

Realize as seguintes ações:

  • Armazene o endereço IP e a porta do servidor proxy.
  • Configure um proxy HTTP para o daemon do Docker.
  • Configure um proxy HTTP para o atendente de contêiner do Amazon ECS.
  • Configure um proxy HTTP para ecs-init. Para obter mais informações, consulte amazon-eks-ami no site do GitHub.

Observação: Também é possível usar dados de usuário do Amazon Elastic Compute Cloud (Amazon EC2) que tenham um script de dados do usuário para definir suas variáveis de ambiente durante a execução. Para um script de dados de usuário que funciona em todas as versões do Linux, consulte Uso de um proxy HTTP para instâncias de contêiner do Linux no Amazon ECS.

Se você usa o Amazon Linux 2 ou o Amazon Linux 2023, consulte How do I set up an HTTP proxy for Docker and the Amazon ECS container agent in Amazon Linux 2 or Amazon Linux 2023? (Como configuro um proxy HTTP para o Docker e o atendente de contêiner do Amazon ECS no Amazon Linux 2 ou Amazon Linux 2023?)
Observação: A imagem de máquina da Amazon (AMI) do Amazon Linux 1 chegou ao fim de sua vida útil. É uma prática recomendada migrar para as AMIs do Amazon Linux 2 ou Amazon Linux 2023. Para obter mais informações, consulte Perguntas frequentes do Amazon Linux AMI.

Resolução

Armazene o endereço IP e a porta do servidor proxy

Conclua as etapas a seguir:

  1. Conecte-se à instância do Amazon EC2 usando SSH.
  2. Como usuário-raiz, anote o endereço IP e a porta do servidor proxy para usar posteriormente nas variáveis de ambiente:
    export PROXY_SERVER_IP=x.x.x.xexport PROXY_PORT=1234

Configure um proxy HTTP para o daemon do Docker

Conclua as etapas a seguir:

  1. Execute os seguintes comandos com permissões 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

    Observação: HTTP_PROXY é o endereço do soquete (IPaddress:Port) do proxy HTTP usado para conectar o atendente de contêiner do Amazon ECS à Internet.

    Se a variável HTTP_PROXY estiver definida, você deverá definir a variável NO_PROXY como 169.254.169.254,169.254.170.2. Essa configuração filtra os metadados da instância do Amazon EC2, os perfis do AWS Identity and Access Management (AWS IAM) para tarefas e o tráfego do daemon do Docker a partir do proxy.

  2. Para reiniciar o Docker, execute o seguinte comando:

    service docker restart

    Observação: O comando anterior interrompe todos os contêineres em execução. Por exemplo, ele interrompe o ecs-agent na instância de contêiner.

  3. Para verificar as configurações de proxy HTTP do Docker, execute o seguinte comando:

    docker info | grep -i proxy

    Observação: A saída do comando mostra o proxy HTTP e o proxy HTTPS.

Configure um proxy HTTP para o atendente de contêiner do Amazon ECS

Conclua as etapas a seguir:

  1. Em seu arquivo /etc/ecs/ecs.config, adicione os parâmetros de configuração do atendente HTTP_PROXY e NO_PROXY.
    Exemplo:

    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 as configurações de proxy HTTP ao ecs-agent, execute o seguinte comando:

    sudo start ecs

    Observação: Se você usa uma AMI otimizada para Amazon ECS, o atendente de contêiner do Amazon ECS é executado por meio do ecs-init por padrão.

  3. Para verificar as configurações de proxy HTTP para o Docker e o atendente de contêiner do Amazon ECS, execute o seguinte comando:

    docker inspect ecs-agent | grep -i proxy

Observação: As configurações de proxy aparecem na saída do comando.

Configure um proxy HTTP para ecs-init

Execute os seguintes comandos com permissões 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

Observação: A configuração do Docker e do atendente de contêiner do Amazon ECS afeta somente a instância atual. Para atualizar todas as instâncias em um cluster, crie uma configuração de execução com dados de usuário e use um grupo do Auto Scaling para executar novas instâncias.

Informações relacionadas

Atualizar o atendente de contêiner do Amazon ECS

Inicialização de instâncias de contêiner para transmitir dados

AWS OFICIALAtualizada há 2 anos