Pular para o conteúdo principal

Capítulo 2.6 - kubelet

Objetivos de Aprendizagem​

Ao final deste capítulo, você será capaz de:

  • Compreender o papel do kubelet
  • Explicar como o kubelet gerencia os Pods
  • Entender os health checks
  • Identificar as interações com o Container Runtime

O que é kubelet?​

kubelet é o agente que roda em cada Worker Node. Ele é responsável por:

  • Gerenciar os Pods em seu node
  • Comunicar-se com o API Server
  • Iniciar/parar os containers
  • Realizar os health checks

Papéis do kubelet​

1. Gerenciamento de Pods​

O kubelet monitora os Pods atribuídos ao seu node:

2. Comunicação com o API Server​

O kubelet:

  • Recebe as especificações dos Pods
  • Reporta o estado dos Pods
  • Envia métricas e eventos

3. Health Checks​

O kubelet executa três tipos de probes:

  • Liveness Probe: O container está vivo?
  • Readiness Probe: O container está pronto?
  • Startup Probe: O container já iniciou?

Ciclo de Vida de um Pod​


Health Checks (Probes)​

Liveness Probe​

Determina se o container deve ser reiniciado:

livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10

Se a probe falhar → o kubelet reinicia o container.

Readiness Probe​

Determina se o container está pronto para receber tráfego:

readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5

Se a probe falhar → o Pod é removido dos Services.

Startup Probe​

Para aplicações que demoram a iniciar:

startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30
periodSeconds: 10

Interação com Container Runtime​

O kubelet se comunica com o Container Runtime via CRI (Container Runtime Interface):

Operações:

  • CreateContainer()
  • StartContainer()
  • StopContainer()
  • RemoveContainer()

Métricas e Eventos​

O kubelet coleta e envia:

  • Métricas: CPU, memória, disco, rede
  • Eventos: Criação, inicialização, parada, erros
  • Status: Estado dos Pods e containers

Segurança​

O kubelet:

  • Autentica com o API Server (certificados)
  • Valida as imagens antes de executá-las
  • Aplica as políticas de segurança (Pod Security Standards)

Comandos Úteis​

# Ver os logs do kubelet (no node)
journalctl -u kubelet

# Ver os Pods em um node específico
kubectl get pods --field-selector spec.nodeName=<node-name>

# Ver os eventos de um Pod
kubectl describe pod <pod-name>

Resumo​

Neste capítulo, você aprendeu:

kubelet: Agente que gerencia os Pods em cada Worker Node
Gerenciamento: Criação, inicialização, parada dos containers
Health Checks: Liveness, Readiness, Startup probes
Comunicação: Com API Server e Container Runtime
Monitoramento: Métricas e eventos contínuos


Próximos Passos​

Agora que você entende o kubelet:

Capítulo 2.7: kube-proxy - Networking
Capítulo 2.8: Container Runtime


Capítulo criado em: Dezembro 2024