🚀 Deploy
Un Deployment es la forma estándar de poner una aplicación a funcionar en el clúster. Usted indica qué imagen usar y cuántas copias (réplicas) quiere, y Kubernetes crea los pods y los mantiene funcionando: si un pod cae, crea otro.
Deployment -> ReplicaSet -> Pods
El deploy se realiza con kubectl. El Panel Nuvion se encarga del clúster, pero no crea aplicaciones dentro de él.
🚀 Antes de comenzar
- Tener el acceso al clúster configurado (vea Acceso al Clúster).
🚀 1. Crear el archivo del Deployment
Cree el archivo deploy-web.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-deploy
spec:
replicas: 2
selector:
matchLabels:
app: web-deploy
template:
metadata:
labels:
app: web-deploy
spec:
containers:
- name: nginx
image: nginx:1.26
ports:
- containerPort: 80
resources:
requests:
cpu: 100m
memory: 64Mi
limits:
cpu: 250m
memory: 128Mi
readinessProbe:
httpGet:
path: /
port: 80
Qué hace cada parte:
| Campo | Función |
|---|---|
replicas | Cuántos pods mantener funcionando |
image | La imagen (y la versión) del contenedor |
requests | El mínimo de recursos que el pod necesita |
limits | El máximo de recursos que el pod puede usar |
readinessProbe | Solo envía tráfico al pod después de que responde |
🚀 2. Aplicar
kubectl apply -f deploy-web.yaml
Salida esperada: deployment.apps/web-deploy created
🚀 3. Verificar
kubectl get deployment web-deploy
kubectl get pods -l app=web-deploy
Espere a que la columna READY muestre 2/2 y los pods estén Running.
🚀 4. Ver la recreación automática
Elimine uno de los pods y observe:
kubectl delete pod NOMBRE-DE-UNO-DE-LOS-PODS
kubectl get pods -l app=web-deploy
Kubernetes crea un pod nuevo para mantener 2 réplicas.
🚀 5. Exponer la aplicación
Para acceder al Deployment, cree un Service (vea la página Services):
kubectl expose deployment web-deploy --name=web-deploy-svc --port=80
✅ Cómo saber si funcionó
kubectl get deployment web-deploy muestra READY 2/2 y AVAILABLE 2.
❗ Problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
READY 0/2 | Los pods no iniciaron | Vea kubectl describe pod y Events |
ImagePullBackOff | La imagen o versión no existe | Verifique el nombre y el tag en image |
selector does not match template labels | matchLabels distinto de labels | Use la misma etiqueta en ambos |
Pods Pending | Sin recursos en los nodes | Reduzca requests o aumente la capacidad (Scale) |
🧹 Limpieza
Mantenga el Deployment para las próximas páginas de Operaciones. Cuando termine:
kubectl delete svc web-deploy-svc
kubectl delete deployment web-deploy
➡️ Próximo paso: Scale
🧠 ¿Dudas?
¡Hable con nuestro equipo de soporte técnico de SaveinCloud!