Capítulo 2.6 - kubelet
Objetivos de Aprendizaje
Al final de este capítulo, usted será capaz de:
- Comprender el rol de kubelet
- Explicar cómo kubelet gestiona los Pods
- Comprender los health checks
- Identificar las interacciones con el Container Runtime
¿Qué es kubelet?
kubelet es el agente que se ejecuta en cada Worker Node. Es responsable de:
- Gestionar los Pods en su nodo
- Comunicarse con el API Server
- Iniciar/detener los contenedores
- Realizar los health checks
Roles de kubelet
1. Gestión de Pods
kubelet supervisa los Pods asignados a su nodo:
2. Comunicación con el API Server
kubelet:
- Recibe las especificaciones de los Pods
- Reporta el estado de los Pods
- Envía métricas y eventos
3. Health Checks
kubelet realiza tres tipos de probes:
- Liveness Probe: ¿El contenedor está vivo?
- Readiness Probe: ¿El contenedor está listo?
- Startup Probe: ¿El contenedor ha iniciado?
Ciclo de Vida de un Pod
Health Checks (Probes)
Liveness Probe
Determina si el contenedor debe ser reiniciado:
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
Si la probe falla → kubelet reinicia el contenedor.
Readiness Probe
Determina si el contenedor está listo para recibir tráfico:
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
Si la probe falla → el Pod es retirado de los Services.
Startup Probe
Para aplicaciones lentas en iniciar:
startupProbe:
httpGet:
path: /startup
port: 8080
failureThreshold: 30
periodSeconds: 10
Interacción con Container Runtime
kubelet se comunica con el Container Runtime a través de CRI (Container Runtime Interface):
Operaciones:
CreateContainer()StartContainer()StopContainer()RemoveContainer()
Métricas y Eventos
kubelet recopila y envía:
- Métricas: CPU, memoria, disco, red
- Eventos: Creación, inicio, detención, errores
- Estado: Estado de los Pods y contenedores
Seguridad
kubelet:
- Se autentica con el API Server (certificados)
- Valida las imágenes antes de ejecutarlas
- Aplica las políticas de seguridad (Pod Security Standards)
Comandos Útiles
# Ver los logs de kubelet (en el nodo)
journalctl -u kubelet
# Ver los Pods en un nodo específico
kubectl get pods --field-selector spec.nodeName=<node-name>
# Ver los eventos de un Pod
kubectl describe pod <pod-name>
Resumen
En este capítulo, usted ha aprendido:
kubelet: Agente que gestiona los Pods en cada Worker Node
Gestión: Creación, inicio, detención de contenedores
Health Checks: Liveness, Readiness, Startup probes
Comunicación: Con API Server y Container Runtime
Supervisión: Métricas y eventos en continuo
Próximos Pasos
Ahora que usted comprende kubelet:
Capítulo 2.7: kube-proxy - Networking
Capítulo 2.8: Container Runtime
Capítulo creado el: Diciembre 2024