===== 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
== Revisiones ==
kubectl rollout history deployment
por defecto Kubernetes guarda 10 revisiones
== Volver a una revisisión anterior (Roll back) ==
kubectl rollout undo deployment --to-revision=
== Escalar un deployment ==
kubectl scale deployments --replicas=3
==== Referencias ====
* https://kubernetes.io/es/docs/concepts/workloads/controllers/deployment/