Get it on Google Play
Tu partner Freelance para tus proyectos IT

Creando repositorios de aplicaciones Kubernetes con Helm

04-12-2020
Helm kubernetes

Helm kubernetes

Helm es un gestor de paquetes para Kubernetes, para que los que estáis familiarizados con la administración de servidores, seria como el APT de Debian y derivados o el YUM de Redhat y familia.

Helm es la mejor manera de buscar y usar software sobre kubernetes(Si eres un administrador de un sistema) y la mejor manera de empaquetar y distribuir tu software si eres un fabricante o das soporte sobre algún software.

Aquí tenéis el vídeo:

Encontrar e instalar software

Hemos empezado buscando ‘charts'(Paquetes en el mundo Helm) en el repositorio de Helm para después ir instalando la herramienta:

#Instalar Helm
wget 'https://get.helm.sh/helm-v3.2.4-linux-amd64.tar.gz'
tar -zxvf 'helm-v3.2.4-linux-amd64.tar.gz'
sudo mv ./linux-amd64/helm /usr/local/bin/

Después hemos instalado una aplicación previo consultado los parámetros que teníamos disponibles y modificando algunos(Concretamente hemos instalado WordPress configurando el usuario y el password del administrador). Los principales comandos que hemos ejecutado en el vídeo son los siguientes:

# Buscar en el repositorio de Helm
helm search hub <termino>

# Buscar en los repositorio instalados
helm search repo <termino>

# Ver parámetros/configuración de un paquete
helm show values <paquete>

# Instalar un paquete modificando la configuración
helm install -f config.yaml <nombre> <paquete>

# Lista de aplicaciones instaladas
helm list

# Desinstalar una aplicación
helm delete <nombre>

Empaquetar una app con Helm

El siguiente paso ha sido empaquetar nuestra propia aplicación. Para esto hemos ejecutado el siguiente comando que genera el esqueleto de un paquete con datos para no empezar con un hoja en blanco:

helm create <nombre del chart>

Aquí nos ha generado una carpeta con el paquete. Aquí debemos modificar todos los ficheros: Cart.yml con la información del paquete(Nombre, autor, versión, etc.), values.yml con las variables que podrá modificar el administrador. También encontraremos una carpeta ‘charts’ donde ubicar dependencias de otros charts y la carpeta templates con las distintas plantillas.

Los documentos de la carpeta templates son plantillas del Go(paquete template, Helm está escrito en Go y por tanto usa su sistema de plantillas). Aquí encontraremos los distintos ficheros con extensión ‘.yml’ que van a ser los manifiestos que se van a desplegar en Kubernetes cuando se instale la aplicación y dos ficheros con la documentación del paquete y el texto que se muestra al finalizar la instalación. En esta misma carpeta también encontraremos otra carpeta lamada ‘test’ donde opcionalmente podemos ubicar tests para comprobar que la instalación se ha hecho correctamente.

Cuando ya tengamos nuestro paquete listo solo nos quedará empaquetarlo con el siguiente comando:

helm package <nombre del chart>

Esto solo nos comprimirá nuestra carpeta.

Crear un repositorio con Helm

Un repositorio de Helm no es mas que un fichero con extensión ‘.yml’ con la información de todos los ‘charts'(Paquetes) que contiene(nombre, versión, etc.). Podemos generar este fichero automáticamente ejecutando el siguiente comando:

helm repo index .

Para compartir con el mundo nuestro repositorio solo tenemos que colgar el fichero ‘index.yml’ con los ficheros comprimidos de nuestros contenedores y ya lo tenemos.

Instalar nuestra aplicación con Helm

Finalmente, para decirle a la gente que se instale nuestra aplicación solo tendremos que decirles que primero se añadan el repositorio a su lista de repositorios y después instalarla:

# Añadir repositorio
helm repo add <nombre-repo> <url-al-repositorio>

# Ver los parámetros a customizar
helm show values <nombre-repo>/<nombre-chart>

# Instalar la aplicación
helm install <nombre-instalación> <nombre-repo>/<nombre-chart>

Y esto es todo amigos! Espero que os guste.

Si te ha servido, por favor comparte

Interesado en formación Docker?

 

Leave a Reply