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