DevOps

Cómo desplegar una aplicación en Kubernetes

En este tutorial vemos paso a paso cómo desplegar una aplicación en Kubernetes hacer cambios en Pods y cambios en calientes.

Publicado el 27 de Junio de 2018
Compartir

En este pequeño vídeo práctico vamos a enseñar como desplegar una aplicación en Kubernetes.

Durante este video vamos a realizar varias acciones:

  1. Un pequeño despliegue, a través de un fichero de definición.
  2. Cambios en los Pod, a través del propio fichero.
  3. Cambios en caliente, es decir, desde la línea de comando.

Despliegue de la aplicación

Primero vamos a realizar el despliegue, definiendo antes de nada el fichero:

nano nginx-deployment.yaml

A continuación vamos a sustituir el número de réplicas, cambiando de tres a dos, para hacer una imagen de nginx de tipo deployment.

Una vez tenemos definido el fichero, tenemos que crear el deployment:

kubectl create -f nginx-deployment.yaml

Si queremos ver en qué estado está:

kubectl rollout status deployment/nginx-deployment

Nos indica que se ha desplegado correctamente.

Lo siguiente que haremos será ver cómo están los Pods que ha creado:

kubectl get pods --show-labels

Aquí podemos ver que nos ha creado las dos réplicas que habíamos indicado, que están corriendo y el tiempo que llevan activas.

Si lo que queremos ver es lo que ha creado el propio deployment:

kubectl describe deployment/nginx-deployment

Podemos ver un pequeño resumen de los eventos que ha tenido y la imagen. Os daréis cuenta que es muy parecido al fichero de definición, sólo que además aporta algunos campos más de valor. Vemos también las réplicas, el nombre de la app, el namespace, etc.

Cambios en los Pods

Ahora vamos a imaginar que, por ejemplo, estamos teniendo una carga de peticiones mucho más grandes y necesitamos tener más replicas corriendo. La primera forma que tendríamos de hacerlo sería así:

Editar el fichero de definición:

nano nginx-deployment.yaml

Dónde se indica el número de réplicas, cambiamos el valor de dos a tres.

Ahora lo que tendremos que hacer será actualizar el deployment que hay ya hecho:

kubectl apply -f nginx-deployment.yaml

Una vez aplicado vamos a hacer un rollout:

kubectl rollout status deployment/nginx-deployment

Y después vamos a comprobar el estado:

kubectl get pods --show-labels

Y vemos que lo que ha hecho ha sido desplegar una nueva réplica.

Cambios en caliente

Si por ejemplo, necesitamos hacer una actualización de la versión de nginx, lo podemos hacer en caliente, que es la otra forma de hacer actualizaciones dentro de los Pods.

Para hacerlo desde línea de comando lo haríamos así:

kubectl set image deployment/nginx-deployment nginx=ngnix:1.9.1

De esta forma actualizamos a la versión 1.9.1 de nginx.

Si hacemos de nuevo un rollout comprobamos que está esperando que termine una de las réplicas que se han actualizado:

kubectl rollout status deployment/nginx-deployment

Comprobamos también el estado de los contenedores:

kubectl get pods --show-labels

Dónde se muestra que se ha creado el nuevo contenedor llamado nginx-deployment-69df9ccbf8-wkrx4

Finalmente comprobamos la versión de nginx que está corriendo, tanto en los Pod antiguos y el nuevo que hemos creado a continuación:

kubectl describe pod nginx-deployment-85f7784776-4qn8w

kubectl describe pod nginx-deployment-69df9ccbf8-wkrx4

Vemos que los primeros Pods tienen corriendo la versión 1.7.9 de nginx, mientras que el nuevo Pod tiene la versión 1.9.1.

Fórmate en Kubernetes

Con nuestro curso de curso de Kubernetes para desarrolladores tienes la posibilidad de completar tus conocimientos previos en esta interesante tecnología y mejorar tu perfil laboral. Anímate a realizar este curso orientado de una forma teórica y práctica, para que aprendas de una forma más sencilla y guiada.

Resumen

¿Qué nos permite esto?

Nos permite realizar acciones de escalado rápidamente, actualizaciones, paradas, controlar el QoS (Quality of Service), crecer o decrecer según las necesidades que tengamos en esos momentos, etc.

Si eres administrador de sistemas, este curso gratuito te interesa para conocer la evolución natural que están siguiendo algunos profesionales como tú.

cta-curso-devops

También puedes visitar el Centro de Recursos, encontrarás las últimas guías, ebooks y webinars de programación, sistemas y gestión de talento IT.


Compartir este post

También te puede interesar...

Kubernetes para desarrolladores

Curso de Kubernetes para desarrolladores

3 horas y 26 minutos · Curso

Con este curso de Kubernetes para desarrolladores aprenderás a desarrollar aplicaciones para ser ejecutadas en el orquestador de contenedores más popular a día de hoy.

  • Contenedores
Tecnología

Ventajas de usar Kubernetes

26 Junio 2018 Carlos Álvarez
Artículos
Ver todos