Docker no es suficiente: así te ayuda Kubernetes a escalar de verdad

Docker no es suficiente: así te ayuda Kubernetes a escalar de verdad

por Raúl Unzué

Contenedores a lo grande: cómo Kubernetes puede cambiar tu infraestructura

Hoy en día, no se habla de despliegue moderno sin que alguien mencione Kubernetes. Aunque su nombre suene a criatura mitológica griega o a una banda de metal progresivo, lo cierto es que Kubernetes (también conocido como K8s) es uno de los pilares de la infraestructura en la nube moderna.

Pero... ¿Qué es exactamente Kubernetes? ¿Es lo mismo que Docker? ¿Realmente necesitas aprenderlo si ya usas máquinas virtuales? ¿En qué casos se convierte en tu mejor aliado y en cuáles puede jugar en tu contra? Si alguna de estas preguntas ronda por tu cabeza, estás en el sitio correcto.

¿Qué es Kubernetes y de dónde sale?

Kubernetes nació en Google, como evolución de lo que ellos mismos usaban internamente (Borg, un sistema de gestión de cargas de trabajo a escala monstruosa). En 2014 decidieron liberarlo como software de código abierto y desde entonces ha sido adoptado por empresas de todos los tamaños.

En resumen, Kubernetes es un orquestador de contenedores. Te permite desplegar, escalar y gestionar aplicaciones en contenedores (como los creados con Docker) de forma automática, resiliente y eficiente. Imagina tener decenas o cientos de contenedores funcionando y queriendo saber dónde, cuándo y cómo deben ejecutarse… eso es lo que orquesta Kubernetes.

Componentes básicos de Kubernetes

Aunque hay bastantes piezas en Kubernetes, vamos a nombrar las esenciales:

  • Node (nodo): Es una máquina (física o virtual) donde se ejecutan los contenedores.
  • Pod: Es la unidad más pequeña que despliega Kubernetes. Puede tener uno o varios contenedores que comparten red y almacenamiento.
  • Cluster: Conjunto de nodos gestionados como un todo.
  • Master (o control plane): La parte que decide qué pasa y cuándo. Controla el estado de los pods y coordina todo el clúster.
  • Kubelet: Agente que corre en cada nodo para decirle al master “aquí estoy y esto es lo que puedo hacer”.
  • API Server: Puerta de entrada a Kubernetes. Todos los comandos, paneles y herramientas pasan por aquí.
  • Scheduler: Decide en qué nodo se ejecuta cada pod.
  • Controller Manager: Se asegura de que el estado del sistema sea el deseado (por ejemplo, “quiero 3 copias de este servicio”).
  • Etcd: Es la base de datos ligera que guarda el estado de todo el sistema.

Requisitos técnicos: ¿qué necesito para montarlo?

Hardware recomendado (nivel casero o semi-profesional)

  • Másteres: 2 CPUs, 2GB RAM mínimo (recomendado: 4 CPUs y 8GB)
  • Workers: 2 CPUs, 4GB RAM mínimo (ideal 8+ GB RAM por nodo)
  • Almacenamiento: SSD, si vas a usar cosas como volúmenes persistentes (Longhorn, Ceph…)

Geeknetic Docker no es suficiente: así te ayuda Kubernetes a escalar de verdad 1

Software necesario

  • Sistema operativo: Linux (Debian, Ubuntu, CentOS, o distros como Flatcar, Talos, etc.)
  • Container Runtime: containerd, CRI-O o Docker (aunque Docker ha quedado en segundo plano)
  • Herramientas básicas: kubectl, kubeadm o gestores como Rancher o K3s si buscas algo más ligero

Casos de uso comunes

  • Microservicios: Ideal cuando tienes aplicaciones divididas en piezas pequeñas que se comunican entre sí. Un caso práctico sería un Ecommerce o Tienda Online que esté dividida en, por ejemplo, Frontend, Backend, servicios de pago, base de datos o tenga integraciones con IA, y que se enfrente a campañas con gran volumen de usuarios y temporadas más tranquilas.
  • Despliegues CI/CD: Automatiza actualizaciones y rollbacks sin tiempo de inactividad.
  • Alta disponibilidad: Kubernetes puede reiniciar servicios si fallan, distribuir cargas y escalar recursos en segundos.
  • Multicloud: Puedes correr Kubernetes en varios proveedores de nube y mover servicios entre ellos.
  • Entornos de testing y staging: Facilita levantar entornos temporales idénticos a producción.

