top of page

Liveness Probes do Kubernetes

  • Foto do escritor: Rodrigo Saito
    Rodrigo Saito
  • 20 de mai.
  • 2 min de leitura

Fala pessoal, tudo bem?


No K8s, existe uma feature muito interesante, que podemos utilizar para fazer certas verificações e testes se os componentes do K8s estão realmente funcionando, verificar se a aplicação está realmente respondendo.


Com o Liveness Probes, colocamos esses verificadores de sanidade e eles possam agir quando a aplicação der algum problema.


O Liveness Probes são executados pelo kubelet, que são realizados testes contínuos realizados pelo próprio k8s (atravé sdo kubelet)


O Liveness Probes toma uma ação quando o teste não é bem sucedido, que geralmente é reiniciar algum determinado container. (kubelet monitora essas sondas de sanidade para quando ele deve reiniciar determinado container)


Supondo que temos um deadlock em um determinado container, o Liveness Probe pode agir nesse caso reiniciando esse container, possivelmente tornando essa aplicação disponível novamente.


Aplicações que entram em deadlock provavelmente são bug de aplicações. É necessário passar o problema para o time de aplicação para que esse bug esse corrigido, e voce, enquanto administrador de infraestrutura de aplicação, voce pode manter ela funcionando até que a aplicação seja corrigida.


Vamos criar um arquivo yaml para criar um arquivo my-livenessProbe.yaml na pasta em que voce deseja (no meu cso está na pasta Download). Nesse arquivo, vamos utilizar o busybox, que traz uma série de ferramentas de linhas de comando para que possamos fazer diversos testes.


O arquivo de conter o conteúdo:


apiVersion: v1
kind: Pod
metadata:
  name: liveness-pod
spec:
  containers:
  - name: liveness-container-test
    image: busybox
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -f /tmp/healthy; sleep 600

    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5
      failureThreshold: 3

Vamos fazer a aplicação do arquivo, com alguns argumentos

kubectl apply -f my-livenessProbe.yaml && \
sleep 5 && \
kubectl get pods &&
sleep 30 && \
kubectl describe pods liveness-pod && \
sleep 35 && \
kubectl describe pods liveness-pod && \
sleep 30 && \
kubectl describe pods liveness-pod && \
kubectl get pods liveness-pod

Está execuitando esta série de comando par que seja possivel verificar o que está acontecendo:


As ações do arquivo foram:


Role o log e veja o que aconteceu no histórico de execuções.


Vamos fazer a limpeza do contaimer:

kubectl delete pod liveness-pod

Conseguiu entender o que aconteceu?


obrigado e até+!



Comentários


Nunca perca um post. Assine agora!

Caso queira receber noticias sobre o blog, assine!

© 2022 por datalib

  • Ícone do Facebook Cinza
  • Ícone do Linkedin Cinza
bottom of page