Kubernetes: Qué es, para qué sirve y cómo montar tu primer cluster local

Actualizado en marzo 2026: Este artículo ha sido revisado para reflejar los cambios más recientes en Kubernetes v1.35, incluyendo la transición de Ingress a Gateway API y actualizaciones en el ecosistema.
¿Qué es Kubernetes?
Imagínate que tienes una app que funciona perfecto en tu máquina dentro de un contenedor Docker. Todo bien, ¿verdad? Ahora imagina que esa app necesita correr en 10, 50 o 500 copias porque tienes miles de usuarios. ¿Quién se encarga de levantar todas esas copias, repartir el tráfico, reiniciar las que se caigan y actualizar sin downtime? Ahí es donde entra Kubernetes (o como le dicen los amigos: K8s).
Kubernetes es un orquestador de contenedores open source, creado originalmente por Google y ahora mantenido por la Cloud Native Computing Foundation (CNCF). Piensa en él como un director de orquesta: cada contenedor es un músico, y Kubernetes se asegura de que todos toquen en armonía, en el momento correcto y sin que nadie se quede callado.
¿Para qué sirve realmente?
Te lo pongo así de simple. Kubernetes te permite:
- Escalar automáticamente tu app cuando hay más tráfico (y reducir cuando baja).
- Self-healing: si un contenedor se muere, Kubernetes lo detecta y levanta uno nuevo automáticamente.
- Rolling updates: actualizar tu app sin que los usuarios noten downtime.
- Balanceo de carga: repartir el tráfico entre las copias de tu app.
- Gestión declarativa: defines en un YAML cómo quieres que se vea tu infraestructura, y K8s se encarga de hacerlo realidad.
- Service discovery: tus servicios se encuentran entre sí sin que tú tengas que configurar IPs manualmente.
En resumen: Kubernetes convierte un montón de máquinas en una sola plataforma donde desplegar y gestionar tus apps de forma confiable.
Docker vs Kubernetes: ¿No son lo mismo?
Esta es la confusión más común cuando empiezas. La respuesta corta: no, son complementarios. Es como comparar un ladrillo con un arquitecto: Docker construye el ladrillo (el contenedor), y Kubernetes es el arquitecto que diseña y gestiona el edificio completo.
Diferencias clave
| Aspecto | Docker | Kubernetes |
|---|---|---|
| Rol principal | Construir y ejecutar contenedores | Orquestar y gestionar contenedores a escala |
| Unidad de trabajo | Contenedor individual | Pod (uno o más contenedores) |
| Escalado | Manual, en un solo host | Automático, en múltiples nodos |
| Self-healing | No tiene | Reinicia y reemplaza contenedores caídos |
| Networking | Red local del host | Red de cluster con DNS y balanceo de carga |
| Updates | Manual | Rolling updates automáticos con rollback |
| Configuración | Dockerfile, docker-compose.yml | Manifiestos YAML (Deployments, Services, Gateway API, etc.) |
Arquitectura de Docker
Docker tiene una arquitectura simple: un cliente (CLI) que habla con un daemon (dockerd) en una sola máquina.

Docker: Cliente → Daemon → Contenedores en un solo host
Arquitectura de Kubernetes
Kubernetes es un sistema distribuido con dos tipos de componentes:
Control Plane (el cerebro):
- API Server: la puerta de entrada, todo pasa por aquí.
- etcd: la base de datos del cluster (almacena todo el estado).
- Scheduler: decide en qué nodo correr cada pod.
- Controller Manager: se asegura de que el estado real coincida con el deseado.
Worker Nodes (los músculos):
- kubelet: el agente en cada nodo que ejecuta los pods.
- kube-proxy: maneja las reglas de red.
- Container Runtime: el motor que corre los contenedores (containerd, CRI-O).

