Skip to main content

Deployments

image.png

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:

  1. Desplegar una aplicación: Define qué imagen de contenedor se debe usar, cuántas réplicas deben ejecutarse y loscómo ReplicaSets.deben exponerse.

  2. Actualizar la aplicación sin tiempo de inactividad: Permite desplegarhacer aplicacionesrolling conupdates pods(actualizaciones escalablesprogresivas) yde los pods, minimizando la posibilidad de interrupciones.

  3. Gestionar el estado deseado: Kubernetes se asegura de que sesiempre reinicienhaya enel casonúmero de caída.réplicas especificadas corriendo; si un pod falla, automáticamente se crea uno nuevo.

  4. 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