postStart e preStop permitem executar ações no momento exato em que um container inicia ou para. Fundamentais para zero-downtime deploys no EKS.
Executado imediatamente após o container ser criado. Roda em paralelo com o ENTRYPOINT — não há garantia de ordem entre postStart e o processo principal. O container não passa para o estado Running até o postStart completar.
lifecycle:
postStart:
exec:
command:
- /bin/sh
- -c
- echo "started" >> /var/log/app.logExecutado antes do SIGTERM ser enviado ao container. O gateway da AWS leva alguns segundos para remover o pod dos targets após receber a notificação — sem preStop, requisições em andamento são cortadas. Este é o hook mais importante para zero-downtime no EKS.
lifecycle:
preStop:
exec:
command:
- /bin/sh
- -c
- sleep 5 # aguarda ALB
terminationGracePeriodSeconds: 30sleep 5 + terminationGracePeriodSeconds: 30 + app que faz graceful shutdown ao receber SIGTERM. Isso cobre o delay de deregistration do ALB Target Group.Executa um comando dentro do container. Mais comum e flexível.
command: ['/bin/sh', '-c', 'sleep 5']
Faz uma requisição HTTP GET. Útil para chamar endpoint de shutdown da aplicação.
path: /shutdown port: 8080
Abre uma conexão TCP na porta especificada. Mais simples que HTTP.
port: 8080