Middle
Para que são usadas as provas no Kubernetes?
sobes.tech IA
Resposta da IA
As sondas no Kubernetes são usadas para determinar o estado dos contêineres e gerir o ciclo de vida dos pods. Permitem que o cluster reaja automaticamente às mudanças no estado das aplicações, garantindo a sua disponibilidade e estabilidade.
Existem três tipos principais de sondas:
- Sonda de vivacidade (Liveness probe): Determina se a aplicação dentro do contêiner está a funcionar. Se a sonda de vivacidade terminar com erro, o Kubernetes reinicia o contêiner.
- Sonda de prontidão (Readiness probe): Determina se o contêiner está pronto para receber tráfego. Se a sonda de prontidão terminar com erro, o Kubernetes exclui temporariamente o pod da lista de pontos finais disponíveis para o serviço que o dirige.
- Sonda de arranque (Startup probe): Determina se a aplicação no contêiner terminou de iniciar. Pode ser usada para aplicações que requerem muito tempo para inicializar. Se a sonda de arranque for bem-sucedida, as verificações seguintes (vivacidade/prontidão) começam de acordo com o cronograma. Se falhar durante o tempo definido, o Kubernetes mata e reinicia o contêiner.
As sondas podem ser implementadas de várias formas:
- ExecAction: Executa um comando dentro do contêiner. O sucesso é determinado pelo código de retorno (0 - sucesso, qualquer outro - erro).
# Exemplo de ExecAction para a sonda de vivacidade livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 - HTTPGetAction: Envia uma requisição HTTP GET para a porta e caminho especificados do contêiner. O sucesso é determinado pelo código de estado HTTP (geralmente 2xx ou 3xx).
# Exemplo de HTTPGetAction para a sonda de prontidão readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 - TCPSocketAction: Tenta estabelecer uma conexão TCP na porta especificada do contêiner. O sucesso é determinado pela conexão bem-sucedida.
# Exemplo de TCPSocketAction para a sonda de vivacidade livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 15 periodSeconds: 20
O uso correto das sondas é fundamental para a fiabilidade e resistência a falhas das aplicações no Kubernetes.