Componentes y conceptos básicos de Kubernetes
Mapa rápido de las partes que componen un clúster y los objetos más habituales que se gestionan. No pretende explicar cada detalle, solo servir de referencia visual y orden mental.
Arquitectura general
Control Plane (el cerebro del clúster):
- API Server → punto de entrada de todas las peticiones (
kubectl, dashboards, controladores). - etcd → base de datos donde se guarda el estado del clúster.
- Controller Manager → vigila que el estado real coincida con el deseado (replicas, jobs, etc.).
- Scheduler → decide en qué nodo se ejecuta cada Pod.
Nodos de trabajo (Workers):
- kubelet → agente que ejecuta Pods y reporta su estado.
- kube-proxy → gestiona reglas de red y balanceo.
- Container Runtime → ejecuta los contenedores (containerd, CRI-O, Docker, etc.).
Recursos fundamentales
| Tipo | Descripción rápida |
|---|---|
| Pod | Unidad mínima ejecutable: uno o más contenedores que comparten red y almacenamiento. |
| ReplicaSet | Asegura que haya N réplicas de un Pod. Suele gestionarse a través de un Deployment. |
| Deployment | Controla la creación y actualización de Pods. Ideal para aplicaciones sin estado. |
| StatefulSet | Igual que Deployment, pero mantiene identidad y almacenamiento por Pod. |
| DaemonSet | Asegura que haya un Pod corriendo en cada nodo (útil para logs, monitorización). |
| Job / CronJob | Ejecutan tareas puntuales o programadas. |
Almacenamiento
| Recurso | Función |
|---|---|
| Volume | Espacio de almacenamiento montado en un Pod. Puede ser efímero o persistente. |
| PersistentVolume (PV) | Recurso del clúster que representa almacenamiento físico o lógico disponible. |
| PersistentVolumeClaim (PVC) | Petición de almacenamiento por parte de un usuario. Se vincula con un PV. |
| StorageClass | Define políticas de aprovisionamiento dinámico (por tipo, rendimiento, etc.). |
Red y exposición de servicios
| Recurso | Función |
|---|---|
| Service | IP estable y punto de acceso para un conjunto de Pods. |
| ClusterIP | Servicio interno (por defecto). |
| NodePort | Expone el servicio en un puerto del nodo. |
| LoadBalancer | Usa un balanceador externo (en nubes o setups con MetalLB). |
| Ingress | Reglas HTTP(S) que enrutan tráfico externo hacia los Services. |
| Ingress Controller | Implementa las reglas de Ingress (NGINX, Traefik, etc.). |
| NetworkPolicy | Controla el tráfico permitido entre Pods o namespaces. |
Configuración y seguridad
| Recurso | Función |
|---|---|
| ConfigMap | Almacena configuración no sensible. |
| Secret | Datos sensibles (contraseñas, tokens). |
| ServiceAccount | Identidad usada por procesos dentro del clúster. |
| Role / ClusterRole | Define permisos. |
| RoleBinding / ClusterRoleBinding | Asigna permisos a usuarios o cuentas de servicio. |
| SecurityContext | Define restricciones de privilegios a nivel de Pod o contenedor. |
| PodSecurity (PSA/PSS) | Políticas globales de seguridad de Pods. |
Observabilidad y control
| Recurso / componente | Función |
|---|---|
| Events | Registro de sucesos del clúster. |
| Metrics Server | Proporciona métricas de CPU/RAM (para kubectl top). |
| Logs | Salida de contenedores y del sistema. |
| Probes (liveness/readiness/startup) | Verifican salud y disponibilidad de los Pods. |
| PodDisruptionBudget (PDB) | Define cuántos Pods pueden estar fuera de servicio simultáneamente. |
📘 Referencias: Kubernetes Concepts (docs oficiales) · DevOpsCube - Kubernetes Architecture
Analogía para no romperse la cabeza
Control Plane → el jefe de la obra: da órdenes, no toca nada. API Server → el secretario: recibe tus órdenes y las reparte. etcd → el cuaderno donde se apunta todo. Scheduler → el encargado que reparte tareas entre los obreros. Controller Manager → el pesado que revisa que todo siga como estaba planeado.
Nodos de trabajo → los obreros.
- kubelet → el capataz del nodo.
- kube-proxy → el tío del tráfico que pone conos en la red.
- Container Runtime → la máquina que realmente enciende las cosas.
Pod → una caja de herramientas. ReplicaSet → el contador de cajas. Deployment → el planificador de cuándo y cómo se cambian. StatefulSet → el que lleva etiquetas con nombres. DaemonSet → el repartidor que deja una caja en cada nodo. Job / CronJob → el que hace algo una vez o a horas fijas.
PV / PVC / StorageClass → el almacén, el ticket de pedido y el tipo de almacén. PV = almacén físico. PVC = papelito que dice “quiero un trozo de almacén”. StorageClass = tipo de almacén (rápido, barato, lento…).
Service → el interfono para hablar con Pods. ClusterIP → solo dentro del edificio. NodePort → el portero abre una puerta concreta. LoadBalancer → el recepcionista elegante. Ingress → el telefonista que enruta llamadas desde fuera. Ingress Controller → quien ejecuta las reglas del telefonista.
ConfigMap → el post-it con configuraciones. Secret → el post-it en una caja fuerte. RBAC / Roles → el carné de acceso. SecurityContext → el contrato de cada trabajador.
Probes → los médicos que revisan si los Pods respiran. PDB → el seguro que impide despedir a todos a la vez. Events / Logs / Metrics → los chismes del grupo de WhatsApp donde se entera todo el mundo.