South Europe, Spain
listas@juanquijano.es

Crear un Kubernetes con az para el Global Azure Bootcamp Sciene Lab 2019

Sitio dedicado a Microsoft Azure y otras tecnologías Cloud

En el artículo anterior, me he unido entusiasta en la búsqueda de exoplanetas propuesta en el laboratorio científico de la Global Azure Bootcamp del 2019.

Recordar que David Rodriguez nos notifico la apertura del GitHub del laboratorio, y se ha currado la documentación necesaria para instalar el contenedor Docker en Azure Instance Container, y en cualquier otro motor Docker.

Por mi parte, me he puesto a jugar para instalarlo en Kubernetes y han surgido cosas interesantes que quiero compartir contigo.

Subiendo la apuesta con az CLI

Además, para salir de mi zona de confort, le he añadido que lo quiero hacer en az CLI, en vez de con powershell (que me ha fallado una y otra vez), para lo que me instalo las dependencias en mi sistema, y así conseguir poder seguir utilizando ISE como editor y depurador de mi script.

Aprovecho para agradecer a Gisela Torres, y su magnífico blog sobre Azure, de donde he sacado mucha información útil y básica para construir mi Kubernetes e instanciar el contenedor.

Como ves, este no es un script muy complejo. Lo más interesante, una vez construido el cluster, es que voy a tener dos grupos de recursos diferenciados. Por un lado el del servicio AKS, y luego otro en donde está toda la infraestructura.

La línea que he resaltado en negrita, es la que realiza la instancia del contenedor en AKS, y que utiliza el fichero ‘envars.yaml’ para buscar la imagen correcta y configurar las variables de contexto.

Por cierto, te aviso, olvídate de las expectativas de tiempo real. La creación del Cluster tarda entre 5 a 30 minutos. Luego, la creación de los contenedores si que va como un tiro.

El siguiente paso es conseguir poder acceder desde Internet a mi contenedor, para lo cual montó un servicio de Kubernetes de tipo Balanceador de carga, que describo dentro de su propio YAML llamado ‘service.yaml’, y que responde por el puerto 80.

Más cosas interesantes en esta infraestructura:

  • Utilizo una etiqueta para decirle al servicio sobre que aplicaciones debe trabajar:  app: gbsal
  • He abierto los puertos tanto del servicio como del contenedor: port: 80
  • El tipo es de LoadBalancer, lo cual me va a construir un Balanceador de carga de Azure y le va a poner una IP fija.

Utilidad y costes

Una vez montado el AKS y el Pod con el contenedor, puedo escalar fácilmente el número de instancias de máquinas virtuales en el cluster. De hecho, es tan fácil que tengo que tener cuidado con los límites por defecto de vCpu en mi suscripción.

Pero, en este caso específico, la utilidad no pasa más allá de probar mis conocimientos y aprender. Y eso es debido a que la imagen docker del laboratorio está pensada para trabajar sobre un único núcleo.

Es decir -como puedes comprobar- si pongo 18 Pods en el cluster, solamente funciona el primero que se engancha al servidor, y el resto se quedan durmiendo el sueño de los justos.

Sobre costes, para una único contenedor, no merece la pena utilizar esta infraestructura. A grosso modo son unos 46€/mes, en comparación con un servicio de Instancia de contenedor que no supera los 38€ al mes (si lo tengo encendido 730 horas al mes).

Es decir, este es un artículo de I+D sin una aplicación real útil.

Pero aún así, espero que sea de utilidad.

 

Tags:

Un comentario

  1. Buenas! Oye, ¿llegaste a probar con el parámetro “replicas” en el yaml? Eso debería darte la posibilidad de desplegar más de una réplica (instancia) del contenedor, pudiendo llegar a consumir todos los cores del cluster

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: