Middle
O que acontece se a prova de vivacidade não passar no Kubernetes?
sobes.tech IA
Resposta da IA
Se o pod não passar no teste de liveness, o Kubernetes executará a ação especificada no manifesto do pod. Por padrão, isso reinicia o contêiner.
Ações possíveis em caso de falha no teste de liveness:
- Reiniciar: Reinicia o contêiner dentro do pod. Esta ação é a padrão.
- Nenhuma: O Kubernetes não tomará nenhuma ação em caso de falha no teste de liveness. O contêiner permanecerá no seu estado atual (
RunningouCrashing). - Executar comando: Executa um comando específico dentro do contêiner. Se o comando terminar com um código de retorno diferente de zero, o teste de liveness é considerado falho.
Cenário com a ação padrão (Reiniciar):
- kubelet no nó verifica regularmente o contêiner usando o teste de liveness.
- A condição do teste de liveness não é atendida (por exemplo, o servidor HTTP não responde, o comando termina com erro).
- kubelet registra a falha do teste.
- Após alguns tentativas malsucedidas (configuradas pelos parâmetros
failureThreshold,initialDelaySeconds,periodSeconds,timeoutSeconds), kubelet determina que o contêiner está com defeito. - kubelet envia o sinal
SIGKILLao contêiner defeituoso. - O contêiner termina.
- kubelet reinicia o contêiner no mesmo pod.
- O processo de teste de liveness é retomado.
É importante distinguir entre o teste de liveness e o teste de readiness. O teste de readiness determina se o contêiner está pronto para receber tráfego. Uma falha no teste de readiness faz com que o Service não direcione tráfego para essa instância do pod, mas o contêiner não é reiniciado. Uma falha no teste de liveness indica uma falha e a necessidade de reinício.
# Exemplo de teste de liveness em spec.containers
containers:
- name: my-container
image: my-image:latest
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 15 # Atraso antes da primeira verificação
periodSeconds: 20 # Intervalo entre verificações
timeoutSeconds: 5 # Tempo de espera pela resposta
failureThreshold: 3 # Número de tentativas malsucedidas antes do reinício