Sobes.tech
Junior

¿Cuál es la diferencia entre Pod y Deployment en Kubernetes?

sobes.tech AI

Respuesta de la IA

Pod — la unidad escalable más pequeña en Kubernetes, que representa un grupo de uno o varios contenedores con recursos compartidos (red, almacenamiento). Deployment — es un controlador que gestiona la vida útil de los Pods, asegurando su estado declarado, escalado, actualizaciones y retrocesos.

Diferencias principales:

Característica Pod Deployment
Gestionabilidad Unidad primitiva, no se recupera automáticamente Controlador que gestiona múltiples Pods
Tolerancia a fallos Baja (se pierde el Pod si falla el nodo) Alta (reinicia automáticamente los Pods)
Escalado Manual, uno por uno Escala fácilmente mediante réplicas
Actualizaciones Sin mecanismos integrados Soporta estrategias Rolling Update, Recreate
Uso Para casos simples, depuración Para aplicaciones en producción, microservicios

Deployment crea un ReplicaSet, que a su vez gestiona la cantidad deseada de réplicas de Pods. Esto garantiza la fiabilidad y disponibilidad de la aplicación.

Ejemplo YAML para Pod:

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx

Ejemplo YAML para Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3 # Define la cantidad deseada de réplicas de Pods
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: nginx

En resumen, Pod es simplemente una "caja" para contenedores, y Deployment es un "gestor" que supervisa esas "cajas" para que tengan la cantidad necesaria y funcionen de manera estable.