Contenido

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

AspectoDockerKubernetes
Rol principalConstruir y ejecutar contenedoresOrquestar y gestionar contenedores a escala
Unidad de trabajoContenedor individualPod (uno o más contenedores)
EscaladoManual, en un solo hostAutomático, en múltiples nodos
Self-healingNo tieneReinicia y reemplaza contenedores caídos
NetworkingRed local del hostRed de cluster con DNS y balanceo de carga
UpdatesManualRolling updates automáticos con rollback
ConfiguraciónDockerfile, docker-compose.ymlManifiestos 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.

Arquitectura de Docker

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).
Arquitectura de Kubernetes

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:

ProveedorServicioNotas
Amazon Web ServicesEKS (Elastic Kubernetes Service)El más usado en el mercado
Google CloudGKE (Google Kubernetes Engine)El más maduro, creado por los inventores de K8s
Microsoft AzureAKS (Azure Kubernetes Service)Control plane gratis, integración con el ecosistema Microsoft
Oracle CloudOKE (Oracle Kubernetes Engine)Buena opción enterprise
DigitalOceanDOKSSimple y amigable para desarrolladores
Alibaba CloudACKFuerte presencia en Asia-Pacífico
Red HatOpenShiftEnterprise-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 orbstack

2. Instalar kubectl y Kind

brew install kubectl kind

3. Crear el cluster

kind create cluster --name mi-cluster

Esto 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: worker

Y luego:

kind create cluster --name mi-cluster --config kind-config.yaml

4. 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 namespaces

En 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-cli

O descárgalo directamente:

curl.exe -LO "https://dl.k8s.io/release/v1.35.2/bin/windows/amd64/kubectl.exe"

3. Instalar Kind

choco install kind

O 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.exe

4. Crear el cluster

kind create cluster --name mi-cluster

5. Verificar

kubectl get nodes
kubectl version
kubectl get namespaces

Nota 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
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
kubectl get namespaces

Namespaces por defecto en un cluster Kubernetes

Versión de Kubernetes

kubectl version
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!