Para entender cómo funciona Kubernetes, también conocido como K8s, basta con verlo como un sistema de orquestación que automatiza el despliegue, escalado y operación de contenedores en clústeres de máquinas. Utiliza una arquitectura basada en un plano de control centralizado (control plane) y nodos de trabajo (workers) donde se ejecutan los contenedores dentro de unidades llamadas pods. Kubernetes gestiona la disponibilidad, el balanceo de carga, el autoescalado y la recuperación ante fallos, garantizando que las aplicaciones se ejecuten de forma continua y eficiente, sin intervención manual constante.
En cristiano, es una plataforma que gestiona contenedores. Es el encargado de mantener tus aplicaciones vivas 24/7 con resiliencia y tolerancia a fallos. Por este motivo se le denomina orquestador ya que, Kubernetes se encarga de orquestar esos contenedores: los distribuye, los escala, los reinicia si fallan y se asegura de que todo funcione como debe.
Fue creado por Google, basado en un sistema interno llamado Borg, y ahora es mantenido por la Cloud Native Computing Foundation (CNCF).
¿Y si lo vemos como una analogía?
Imagina que tienes una flota de camiones que transportan comida a distintas ciudades. Esos camiones son los contenedores. Las ciudades son nodos (los servidores donde se ejecutan).
Y Kubernetes es el centro de control logístico que decide:
- Cuántos camiones necesitas.
- A dónde deben ir.
- Cuándo salen.
- Y qué hacer si uno se descompone.
Así funciona, pero en el mundo del software.
Cómo está construido Kubernetes
Kubernetes funciona como un clúster: un grupo de máquinas (virtuales o físicas) que trabajan juntas. Este clúster se divide en dos partes:
1. El cerebro: Control Plane
Es el centro de mando. Aquí se toman todas las decisiones importantes:
- API Server: la entrada al sistema. Todo pasa por aquí: tú, scripts, automatizaciones.
- Scheduler: decide en qué máquina se ejecuta cada contenedor.
- Controller Manager: mantiene el sistema tal como lo pediste. Si dijiste “3 réplicas de esta app”, él se asegura de que haya 3.
- etcd: una base de datos donde se guarda todo el estado del clúster.
2. Las manos: Worker Nodes
Son las máquinas que realmente ejecutan los contenedores. Cada una tiene:
- Kubelet: un agente que informa lo que pasa en su nodo y ejecuta lo que se le pide.
- Kube-proxy: maneja la red entre contenedores y el tráfico entrante.
- Container Runtime: el motor que corre los contenedores (Docker, containerd, etc.).
Tú dices qué quieres, Kubernetes se encarga
La gran ventaja de Kubernetes es su modelo declarativo. No tienes que decirle cómo hacer las cosas, solo qué deseas.
Por ejemplo:
«Quiero 5 instancias de esta aplicación corriendo.»
Y Kubernetes hace lo necesario para mantener eso. Si una falla, la reemplaza. Si un nodo cae, mueve la app a otro.
¿Y si quiero escalar?
Kubernetes lo hace fácil. Puedes:
- Escalar apps automáticamente según el tráfico.
- Recuperarte de fallos sin intervención manual.
- Hacer actualizaciones progresivas sin interrupciones.
- Y mucho más.
La analogía definitiva: una cadena de restaurantes
Piensa que administras una franquicia con locales en distintas ciudades:
- Cada ciudad es un nodo.
- Los cocineros son los contenedores ejecutando recetas (tu app).
- El Control Plane es tu oficina central. Se asegura de que haya cocineros, insumos y servicio en cada restaurante.
Si un cocinero se enferma, lo reemplazan. Si un local se incendia, se reubica la cocina.
Tú solo das una orden:
“Quiero tener 5 hamburgueserías abiertas siempre.”
Y Kubernetes se encarga del resto.
En resumen, entender cómo funciona Kubernetes es esencial para cualquier equipo de desarrollo moderno que busca automatizar, escalar y gestionar aplicaciones en contenedores. Gracias a su arquitectura distribuida, su sistema de orquestación eficiente y su comunidad activa, Kubernetes se ha convertido en el estándar de facto para la gestión de cargas de trabajo en la nube.