Skip to main content
Mario Galán

Main navigation

  • Home
  • Contact
  • EN
  • ES
User account menu
  • Log in

Creando un cluster Kubernetes con k0s y Ceph - 5 - Helm

En este breve post vamos a ver qué es Helm, cómo instalarlo y un uso básico.

Helm es un gestor de paquetes para Kubernetes.

Nos permite concentrar el despliegue de una aplicación compleja que constaría de muchos elementos de Kubernetes y manejarla como una única entidad.

También nos proporciona herramientas para parametrizar los despliegues así como nos facilita las actualizaciones, rollbacks, etc.

Helm es un proyecto gestionado por la Clound Native computing fundation así que podemos tener seguridad de que va a estar bien mantenido y soportado.

Instalación

Tenemos muchas opciones para instalar Helm usando diferentes gestor de paquetes o repositorios propios de Linux, Windows o MacOS.

Podemos descargar directamente el binario de la página de releases pero en nuestro caso vamos a utilizar un script que facilita el trabajo.

Este script descarga automáticamente la última versión disponible y la coloca en el $PATH con los permisos de ejecución adecuados.

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

Una vez instalado Helm si lo ejecutamos sin parámetros nos mostrará un volcado de ayuda para su uso:

Conceptos

Helm maneja tres conceptos fundamentales que tenemos que conocer.

Un chart es un paquete Helm que contiene toda la definición de recursos necesarios para ejecutar una aplicación en un cluster Kubernetes.

Un repositorio es un lugar donde podemos encontrar charts. Es análogo a un repositorio de paquetes de una distribución de Linux como Apt o RPM.

Una release es una instancia de una chart corriendo dentro de un cluster Kubernetes. Una misma chart puede estar desplegada múltiples veces en un cluster cada una identificada por un nombre único.

Uso básico

El uso de Helm es muy similar a cualquier otro gestor de paquetes, podemos buscar, instalar, eliminar, etc.

Vamos a ver los comandos básicos:

helm search hub nombre_paquete

Utilizaremos hub como comando para que busque en Artifact Hub que es un meta repositorio que lista charts provenientes de múltiples repositorios.

Por ejemplo buscaremos charts de Wordpress:

Como vemos tenemos muchas opciones porque hay diferentes implementaciones de una misma aplicación.

Tenemos que tener cuidado porque el nivel de calidad, mantenimiento y seguridad que tienen varía enormemente.

En la web de Artifact Hub podemos filtrar los paquetes oficiales, de publishers verificados, etc.

Como hemos visto antes los resultados devueltos desde Artifact Hub son enlaces a diferentes repositorios por lo que tendremos que añadir el repositorio que nos interesa a nuestra instalación

 Por ejemplo para instalar Wordpress empaquetado por Bitnami primero debemos añadir el repositorio de esta empresa en local con:

helm repo add bitnami https://charts.bitnami.com/bitnami

Al ejecutarlo veremos:

Actualizaremos la lista de charts disponible con helm repo update y finalmente instalaremos el paquete Wordpress:

$ helm repo update
$ helm install my-wordpress bitnami/wordpress

Dependiendo de la aplicación y el cluster la instalación tomará desde unos segundos a varios minutos.

Habitualmente al terminar se nos mostrará una ayuda sobre cómo acceder al servicio.

Podemos ver por ejemplo que se han desplegado algunos pods relacionados con Wordpress:

En concreto esta instalación no funciona correctamente porque este cluster no tiene todavía definido ningún tipo de almacenamiento disponible.

Procedemos a eliminar esta instancia para mantener limpio el cluster. Para ello utilizaremos el comando uninstall y el nombre de la release que hemos escogido anteriormente.

Más allá de lo básico

En este post únicamente hemos arañado la superficie de lo que se puede hacer con Helm. En su documentación oficial podemos ver muchas posibilidades que conviene explorar para sacarle el máximo partido a la herramienta.

Un punto especialmente importante es el uso de ficheros para parametrizar el chart antes de instalarlo. Esto nos permite tener mucho más control sobre cómo desplegamos las instancias y debería ser una buena práctica fundamental en nuestra gestión de Kubernetes.

Tags

  • k0s
  • kubernetes
  • Helm

Comments

About text formats

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
RSS feed
Powered by Drupal