Saltar al contenido principal

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