¿Qué es Kubernetes y para qué sirve?

¿Qué es Kubernetes y para qué sirve?

Si llevas un tiempo moviéndote en el mundo del desarrollo o la infraestructura tecnológica, es casi imposible que no hayas tropezado con la palabra Kubernetes. Aparece en ofertas de trabajo, en charlas técnicas y en los roadmaps de cualquier empresa que se tome en serio su infraestructura. Y sin embargo, la mayoría de las explicaciones que encontrarás en internet son o demasiado abstractas o demasiado técnicas para ser útiles.

Hoy vamos a romper eso. Si ya tienes claro qué es el Cloud Computing y sus modelos, Kubernetes es el siguiente paso natural. Vamos paso a paso.

El problema que Kubernetes viene a resolver

Para entender Kubernetes, primero hay que entender el problema. Imagina que tienes una aplicación web: una tienda online, por ejemplo. Antes, esa tienda era un único bloque de código gigante (lo que se llama una arquitectura monolítica). Si algo fallaba, todo fallaba. Si había pico de visitas (Black Friday, por ejemplo), no había forma fácil de escalarla.

La industria respondió a esto con los contenedores y la arquitectura de microservicios: en lugar de una aplicación monolítica, divides tu sistema en piezas pequeñas e independientes. El carrito de la compra es un servicio, el sistema de pagos es otro, el catálogo de productos es otro... Y cada uno de estos servicios vive dentro de un contenedor (una unidad ligera y portable, gestionada habitualmente con Docker).

Suena perfecto. Hasta que tienes 50 contenedores corriendo en producción y empiezan los problemas reales:

  • ¿Cómo decides en qué servidor arranca cada contenedor?
  • Si uno cae, ¿quién lo reinicia automáticamente?
  • Si hay pico de tráfico, ¿cómo escalas solo las partes que lo necesitan?
  • ¿Cómo actualizas una versión sin cortar el servicio?

Gestionar todo eso a mano es una pesadilla. Kubernetes es la solución a esta pesadilla.

¿Qué es Kubernetes exactamente?

Kubernetes (abreviado como K8s, porque hay 8 letras entre la K y la s) es un sistema de orquestación de contenedores de código abierto. En términos simples: es el director de orquesta que decide dónde, cuándo y cómo se ejecutan tus contenedores.

Fue creado originalmente por Google —que lleva más de una década gestionando millones de contenedores internamente con un sistema llamado Borg— y donado a la comunidad en 2014. Hoy es mantenido por la Cloud Native Computing Foundation (CNCF) y es el estándar absoluto de la industria.

Su nombre viene del griego y significa timonel o piloto de barco. Una metáfora muy acertada: tú le dices a dónde quieres ir, y él maneja el timón para llegar.

¿Cómo funciona Kubernetes por dentro?

No hace falta que seas ingeniero de infraestructura para entender la arquitectura básica. Kubernetes organiza todo en torno a dos conceptos clave:

El Clúster

Un clúster de Kubernetes es el conjunto de máquinas (físicas o virtuales) sobre las que trabajará. Dentro del clúster hay dos tipos de "actores":

  • Control Plane (Plano de Control): El cerebro. Es quien toma decisiones: dónde colocar cada contenedor, cómo responder a un fallo, cómo escalar. Aquí vive el API Server (la puerta de entrada a todo), el Scheduler (el que asigna tareas) y el etcd (la base de datos que guarda el estado del clúster).
  • Nodos (Nodes): Los músculos. Son las máquinas que realmente ejecutan los contenedores. Cada nodo tiene un agente llamado kubelet que se comunica con el Control Plane y un motor de contenedores (normalmente containerd) que los ejecuta.

Los objetos principales

Kubernetes trabaja con objetos que tú defines en archivos de configuración (en formato YAML). Los más importantes son:

  • Pod: La unidad mínima de Kubernetes. Un Pod agrupa uno o varios contenedores que comparten red y almacenamiento. Es lo que Kubernetes crea, destruye y gestiona.
  • Deployment: Le dice a Kubernetes "quiero que siempre haya 3 réplicas de este Pod corriendo". Si uno cae, lo recrea automáticamente.
  • Service: Expone un grupo de Pods como un único punto de acceso estable, con una IP fija, aunque los Pods de detrás cambien constantemente.
  • Ingress: La puerta de entrada desde el exterior. Gestiona cómo el tráfico web (HTTP/HTTPS) llega a tus servicios.

Lo que Kubernetes hace por ti (y lo que eso significa en la práctica)

