@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

Inicio - Kubernetes - Kubernetes: RollingUpdate y RollBacks de Contenedores
kubernetes-rollingupdate-rollback-de-contenedores-2

Kubernetes: RollingUpdate y RollBacks de Contenedores

Kubernetes: RollingUpdate y RollBacks de Contenedores

Una de las mayores ventajas que veo al usar Kubernetes, es la facilidad de hacer despliegues de nuevas versiones de aplicaciones (Updates) y poder volver a atrás (Rollbacks) relativamente rápido si hay un problema.

Lo vamos a explicar con un despliegue clásico a través de un Deployment de Nginx. Imaginaros que tenéis corriendo un contenedor Nginx. Generamos un contenedor mediante un Deployment que se llama “nginx”:

raulunzue@KBMASTER:~$ kubectl create deployment nginx --image=nginx:1.17.9
deployment.apps/nginx created

Revisamos en el propio contenedor que la versión es la adecuada:

raulunzue@KBMASTER:~$ kubectl exec -it nginx-5c95c56f6f-h4767 -- /bin/bash
root@nginx01-nginx-5c95c56f6f-h4767:/# nginx -v
nginx version: nginx/1.17.9

Ahora vamos a forzar un update a la versión 1.17.10:

raulunzue@KBMASTER:~$ kubectl set image deploy nginx nginx=nginx:1.17.10 --record
deployment.apps/nginx image updated

Si observamos el comportamiento, la versión antigua del contenedor, se muere y arranca un nuevo contenedor con la nueva versión:

raulunzue@KBMASTER:~$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-5c95c56f6f-h4767 1/1 Terminating 0 3m3s 10.69.2.132 kubernetes02
nginx-5df596bbf9-rmrx9 1/1 Running 0 14s 10.69.5.63 kubernetes01

Comprobamos la versión nuevamente, pero del nuevo contenedor:

raulunzue@KBMASTER:~$ kubectl exec -it nginx-5df596bbf9-rmrx9 -- /bin/bash
root@nginx01-nginx-5df596bbf9-rmrx9:/# nginx -v
nginx version: nginx/1.17.10

Si queremos volver a la versión anterior, podemos consultar el histórico mediante:

raulunzue@KBMASTER:~$ kubectl rollout history deployment nginx
deployment.apps/nginx
REVISION CHANGE-CAUSE
1
2 kubectl set image deploy nginx nginx=nginx:1.17.10 --record=true

kubernetes-rollingupdate-rollback-de-contenedores-1

Observaremos al hacer el rollback con el siguiente comando, que el proceso es a la inversa, se termina el nuevo contenedor y se ejecuta otro con la versión antigua:

raulunzue@KBMASTER:~$ kubectl rollout undo deployment nginx --to-revision=1
deployment.apps/nginx rolled back

kubernetes-rollingupdate-rollback-de-contenedores-2

Volvemos a comprobar la versión de Nginx:

raulunzue@KBMASTER:~$ kubectl exec -it nginx-5c95c56f6f-8rd49 -- /bin/bash
root@nginx-5c95c56f6f-8rd49:/# nginx -v
nginx version: nginx/1.17.9

Si os parece interesante, el poder es que lo podéis hacer con otros objetos como deployments, daemonset…

Espero os parezca interesante…

¿Te ha gustado la entrada SÍGUENOS EN TWITTER?

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

comandos-basicos-ansible

Ansible: Comandos básicos

Ansible: Comandos básicos En otras entradas ya os hemos explicado como configurar o instalar Ansible, …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

2 × dos =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu