meta data de esta página

Deployment

https://kubernetes.io/es/docs/concepts/workloads/controllers/deployment/

Un Deployment se utiliza para que se encargue de cambiar el estado actual al estado deseado de forma controlada.

Por ejemplo, podemos definir un Deployments para crear nuevos ReplicaSets, o eliminar Deployments existentes y adoptar todos sus recursos con nuevos Deployments.

Entre otras cosas podremos llevar un control de nuestros despliegues y podamos cambiar de versión o volver a una versión anterior de forma fácil ( rollouts/rollbacks de nuestros pods. )

Ejemplo

apiVersion: apps/v1
kind: Deployment                                              #Indicamos que es un Deployment
metadata:
  name: deployment-test                                  #nombre del deployment
  labels:
    app: front                                                        #label que utiliza el deployment para encontrar los pods
spec:
  replicas: 3                                                           #número de réplicas
  selector:
    matchLabels:
      app: front                                                       #definimos la label para el replicaset
  template:
    metadata:
      labels:
        app: front                                                      #definimos la label para los pods
    spec:                                                                     #definimos el pod
      containers: 
      - name: nginx
        image: nginx:alpine
   

Comandos relacionados

Para ver las etiquetas del deployment

kubectl get deployment --show-labels

Estado del Deployment

kubectl rollout status deployment <nombredeployment>

Revisiones

kubectl rollout history deployment  <nombredeployment>

por defecto Kubernetes guarda 10 revisiones
Volver a una revisisión anterior (Roll back)

kubectl rollout undo deployment  <nombredeployment> --to-revision=<nºrevision>

Escalar un deployment

kubectl scale deployments <nombredeployment> --replicas=3

Referencias