Deployments

Un controladordeployment en Kubernetes es un recurso que gestiona y mantiene el ciclo de Deploymentvida proporcionade actualizacionesun declarativasconjunto parade réplicas de un pod de manera declarativa. Es uno de los Podsobjetos más utilizados en Kubernetes, ya que te permite:
-
Desplegar una aplicación: Define qué imagen de contenedor se debe usar, cuántas réplicas deben ejecutarse y
loscómoReplicaSets.deben exponerse. -
Actualizar la aplicación sin tiempo de inactividad: Permite
desplegarhaceraplicacionesrollingconupdatespods(actualizacionesescalablesprogresivas)yde los pods, minimizando la posibilidad de interrupciones. -
Gestionar el estado deseado: Kubernetes se asegura de que
sesiemprereinicienhayaenelcasonúmero decaída.réplicas especificadas corriendo; si un pod falla, automáticamente se crea uno nuevo. -
Rollback: Puedes revertir a una versión anterior si una actualización falla.
Estructura básica de un Deployment
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
labels:
app: web
spec:
replicas: 32
selector:
matchLabels:
app: webmyapp
template:
metadata:
labels:
app: webmyapp
spec:
containers:
- name: frontmyapp-container
image: httpd:latest
ports:
- containerPort: 80
Conceptos clave:
-
replicas: número de instancias de un pod.
-
selector: cómo Kubernetes identifica los pods que pertenecen a este deployment.
-
template: especifica la plantilla de los pods (contenedores, puertos, variables de entorno, etc.).
-
strategy: (opcional) puedes definir estrategias de despliegue como RollingUpdate o Recreate.
# Aplica los cambios
kubectl apply -f myapp.yml
# comprueba
kubectl get all
# Escala el despliegue
kubectl scale --replicas 2 deployment/myapp