Cuándo no usar Kubernetes (todavía)

Aunque suene tentador, Kubernetes no es mágico. Aquí unos ejemplos donde podrías pensártelo dos veces:

  • Proyectos pequeños: Si tu app cabe en un solo contenedor y no necesitas escalar ni alta disponibilidad, es matar moscas a cañonazos.
  • Poca experiencia técnica: Tiene una curva de aprendizaje real. Puede ser frustrante al inicio.
  • Entornos con pocos recursos: Aunque existen versiones ligeras (como K3s), K8s consume bastante CPU/RAM incluso sin carga.
  • No hay equipo de Sysadmins/Devops: Mantener un clúster es un trabajo de fondo.

Diferencias a alto nivel entre Kubernetes vs Docker vs Máquinas Virtuales

Hay varios aspectos que hay que tener en cuenta:

  • Kubernetes no reemplaza a Docker: lo usa o se apoya en containerd (el “motor” de Docker). Docker crea y corre contenedores; Kubernetes los orquesta, escala, reinicia y conecta entre sí.
  • Comparado con las máquinas virtuales, Kubernetes gana en eficiencia, pero no ofrece el mismo aislamiento. No sirve para entornos donde necesitas emular hardware, drivers específicos o sistemas operativos completos por usuario.
  • DevOps-friendly: K8s encaja perfecto con infraestructura como código (Terraform, Helm), observabilidad (Prometheus, Grafana) y automatización total (como os mostramos en esta entrada al desplegar un clúster Kubernetes en Hyper-V con PowerShell).

Os agregamos una tabla para que entendáis en detalle las diferencias:

Característica Kubernetes Docker (solo) Máquinas Virtuales
Uso principal Orquestar muchos contenedores Ejecutar apps en contenedores Ejecutar sistemas completos
Virtualización Contenedores (orquestados) Contenedor aislado Virtualización completa (hipervisor)
Peso del sistema Ligero, pero con servicios auxiliares Muy ligero Pesado (RAM y CPU por VM)
Velocidad de arranque Rápida (aunque más que Docker puro) Instantáneo Lenta
Escalado automático Sí (horizontal con HPA) No Limitado, manual
Actualizaciones sin corte Sí (rolling updates, blue-green) No No fácilmente
Casos ideales Microservicios, DevOps, CI/CD Dev/testing, apps simples Sistemas legacy, aislamiento extremo
Seguridad y aislamiento Media-alta (bien configurado) Media Alta (cada VM es un sistema completo)
Redes y almacenamiento Necesita configuración extra (CNI, CSI) Básico, local Complejo, pero integrado

Kubernetes sin miedo

Kubernetes no es la herramienta para todo, pero cuando encaja… encaja como anillo al dedo. Si tienes múltiples servicios, equipos trabajando en paralelo, necesidad de escalar o entornos complejos, es la mejor inversión a futuro que puedes hacer.

Eso sí, no es Plug-and-Play. Requiere conocer bien cómo se comportan los contenedores, saber de redes, almacenamiento y algo de seguridad. Pero si te gusta la infraestructura, vas a disfrutar cada paso del camino.

Y lo mejor, una vez que entiendes K8s, el resto del stack moderno (Prometheus, Istio, Longhorn, Terraform, etc.) empieza a tener sentido y se vuelve hasta divertido.

Fin del Artículo. ¡Cuéntanos algo en los Comentarios!

Temas Relacionados: Virtualización Docker Kubernetes
Redactor del Artículo: Raúl Unzué

Raúl Unzué

Soy un apasionado de la virtualización con más de 20 años de experiencia, especializado en soluciones como VMware(premio vExpert y vExpert Pro desde 2013), Proxmox e Hyper-V. Durante mi carrera, he ayudado a empresas a optimizar sus infraestructuras TI mientras comparto mis conocimientos como redactor IT. Mi objetivo es traducir lo complejo en algo práctico y accesible, combinando teoría con experiencia real. Si te interesa la virtualización, las herramientas TI o simplemente aprender algo nuevo, espero ayudarte con mis artículos.