Como soluciono problemas de falha na verificação de integridade de contêiners para tarefas do Amazon ECS?

4 minuto de leitura
0

A tarefa do Amazon Elastic Container Service (Amazon ECS) não está sendo aprovada na verificação de integridade de contêiner. Como resolvo isso?

Breve descrição

Se você recebe o erro a seguir, os contêineres do Amazon ECS na tarefa estão usando verificações de integridade que o serviço não pode aprovar:

(service AWS-Service) (task ff3e71a4-d7e5-428b-9232-2345657889) failed container health checks

Observação: se você estiver enfrentando problemas de verificação de integridade do Elastic Load Balancing (ELB), consulte How can I get my Amazon ECS tasks running to pass the Application Load Balancer health check in Amazon ECS? (Como posso fazer com que minhas tarefas do Amazon ECS em execução sejam aprovadas na verificação de integridade do Application Load Balancer no Amazon ECS?)

Resolução

Para solucionar problemas de falhas na verificação de integridade de contêiner do Amazon ECS, tente seguir as seguintes dicas:

  • Teste o contêiner localmente para garantir que ele seja aprovado nas verificações de integridade do contêiner antes de ser provisionado para o Amazon ECS.
  • Confirme se o comando que você está passando para o contêiner está correto e se você está usando a sintaxe correta para as tarefas do Amazon ECS.
  • Certifique-se de que o contêiner tenha tempo suficiente para instanciar.
  • Se a tarefa do Amazon ECS já estiver em execução há algum tempo, verifique os logs da aplicação e os logs do Amazon CloudWatch.

Teste o contêiner localmente para garantir que ele seja aprovado na verificação de integridade de contêiner

Antes de provisionar o contêiner para o Amazon ECS, verifique se o contêiner pode funcionar como esperado e se ele passa na verificação de integridade de contêiner especificada. Você pode testar o contêiner com a configuração HEALTHCHECK do Dockerfile no site do Docker. Depois que o contêiner passar na verificação de integridade definida no Dockerfile, você poderá especificar a configuração da verificação de integridade na definição da tarefa. Especificar a configuração da verificação de integridade permite que o agente de contêiner do Amazon ECS monitore e forneça informações sobre a verificação de integridade especificada.

Observação: o Amazon ECS não monitora verificações de integridade do Docker incorporadas em uma imagem de contêiner e não especificadas na definição do contêiner. Os parâmetros de verificação de integridade especificados em uma definição de contêiner substituem todas as verificações de integridade do Docker existentes na imagem do contêiner.

Confirme se você está usando a sintaxe correta para as tarefas do Amazon ECS

Verifique se você está usando os comandos e a sintaxe corretos para as tarefas do Amazon ECS.

Por exemplo, se você usar o painel JSON do Console de Gerenciamento da AWS, a AWS Command Line Interface (AWS CLI) ou APIs, coloque a lista de comandos entre colchetes, assim:

["CMD-SHELL", "curl -f http://localhost/ || exit 1"]

Se você estiver usando o Console de Gerenciamento da AWS para editar a tarefa do ECS, não precisará incluir os colchetes:

"CMD-SHELL", "curl -f http://localhost/ || exit 1"

Além disso, verifique se não está separando o comando de verificação de integridade com aspas duplas, como ["CMD-SHELL", "healthcheck.sh", "||", "exit 1"]. Em vez disso, use a seguinte sintaxe de comando:

["CMD-SHELL", "healthcheck.sh || exit 1"]

Certifique-se de que o contêiner tenha tempo suficiente para instanciar

Se o contêiner demorar um pouco para iniciar, poderá não ser aprovado na verificação de integridade de contêiner. Tente definir o startPeriod no parâmetro de definição de contêiner avançado. Isso dá ao contêiner do Amazon ECS tempo suficiente para o boostrap antes que qualquer verificação de integridade com falha seja incluída no número máximo de novas tentativas.

Verifique os logs da aplicação e os logs do Amazon CloudWatch se a tarefa estiver em execução há algum tempo

Se o contêiner do Amazon ECS estiver em execução há algum tempo e não for aprovado na verificação de integridade de contêiner, verifique os logs da aplicação. Se a tarefa do Amazon ECS usar o driver de log awslogs, verifique os logs da aplicação no Amazon CloudWatch.

Observação: o AWS Fargate é um serviço gerenciado. Portanto, você não pode acessar a infraestrutura subjacente. Para solucionar problemas, inicie suas tarefas do Amazon ECS no Amazon Elastic Compute Cloud (Amazon EC2). Depois, conecte-se às instâncias do Amazon EC2 usando SSH. Você também pode tentar usar o Amazon ECS Exec para interagir diretamente com seus contêineres do ECS.


AWS OFICIAL
AWS OFICIALAtualizada há 2 anos