Funcionalidad Sin Kubernetes Con Kubernetes
Alta disponibilidad Si un servidor cae, el servicio se cae Redistribuye los contenedores automáticamente a otros nodos
Escalado Manual: enciendes más servidores tú mismo Automático: detecta la carga y escala o reduce las réplicas solo
Actualizaciones Cortas el servicio para actualizar Rolling updates: actualiza sin tiempo de inactividad
Rollback Volver atrás es un proceso manual y arriesgado Un solo comando revierte a la versión anterior al instante
Gestión de configuración Variables de entorno dispersas por ficheros Centralizada con ConfigMaps y Secrets
Balanceo de carga Requiere configuración externa adicional Integrado de forma nativa

¿Dónde se ejecuta Kubernetes?

Aquí es donde el Cloud entra en juego. Puedes instalar Kubernetes tú mismo en tus propios servidores (on-premise), pero la inmensa mayoría de empresas lo usan a través de los servicios gestionados que ofrecen los grandes proveedores cloud:

  • Google Kubernetes Engine (GKE) — El original. Considerado el más maduro.
  • Amazon Elastic Kubernetes Service (EKS) — El más popular por la cuota de mercado de AWS.
  • Azure Kubernetes Service (AKS) — La apuesta de Microsoft, muy integrado con el ecosistema Azure.

Con estos servicios gestionados, el proveedor cloud se encarga del Control Plane (el cerebro) y tú solo te preocupas de desplegar tus aplicaciones. Es la forma más habitual de usarlo hoy en día.

¿Quién usa Kubernetes y para qué?

Kubernetes no es solo para startups con miles de microservicios. Se usa en todo tipo de escenarios:

  • Banca y fintech: Actualizaciones continuas sin parar el servicio de pagos.
  • E-commerce: Escalar automáticamente durante picos de tráfico (rebajas, Black Friday).
  • Gaming: Levantar servidores de partidas bajo demanda y apagarlos al terminar.
  • Sanidad: Aislar servicios críticos con alta disponibilidad garantizada.
  • Streaming: Gestionar miles de microservicios que componen plataformas como Netflix o Spotify (que de hecho lo usan).

Lo que Kubernetes NO es

Conviene aclarar algunos malentendidos muy comunes:

  • No es un sustituto de Docker. Docker crea los contenedores; Kubernetes los orquesta. Son complementarios, no competidores.
  • No es solo para empresas enormes. Con las versiones gestionadas en cloud y herramientas como K3s (una distribución ligera), equipos pequeños también lo usan.
  • No es fácil de dominar. Hay que ser honesto: Kubernetes tiene una curva de aprendizaje pronunciada. No es algo que configures en una tarde. Pero entender sus conceptos base, como hemos hecho aquí, está al alcance de cualquiera.

Preguntas Frecuentes sobre Kubernetes (FAQ)

¿Necesito saber programar para usar Kubernetes?

No es imprescindible programar, pero sí necesitas estar cómodo con la terminal, los archivos YAML y los conceptos de redes. Es más un perfil de DevOps o SRE (Site Reliability Engineer) que de desarrollador puro.

¿Kubernetes y Docker son lo mismo?

No. Docker es la tecnología que crea y ejecuta contenedores individuales. Kubernetes es el sistema que gestiona y coordina grandes grupos de contenedores. Suelen usarse juntos, aunque Kubernetes puede trabajar con otros motores de contenedores.

¿Tiene alguna alternativa?

Sí. Docker Swarm es la alternativa más sencilla, aunque con menos funcionalidades. Nomad de HashiCorp es otra opción popular en ciertos entornos. Sin embargo, Kubernetes es el estándar dominante y la mayoría de la industria apunta hacia él.

¿Por qué se llama K8s?

Es una abreviatura técnica: se coge la K inicial, las 8 letras del medio (ubernete) se sustituyen por el número 8, y se cierra con la s. Una convención habitual en el mundo del software para acortar palabras largas (igual que i18n para internacionalización).

¿Puedo probarlo gratis?

Sí. Puedes instalar Minikube o kind en tu propio ordenador para tener un clúster local de pruebas sin coste. Además, los tres grandes proveedores cloud ofrecen créditos gratuitos para nuevas cuentas con los que puedes experimentar con GKE, EKS o AKS.

¿Y vosotros? 💬 ¿Habéis tenido que pelearse con Kubernetes en vuestros trabajos o proyectos? ¿O estáis todavía en la fase de "suena bien pero no sé por dónde empezar"? ¡Os leo en los comentarios! 👇