Como solucionar problemas na verificação de integridade do contêiner em tarefas do Amazon ECS?

4 minuto de leitura
0

Minha tarefa do Amazon Elastic Container Service (Amazon ECS) falha na verificação de integridade do contêiner.

Breve descrição

Se você receber o erro a seguir, os contêineres do Amazon ECS em sua tarefa estão usando verificações de integridade que seu serviço não pode passar:

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

Resolução

Para solucionar problemas na verificação de integridade do contêiner do Amazon ECS, realize as seguintes etapas:

  • Antes de provisionar para o Amazon ECS, teste localmente o contêiner para garantir que ele passe nas verificações de integridade do contêiner.
  • Confirme se o comando que você passa para o contêiner está correto e se você usa a sintaxe correta para suas tarefas do Amazon ECS.
  • Dê ao seu contêiner tempo suficiente para iniciar.
  • Se sua tarefa do Amazon ECS continuar sendo executada por um longo período, verifique seus logs de aplicações e os logs do Amazon CloudWatch.

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

Antes de provisionar seu contêiner para o Amazon ECS, certifique-se de que seu contêiner funcione conforme o esperado e possa passar pela verificação de integridade especificada. Teste seu contêiner com a configuração Dockerfile HEALTHCHECK no site do Docker. Confirme se o contêiner passa pela verificação de integridade definida no Dockerfile. Em seguida, especifique a configuração da verificação de integridade na definição da tarefa para permitir que o atendente de contêiner do Amazon ECS monitore e relate a verificação de integridade.

Observação: o Amazon ECS não monitora as verificações de integridade do Docker que estão incorporadas em uma imagem de contêiner e não estã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 as verificações de integridade do Docker que existem na imagem do contêiner.

Confirme se você usa a sintaxe correta para suas tarefas do Amazon ECS

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

Use os comandos e a sintaxe corretos para suas tarefas do Amazon ECS. Se você usar o painel JSON do Console de Gerenciamento da AWS, a AWS CLI ou as APIs, coloque a lista de comandos entre colchetes.

Exemplo de comando:

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

Se você usa o Console de Gerenciamento da AWS para editar sua tarefa do ECS, não precisa incluir os colchetes:

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

Não separe 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"]

Dê ao seu contêiner tempo suficiente para iniciar

Se o contêiner levar muito tempo para iniciar, ele poderá falhar na verificação de integridade do contêiner. Defina o startPeriod no parâmetro de definição avançada do contêiner. Isso dá tempo ao seu contêiner do Amazon ECS para iniciar o bootstrap antes que qualquer falha na verificação de integridade seja incluída no número máximo de novas tentativas.

Para tarefas que estão em execução há muito tempo, verifique seus logs de aplicações e os logs do Amazon CloudWatch

Se seu contêiner do Amazon ECS estiver em execução por muito tempo e falhar na verificação de integridade do contêiner, verifique os registros de sua aplicação. Se sua tarefa do Amazon ECS usa o driver de log awslogs, verifique os logs de sua aplicação no CloudWatch.

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

Informações relacionadas

Como fazer com que minhas tarefas do Amazon ECS sejam executadas usando o tipo de execução do Amazon EC2 para passar na verificação de integridade do Application Load Balancer no Amazon ECS?

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos