Glossan

¿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

Categorías: DevOps