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.