Lógica de controle de utilização do serviço do Amazon ECS
O agendador de serviços do Amazon ECS inclui uma lógica protetiva que controla a utilização das inicializações de tarefas quando elas apresentam falhas repetidas na inicialização. Isso ajuda a evitar o consumo desnecessário de recursos e reduz os custos.
Quando as tarefas em um serviço não conseguem passar do estado PENDING
para o estado RUNNING
e, em vez disso, passam diretamente para STOPPED
, o agendador:
-
Aumenta incrementalmente o tempo entre as tentativas de reinicialização
-
Continua aumentando os atrasos até um máximo de 27 minutos entre as tentativas
-
Gera uma mensagem de evento de serviço para notificar você sobre o problema
nota
O período máximo de atraso de 27 minutos poderá mudar em futuras atualizações.
Quando controle de utilização é habilitado, você recebe esta mensagem de evento de serviço:
(service
service-name
) is unable to consistently start tasks successfully.
Características importantes da lógica de controle de utilização:
-
Os serviços continuam tentando novamente indefinidamente
-
A única modificação é o aumento do tempo entre as reinicializações
-
Não há parâmetros configuráveis pelo usuário
Resolução de problemas de controle de utilização
Para resolver o controle de utilização, você pode:
-
Atualizar o serviço para usar uma nova definição de tarefa, o que retornará o serviço imediatamente à operação normal e sem controle de utilização. Para obter mais informações, consulte Atualizar um serviço do Amazon ECS.
-
Resolva a causa subjacente das falhas da tarefa.
As causas comuns de falhas de tarefas que acionam o controle de utilização incluem:
-
Recursos de cluster insuficientes (portas, memória ou CPU)
-
Indicado por uma mensagem de evento de serviço de recursos insuficientes
-
-
Falhas na extração de imagens do contêiner
-
Pode ser causado por nomes de imagens inválidos, tags ou permissões insuficientes
-
Resulta em
CannotPullContainerError
em Visualizar erros de tarefa interrompida do Amazon ECS
-
-
Espaço em disco insuficiente
-
Resulta em
CannotCreateContainerError
em erros de tarefas interrompidas -
Para conferir as etapas de resolução, consulte Solução de problemas relacionados a API error (500): devmapper do Docker no Amazon ECS
-
Importante
Os seguintes cenários NÃO acionam a lógica de controle de utilização:
-
Tarefas que são interrompidas após atingirem o estado
RUNNING
-
Tarefas interrompidas devido a falhas nas verificações de integridade do Elastic Load Balancing
-
Tarefas em que o comando do contêiner sai com um código diferente de zero após atingir o estado
RUNNING