Sobes.tech
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.