Kubernetes: Control Plane + Worker Nodes = cluster distribuido
¿Quién ofrece Kubernetes en la nube?
Si no quieres administrar el cluster tú mismo, los proveedores cloud ofrecen Kubernetes gestionado (managed). Esto significa que ellos se encargan del Control Plane y tú solo te preocupas por tus apps:
| Proveedor | Servicio | Notas |
|---|---|---|
| Amazon Web Services | EKS (Elastic Kubernetes Service) | El más usado en el mercado |
| Google Cloud | GKE (Google Kubernetes Engine) | El más maduro, creado por los inventores de K8s |
| Microsoft Azure | AKS (Azure Kubernetes Service) | Control plane gratis, integración con el ecosistema Microsoft |
| Oracle Cloud | OKE (Oracle Kubernetes Engine) | Buena opción enterprise |
| DigitalOcean | DOKS | Simple y amigable para desarrolladores |
| Alibaba Cloud | ACK | Fuerte presencia en Asia-Pacífico |
| Red Hat | OpenShift | Enterprise-grade, híbrido y multi-cloud |
Tip: Si estás empezando, GKE tiene un tier gratuito bastante generoso para experimentar. AKS también es buena opción porque el control plane es gratis.
Montando tu primer cluster local
Antes de gastar dinero en la nube, lo mejor es practicar en tu máquina. Vamos a crear un cluster con Kind (Kubernetes in Docker), que es una herramienta que levanta clusters de K8s usando contenedores Docker como nodos.
Requisitos previos
- Docker corriendo (o OrbStack en macOS, que es mucho más ligero).
- kubectl instalado (la CLI para interactuar con Kubernetes).
- Kind instalado.
En macOS (con OrbStack + Kind)
OrbStack es una alternativa ultraligera a Docker Desktop en macOS. Consume menos RAM, arranca más rápido y tiene integración nativa con Kubernetes. Es mi recomendación para desarrollo en Mac.
1. Instalar OrbStack
Descárgalo desde orbstack.dev o con Homebrew:
brew install orbstack2. Instalar kubectl y Kind
brew install kubectl kind3. Crear el cluster
kind create cluster --name mi-clusterEsto crea un cluster de un solo nodo. Si quieres algo más realista con múltiples nodos, crea un archivo de configuración:
# kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: workerY luego:
kind create cluster --name mi-cluster --config kind-config.yaml4. Verificar que todo funciona
# Ver los nodos del cluster
kubectl get nodes
# Ver la versión de Kubernetes
kubectl version
# Ver los namespaces
kubectl get namespacesEn Windows (con Docker Desktop + Kind)
Si estás en Windows, la ruta es un poco diferente pero igual de sencilla.
1. Instalar Docker Desktop
Descarga Docker Desktop e instálalo. Asegúrate de habilitar WSL2 como backend durante la instalación.
2. Instalar kubectl
Abre PowerShell como administrador:
choco install kubernetes-cliO descárgalo directamente:
curl.exe -LO "https://dl.k8s.io/release/v1.35.2/bin/windows/amd64/kubectl.exe"3. Instalar Kind
choco install kindO descarga manual:
curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.31.0/kind-windows-amd64
Move-Item .\kind-windows-amd64.exe C:\Windows\kind.exe4. Crear el cluster
kind create cluster --name mi-cluster5. Verificar
kubectl get nodes
kubectl version
kubectl get namespacesNota para Windows: Si usas WSL2, puedes seguir exactamente las mismas instrucciones de macOS/Linux dentro de tu terminal WSL2. Es la opción que te recomiendo para tener una experiencia más cercana a producción.
Viendo nuestro cluster en acción
Una vez creado el cluster, vamos a verificar que todo está en orden.
Nodos del cluster
kubectl get nodes
Listado de nodos del cluster Kind
Namespaces
Los namespaces son como “carpetas” dentro de tu cluster para organizar recursos. Kubernetes crea varios por defecto:
kubectl get namespaces
Namespaces por defecto en un cluster Kubernetes
Versión de Kubernetes
kubectl version
Versión del cliente y del servidor Kubernetes
Resumen
Vamos a recapitular lo que aprendimos:
- Kubernetes es un orquestador de contenedores que gestiona tus apps a escala.
- Docker y Kubernetes son complementarios: Docker construye contenedores, Kubernetes los orquesta.
- Los proveedores cloud ofrecen Kubernetes gestionado (EKS, GKE, AKS) para que no tengas que administrar el cluster.
- Con Kind + OrbStack (macOS) o Kind + Docker Desktop (Windows) puedes tener un cluster local en minutos para practicar.
Nota: Este post es la base para toda la serie de Kubernetes. Asegúrate de tener Docker (u OrbStack), kubectl y Kind instalados antes de continuar con los siguientes capítulos.
En el próximo post vamos a ir más allá: desplegaremos una aplicación real en nuestro cluster y aprenderemos sobre Deployments, Services y todo lo que necesitas para poner tu primera app en Kubernetes. ¡Nos vemos!
¿Te gustó este artículo? Compártelo con alguien que esté empezando con Kubernetes. Y si tienes dudas, ¡déjame un comentario!