A tarefa AWS ECS está travada em PROVISIONING

A tarefa AWS ECS está travada em PROVISIONING

Tenho um cluster ECS com um provedor de capacidade e um serviço. O provedor de capacidade executa um grupo de escalonamento automático e, quando uma instância desse grupo é iniciada, no final posso ver que há instâncias do ECS disponíveis. Na verdade, posso me conectar a eles através de SSH.

O serviço também funciona bem, pois cria uma nova tarefa baseada em uma imagem docker no repositório ERS. Porém, a tarefa nunca passa de "PROVISIONING", e se eu abrir a tarefa posso ver que o container da tarefa está vazio e carregando. Se eu entrar na minha instância, vejo a mesma instância do docker se eu fizer docker psou docker ps -a. Se eu executar o agente, docker exec id_docker /agentvejo:

level=info time=2022-05-02T21:16:05Z msg="Successfully got ECS instance credentials from provider: EC2RoleProvider" module=instancecreds.go
level=info time=2022-05-02T21:16:05Z msg="Starting Amazon ECS Agent" version="1.61.0" commit="05730614"
level=info time=2022-05-02T21:16:05Z msg="Loading configuration"
level=info time=2022-05-02T21:16:05Z msg="Successfully got ECS instance credentials from provider: EC2RoleProvider" module=instancecreds.go

Se eu tentar, docker exec id_docker bashrecebo um erro:

OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "bash": executable file not found in $PATH: unknown

O que está acontecendo aqui? Qualquer pista?

Responder1

O que tive depois de fazer docker psfoi na verdade ecs-agent, que é algo que a Amazon cria para controlar o contêiner. Essa foi a parte travada. Na verdade, meu docker nem estava funcionando.

Para resolver isso, ao criar a tarefa, nas opções do container, ao selecionar as portas do container para redirecionar para o host, coloque nos valores do seu host 0. Por exemplo, redirecione a porta 22 para 22 -> 0 para 22. Este é um mapeamento dinâmico de portas no ecs.

informação relacionada