Ir para o conteúdo

Como soluciono problemas de tarefas do Amazon ECS que demoram muito para serem interrompidas quando a instância de contêiner está definida como DRAINING?

4 minuto de leitura
0

Minha tarefa do Amazon Elastic Container Service (Amazon ECS) está demorando muito para passar para o estado STOPPED. Ou minha tarefa do Amazon ECS fica presa no estado RUNNING quando a instância de contêiner está definida como DRAINING.

Breve descrição

Quando você define uma instância do ECS como DRAINING, o Amazon ECS impede que novas tarefas sejam programadas para serem colocadas na instância do contêiner. O Amazon ECS interrompe imediatamente as tarefas de serviço no estado PENDING. O Amazon ECS faz a transição das tarefas de serviço no estado RUNNING para o estado STOPPED. As tarefas autônomas no estado PENDING ou RUNNING não são afetadas. Para interromper tarefas autônomas, espere que elas parem sozinhas ou as interrompa manualmente.

Problemas com parâmetros ou tarefas de configuração podem manter as tarefas no estado RUNNING ou atrasar a transição delas para o estado STOPPED.

Para solucionar esses problemas, conclua as tarefas a seguir:

  • Atualizar parâmetros DeploymentConfiguration
  • Atualizar o valor do atraso de cancelamento de registro
  • Atualizar o valor de ECS_CONTAINER_STOP_TIMEOUT
  • Procurar outros problemas relacionados à tarefa

Resolução

Para solucionar problemas de tarefas do Amazon ECS que demoram muito para serem interrompidas, conclua as tarefas a seguir.

Atualizar parâmetros DeploymentConfiguration

Conclua as etapas a seguir:

  1. Abra o console do Amazon ECS.
  2. No painel de navegação, selecione Clusters. Em seguida, escolha o cluster em que sua instância de contêiner está sendo drenada.
  3. Escolha a guia Infraestrutura.
  4. Em Instâncias de contêiner, filtre por Status para DRAINING.
  5. Escolha sua instância de contêiner e, em seguida, descubra o serviço para as tarefas que estão sendo drenadas ou demorando muito para serem drenadas.
  6. Escolha a guia Serviços, selecione o serviço e, em seguida, Implantações.
  7. Verifique os valores de minimumHealthyPercent e maximumPercent.

Observação: as tarefas de serviço na instância de contêiner que estão no estado RUNNING são interrompidas e substituídas de acordo com os parâmetros de configuração de implantação do serviço. Para mais informações, consulte Drenagem de instâncias de contêiner do Amazon ECS.

Atualizar o valor do atraso de cancelamento de registro

Importante: as etapas a seguir se aplicam somente aos serviços que usam o Application Load Balancer ou o Network Load Balancer. Se seu serviço usa o Classic Load Balancer, verifique os valores de drenagem da conexão.

Conclua as etapas a seguir:

  1. Abra o console do Amazon ECS.
  2. No painel de navegação, escolha Clusters e, em seguida, escolha o cluster em que sua instância de contêiner está sendo drenada.
  3. Escolha a guia Serviços e selecione o serviço com a pilha presa em RUNNING.
  4. Escolha o Nome do grupo de destino.
  5. Na guia Detalhes, role para baixo e marque a caixa de seleção Atraso no cancelamento de registro.

Atualizar o valor de ECS_CONTAINER_STOP_TIMEOUT

Conclua as etapas a seguir:

  1. Use o Secure Shell (SSH) para se conectar à instância de contêiner.

  2. Para encontrar o valor de ECS_CONTAINER_STOP_TIMEOUT, execute o seguinte comando:

    docker inspect ecs-agent --format '{{json .Config.Env}}'
  3. Se houver um valor de ECS_CONTAINER_STOP_TIMEOUT, verifique o valor da duração.

Observação: ECS_CONTAINER_STOP_TIMEOUT é um parâmetro do agente de contêiner do ECS que define a quantidade de tempo que o Amazon ECS espera antes de o ECS finalizar um contêiner. A duração do tempo começa a contar quando uma tarefa é interrompida. Se o parâmetro ECS_CONTAINER_STOP_TIMEOUT não aparecer na saída, o Amazon ECS usará o valor padrão de 30 segundos.

Procurar outros problemas relacionados à tarefa

Para procurar outros problemas relacionados à tarefa, use o SSH para se conectar à sua instância Linux. Em seguida, conclua as seguintes tarefas:

Informações relacionadas

Drenagem de instâncias de contêiner do Amazon ECS

AWS OFICIALAtualizada há 7 meses