¿Qué es Kubernetes y cuándo tiene sentido usarlo?
Kubernetes es la herramienta de orquestación de contenedores más popular del mundo. Pero no todos los proyectos lo necesitan. Esta guía te ayuda a decidir.
¿Qué es Kubernetes?
Kubernetes (K8s) es un sistema de orquestación de contenedores open-source creado por Google. Automatiza el despliegue, escalado y gestión de aplicaciones containerizadas. Maneja dónde corren tus contenedores, los reinicia si fallan, y escala según demanda.
¿Cómo funciona?
Un cluster K8s tiene nodos master (control plane) y nodos worker (donde corren las apps). Definís el estado deseado en archivos YAML (deployments, services, ingress) y Kubernetes se encarga de mantener ese estado automáticamente.
¿Cuándo SÍ usar Kubernetes?
Cuando tenés múltiples microservicios que necesitan comunicarse, cuando necesitás auto-scaling basado en carga, cuando desplegás en múltiples regiones, cuando tu equipo es grande y necesita despliegues independientes, o cuando necesitás zero-downtime deployments.
¿Cuándo NO usar Kubernetes?
Para un monolito simple, para proyectos con 1-3 servicios, cuando tu equipo es pequeño (1-3 devs), cuando no tenés experiencia en contenedores, o cuando Docker Compose resuelve tu problema. K8s agrega complejidad operativa significativa.
Alternativas más simples
Docker Compose para desarrollo y proyectos pequeños, Docker Swarm para orquestación básica, servicios managed como Railway/Render/Fly.io para despliegues simples, o un VPS con Docker y un reverse proxy (Traefik/Nginx).
Kubernetes managed vs self-hosted
Self-hosted en bare metal te da control total pero requiere expertise. Servicios managed (EKS, GKE, AKS) simplifican la operación pero cuestan más. Para la mayoría de equipos, managed es la opción correcta si realmente necesitan K8s.