¿Qué es Kubernetes?
También llamado: K8s, orquestación de contenedores
Definición
Kubernetes es un sistema que gestiona contenedores en un grupo de servidores: decide dónde se ejecuta cada uno, los reinicia si fallan, reparte el tráfico entre ellos y los multiplica cuando hay más carga.
Docker ejecuta contenedores en una máquina. Cuando tienes decenas de servicios repartidos en varios servidores, necesitas algo que los coordine: eso es un orquestador, y Kubernetes es el estándar de facto.
Ejemplo
Se describe el estado deseado en YAML y Kubernetes se encarga de que se cumpla:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
replicas: 3 # quiero 3 copias funcionando siempre
selector:
matchLabels: { app: web }
template:
metadata:
labels: { app: web }
spec:
containers:
- name: web
image: registry.example.com/web:1.4.2
ports: [{ containerPort: 3000 }]
$ kubectl apply -f web.yaml
$ kubectl get pods
NAME READY STATUS RESTARTS
web-7c9f8d6b5-2xkqp 1/1 Running 0
web-7c9f8d6b5-9mzlt 1/1 Running 0
web-7c9f8d6b5-tq4vn 1/1 Running 0
Si uno de los servidores cae, Kubernetes vuelve a crear sus contenedores en otro.
Conceptos clave
| Concepto | Qué es |
|---|---|
| Pod | Uno o varios contenedores que se ejecutan juntos |
| Deployment | Cuántas copias de un pod quieres y cómo actualizarlas |
| Service | Una dirección estable que reparte el tráfico entre los pods |
| Ingress | La entrada HTTP desde fuera, con dominios y certificados |
| Node | Cada servidor del clúster |
¿Lo necesito?
Probablemente no, al principio. Kubernetes añade mucha complejidad. Para una web o unas pocas aplicaciones, un VPS con Docker Compose es más sencillo y barato. Tiene sentido cuando hay muchos servicios, equipos y necesidades reales de escalado y alta disponibilidad; e incluso entonces, mejor un Kubernetes gestionado por un proveedor cloud.
¿Tienes un producto o servicio relacionado con Kubernetes? Anúnciate en este término.
Términos relacionados
- DockerDocker es una herramienta para empaquetar una aplicación con todo lo que necesita (código,...
- EscalabilidadLa escalabilidad es la capacidad de un sistema para atender más carga (más visitas,...
- Balanceador de cargaUn balanceador de carga reparte las peticiones de los usuarios entre varios servidores para...
- Infraestructura como códigoLa infraestructura como código (IaC) consiste en describir servidores, redes, DNS y demás recursos...
- Hosting cloudEl hosting cloud es alojamiento que se ejecuta sobre un conjunto de servidores en...
Categorías: DevOps