Programación · DevOps · orquestación
¿Qué es Kubernetes?
Una vez que empaquetas una app en un contenedor, surge un nuevo problema: quién lo arranca, lo reinicia cuando falla, ejecuta más copias bajo carga y los conecta a todos — ¿en decenas de máquinas? Ese trabajo es la orquestación, y Kubernetes es el sistema que la mayoría de los equipos usan para ello. Esta guía explica qué es Kubernetes, los conceptos que importan, su relación con Docker, y cuándo lo necesitas de verdad.
La definición corta
Kubernetes es una plataforma de código abierto para ejecutar y coordinar contenedores en un grupo de máquinas. Le dices el estado deseado — «ejecuta cinco copias de esta app, mantenlas sanas, exponlas en esta dirección» — y Kubernetes trabaja sin parar para que la realidad coincida: coloca contenedores en las máquinas, reinicia los que fallan, ajusta la escala y enruta el tráfico hacia ellos. Suele abreviarse como K8s (K, ocho letras, s).
El problema que resuelve
Ejecutar un contenedor a mano es fácil. Ejecutar cientos, de forma fiable, no lo es. Las máquinas fallan, el tráfico se dispara, hay que desplegar nuevas versiones sin cortes y los contenedores deben encontrarse y hablar entre sí. Hacer todo eso manualmente es propenso a errores y no duerme. Kubernetes lo convierte en un sistema declarativo: describes lo que quieres y el bucle de control de la plataforma lo hace cumplir sin cesar — reemplazando un contenedor caído o reprogramando el trabajo fuera de una máquina muerta, sin despertar a un ingeniero a las 3 de la madrugada.

Los conceptos clave
- Clúster — todo el sistema: un conjunto de máquinas que Kubernetes gestiona como una sola. Tiene un plano de control (el cerebro que decide) y nodos de trabajo (donde tus contenedores se ejecutan de verdad).
- Nodo — una sola máquina (física o virtual) del clúster que ejecuta contenedores.
- Pod — la unidad más pequeña que Kubernetes ejecuta: uno o más contenedores estrechamente acoplados que comparten almacenamiento y una dirección de red. Normalmente ejecutas muchos pods idénticos de una app.
- Despliegue — una declaración del estado deseado para tus pods: qué imagen, cuántas réplicas y cómo desplegar las actualizaciones. Kubernetes hace que el estado real coincida.
- Servicio — una dirección de red estable y un balanceador de carga para un conjunto de pods, para que otras partes del sistema los alcancen aunque los pods individuales vayan y vengan.
Cómo funciona, en breve
Envías una descripción de lo que quieres — normalmente un archivo YAML que define un despliegue y un servicio. El plano de control registra ese estado deseado y programa los pods en nodos con espacio. Luego un bucle de control compara constantemente el estado deseado con el real: si un pod muere o un nodo falla, Kubernetes lo nota y recrea los pods que faltan en otro sitio. El escalado sigue la misma idea — cambia «5 réplicas» a «20» y el programador llena el hueco. Este modelo declarativo y autorreparador es el corazón de por qué se confía en Kubernetes en producción.
Kubernetes vs Docker
Son complementarios, no rivales. Docker construye y ejecuta un contenedor individual en una máquina. Kubernetes orquesta muchos contenedores en muchas máquinas — los programa, los escala, los repara y los conecta. Docker empaqueta y ejecuta un contenedor; Kubernetes gestiona una flota. Kubernetes ejecuta contenedores construidos según los estándares abiertos que Docker popularizó: ambos ocupan capas distintas de la misma pila en lugar de competir.
¿Lo necesitas de verdad?
Honestamente, a menudo no — al menos todavía no. Kubernetes brilla cuando ejecutas muchos servicios, necesitas alta disponibilidad y tienes el equipo para operarlo. Para una sola app o un proyecto pequeño suele ser excesivo: un único servidor, un servicio de contenedores gestionado o una plataforma-as-a-service será más simple y barato. El coste de Kubernetes es complejidad real — red, almacenamiento, seguridad y actualizaciones exigen experiencia. Adóptalo cuando la escala justifique el sobrecoste, no por moda.
Gestionado vs autoalojado
Puedes ejecutar Kubernetes tú mismo, pero la mayoría de los equipos usan un servicio gestionado en el que un proveedor cloud opera el plano de control por ti, de modo que solo gestionas tus cargas de trabajo. Eso elimina gran parte de la carga operativa y es la opción por defecto sensata para la mayoría de proyectos que realmente necesitan orquestación.
Un sitio donde ejecutar tus contenedores
Kubernetes (y Docker) necesitan máquinas en las que ejecutarse. Un VPS o servidor cloud te da el control total del runtime para desplegar contenedores, un clúster o una sola app. Infomaniak — un proveedor suizo que respeta la privacidad — ofrece VPS y servidores cloud para exactamente esto.
Ver Infomaniak Cloud →Enlace de afiliado — apoya estas guías gratuitas.
Los contenedores suelen exponer una API y hablan entre sí mediante protocolos como gRPC o REST. Explora más explicaciones claras en nuestro índice de guías.
Preguntas frecuentes
¿Qué es Kubernetes en términos simples?
Kubernetes es un software que ejecuta y gestiona contenedores en un grupo de máquinas por ti. Describes el estado que quieres — cuántas copias de una app ejecutar y cómo alcanzarlas — y Kubernetes mantiene la realidad conforme, reiniciando los contenedores que fallan, escalándolos y enrutando el tráfico automáticamente.
¿Cuál es la diferencia entre Docker y Kubernetes?
Docker construye y ejecuta un contenedor individual en una máquina. Kubernetes orquesta muchos contenedores en muchas máquinas — programación, escalado, reinicio y red. Docker gestiona un solo contenedor; Kubernetes gestiona una flota. Son complementarios: Kubernetes ejecuta contenedores construidos según los estándares que Docker popularizó.
¿Qué es un pod en Kubernetes?
Un pod es la unidad más pequeña que Kubernetes ejecuta: uno o más contenedores estrechamente relacionados que comparten almacenamiento y una dirección de red. Las aplicaciones suelen ejecutarse como muchos pods idénticos, que Kubernetes puede escalar y reemplazar automáticamente si uno falla.
¿Necesito Kubernetes para un proyecto pequeño?
Normalmente no. Kubernetes está pensado para ejecutar muchos servicios a escala con alta disponibilidad y añade una complejidad operativa real. Para una sola app o un proyecto pequeño, un único servidor, un servicio de contenedores gestionado o una plataforma-as-a-service es más simple y barato.