5.3 · Kubernetes en 20 minutos : Pod, Deployment, Service

Nivel 5 · Orquestación y producción

5.3Kubernetes en 20 minutos : Pod, Deployment, Service

Objetivo: Desplegar una app en un Kubernetes local y alcanzarla.
Tiempo estimado: 15 min · lectura autónoma · Si solo tienes 5 min: lee «Lo esencial en 30s» + el esquema.

Lo esencial en 30 segundos

  • Tres objetos, un principio : el Pod envuelve los contenedores, el Deployment mantiene N Pods idénticos y los actualiza, el Service da una dirección estable delante de Pods intercambiables.
  • Se declara, kubectl aplica : manifiestos en YAML, comando único de aplicación — el clúster mantiene el estado deseado (Pod faltante = Pod recreado).
  • Laboratorio local primero : un solo clúster local basta para aprender — tags de imagen inmutables, nunca bricolaje autohospedado en producción sin equipo.

Mini-caso hilado — Idir toca Kubernetes en local

Idir, devops junior en Alger, quiere entender Kubernetes sin nube ni factura : crea un clúster local en un comando en su máquina, aplica en él un Deployment (3 réplicas) y un Service, alcanza su app en local, luego mata un Pod para ver al Deployment recrearlo. Continuación del caso 5.2 — Idir pasa del stack Swarm al primer despliegue Kubernetes.

Continuación del caso 5.2 — Idir aprende en clúster local antes de toda idea de producción.

1. Tres objetos, un principio

El Pod es la envoltura de uno o varios contenedores co-localizados ; el Deployment mantiene N Pods idénticos y gestiona sus actualizaciones ; el Service da una dirección estable delante de Pods intercambiables que nacen y mueren. Idir retiene la frase : se alcanza lo estable (Service), no lo movedizo (Pods).

Se declara el estado deseado en YAML (réplicas, imagen, selectores, puertos), se aplica con el cliente kubectl, y el clúster mantiene ese estado : es el principio declarativo.

2. El laboratorio local

Sin nube para empezar : un clúster local creado en un comando basta, con kubectl configurado encima. Idir aplica en él sus manifiestos, verifica sus 3 Pods, alcanza el Service en local (redirección de puerto para el dev) — tablero opcional.

En producción real, se apunta a un clúster gestionado : operar uno mismo un clúster exige un equipo. La regla : aprender en local, producir en gestionado.

3. Aplicar, ver, exponer

Aplicar el archivo, listar Pods, Deployments y Services, alcanzar en local. La actualización = cambiar el tag de imagen + reaplicar : rolling update automático con vuelta atrás posible. Idir mata un Pod y observa su resurrección : el orquestador mantiene el estado declarado.

Disciplina de imágenes : tags inmutables en los YAML, nunca tag movedizo en despliegue — si no ya no se sabe qué corre realmente.

Error frecuente de interpretación: «Kubernetes es solo Docker con otra palabra — pongo mi tag movedizo y bricolo el clúster en prod». No. Kubernetes es declarativo : se describe el estado deseado (Deployment, Service) y el clúster lo mantiene — Pods efímeros por un lado, dirección estable por el otro. Un tag movedizo rompe la trazabilidad de las actualizaciones, y un clúster bricolado sin equipo se vuelve inoperable. El buen reflejo : aprender en clúster local, tags inmutables, redirección de puerto para el dev — y producción en gestionado con vuelta atrás probada.
Kubernetes mínimo Declarar, aplicar, mantener Deployment 3 PodsdeseadosPods Efímeros,recreadosService Direcciónestable delante
Declarar, aplicar, mantener
Versión en texto del esquema (SEO / lectores de pantalla / traducción): 1) Deployment : Idir declara en Alger 3 Pods idénticos con un tag de imagen inmutable. 2) Pods : las envolturas corren, mueren y renacen — el controlador mantiene el número deseado. 3) Service : una dirección estable expone el conjunto, alcanzada en local para el dev. Lección : declarar lo deseado, aplicar, dejar que el clúster mantenga — y actualizar por nuevo tag.

🔎 Ejemplo concreto — La app de Idir en 3 réplicas en clúster local

Declarar, aplicar, alcanzar.

kubectl apply -f deploy.yaml
kubectl get pods
kubectl get deploy
kubectl get svc
kubectl port-forward svc/web 8080:80

Lectura : 3 Pods tras una dirección estable, alcance en local.

Lección : matar un Pod lo hace renacer — el estado deseado se mantiene.

Vocabulario de la sección

Pod
La unidad más pequeña : la envoltura efímera de uno o varios contenedores.

Ejemplo sencillo: Idir ve sus Pods nacer, morir y renacer en su clúster local.

Lo que no es: una dirección estable que alcanzar durablemente.

Reflejo: ¿estoy alcanzando un Pod o un Service?

