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
Para ver las etiquetas del deployment
kubectl get deployment --show-labels
kubectl rollout status deployment <nombredeployment>
kubectl rollout history deployment <nombredeployment>
kubectl rollout undo deployment <nombredeployment> --to-revision=<nºrevision>
kubectl scale deployments <nombredeployment> --replicas=3