Deployment
El controlador que mantiene N Pods idénticos y gestiona sus actualizaciones.

Ejemplo sencillo: Idir declara 3 réplicas : un Pod matado es recreado.

Lo que no es: un contenedor lanzado a mano sin controlador.

Reflejo: ¿cuántas réplicas he declarado?

Service
La dirección estable delante de Pods intercambiables.

Ejemplo sencillo: Idir alcanza el Service, no los Pods movedizos.

Lo que no es: la dirección directa de un Pod efímero.

Reflejo: ¿qué queda estable cuando los Pods se mueven?

kubectl
El cliente en línea de comando que pilota el clúster.

Ejemplo sencillo: Idir aplica, lista e inspecciona con kubectl.

Lo que no es: una acción manual en cada contenedor.

Reflejo: ¿mi kubectl apunta al clúster correcto?

Tag inmutable
Una etiqueta de imagen fija que designa exactamente una versión.

Ejemplo sencillo: Idir actualiza cambiando de tag y reaplicando.

Lo que no es: un tag movedizo que cambia de contenido sin avisar.

Reflejo: ¿sé exactamente qué versión corre?

En la práctica — Kubernetes en local

  1. Cree un clúster local (un comando).
  2. Aplique el Deployment + Service del modelo siguiente.
  3. Verifique los 3 Pods, alcance vía redirección de puerto.
  4. Mate un Pod y observe su resurrección.
Toca con el dedo la autorreparación de Kubernetes.

Guion listo para decir — proponer el laboratorio Kubernetes

«Para entender Kubernetes sin riesgo, propongo un laboratorio local en Alger : un clúster en mi máquina, un Deployment a 3 réplicas con tag inmutable, un Service alcanzado en local. Veremos la autorreparación matando un Pod — ninguna producción tocada, ninguna factura cloud.»

Para decir al referente para validar el aprendizaje en local antes de todo proyecto clúster.

Modelo copiar-pegar — Deployment + Service genéricos

K8S GENÉRICO — archivo deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: web
          image: mon-registre/mon-app:stable
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  selector:
    app: web
  ports:
    - port: 80
COMANDOS : kubectl apply -f deploy.yaml · kubectl get pods · kubectl port-forward svc/web 8080:80

Solo / presupuesto reducido

Idir solo : un clúster local gratuito basta — 3 réplicas, alcance local.

TPE / equipo reducido

Demo compartida : uno mata un Pod, el otro constata la resurrección.

PYME en Alger

Idir fija en Alger un taller : cada uno aplica el manifest en su puesto.

Equipo que empieza

Binomio : uno escribe el YAML, el otro verifica selectores y tags antes del apply.

✓ Buenas prácticas

  • Aprenda en clúster local, produzca en gestionado.
  • Tags de imagen inmutables en los YAML.
  • Redirección de puerto para el dev, exposición real en producción.

✗ Errores frecuentes

  • Tag movedizo en un Deployment (ya no se sabe qué corre).
  • Clúster bricolado en prod sin equipo para operarlo.
  • Confundir Pod efímero y Service estable.

Puntos clave

  • Pod = envoltura efímera, Deployment = réplicas, Service = dirección estable.
  • Se declara en YAML, kubectl aplica, el clúster mantiene.
  • La actualización = nuevo tag + reaplicación, vuelta atrás posible.
  • Aprender en local, tags inmutables, producción en gestionado.

Reto 48h — aplique mañana

Aplique el Deployment + Service genérico (modelo anterior) en un clúster local : 3 Pods visibles, alcance local OK, resurrección tras eliminar un Pod.

Lista de salida de la sección
  • Puedo describir Pod, Deployment y Service en una frase cada uno.
  • Mi despliegue local muestra 3 Pods tras un Service.
  • Sé actualizar por nuevo tag + reaplicación.
Autoevaluación 1-5 : ¿puedo explicar la autorreparación?¿mis tags de imagen son inmutables?

Preguntas frecuentes

¿Hay que migrar todo a Kubernetes tras esta guía?

No : este nivel da las claves para entender y decidir. Muchas apps siguen muy bien en Compose o Swarm — Kubernetes solo renta si el parque, los equipos y las exigencias (autoescalado, multi-equipos) lo justifican.

¿Por qué certificación empezar tras esta guía?

De forma genérica : primero una certificación centrada en Docker que corona esta guía (imágenes, redes, volúmenes, Compose, Swarm, seguridad), luego una certificación Kubernetes si Kubernetes es su objetivo. Ambas se preparan con labs prácticos, no de memoria.

Comprueba tu comprensión

Un Pod muere. ¿Qué hace el Deployment?

Recursos adicionales (opcional, para ir más allá)

Examen del nivel 5Preguntas inéditas y más difíciles para validar tus conocimientos