Helm
Helm forma parte de la CNCF y es un proyecto graduado basado en golang.
Antes de sumergirnos en el mundo de Helm y descubrir cómo puede simplificar el despliegue de aplicaciones en Kubernetes, es importante entender qué se necesita para poner una aplicación en ejecución en este entorno.
Elementos Cruciales para el Despliegue
- Imagen de Contenedor: La piedra angular de cualquier aplicación en contenedor es la propia imagen. Esto puede implicar el uso de una imagen de contenedor preexistente o la creación de una personalizada para satisfacer las necesidades específicas de tu aplicación.
- Manifiestos .yaml: Son archivos esenciales que describen cómo deben crearse los recursos como deployments, replica sets, servicios, ingresos, y cuentas de servicio en Kubernetes.
- kubectl create: Un comando utilizado para aplicar los manifiestos YAML y efectivamente crear los recursos dentro del clúster Kubernetes.
Supongamos que tenemos un sistema compuesto por múltiples servicios, como una API REST, una base de datos, y un servicio de mensajería pub/sub.

En este escenario, la complejidad de los microservicios se hace evidente, ya que cada uno de ellos requiere su propio conjunto de manifiestos, resultando en la generación de una variedad de objetos con distintas configuraciones en Kubernetes.
Si la idea es replicar el despliegue de esta aplicación en un clúster Kubernetes diferente, será necesario revisar y posiblemente modificar varios manifiestos, lo que puede hacer el proceso tanto laborioso como susceptible a errores.
Surge entonces la pregunta: ¿cómo podemos simplificar este procedimiento? La respuesta está en el uso de Helm, que es una herramienta de gestión de paquetes para Kubernetes.
Helm: El Gestor de Paquetes de Kubernetes
Así como otras herramientas de gestión de paquetes conocidas como apt (Debian), yum (Red Hat) y pacman (Arch Linux) que facilitan la instalación, configuración y actualización de software en sistemas operativos, Helm desempeña un papel análogo en el ecosistema de Kubernetes.
Helm permite la instalación de aplicaciones complejas de una manera mucho más accesible y preconfigurada, minimizando el esfuerzo y el potencial de error involucrado en la gestión manual de múltiples manifiestos YAML.
Utilizando la analogía con los gestores de paquetes de sistemas operativos, Helm generalmente sigue una lógica de comandos similar. Esto hace el proceso de utilización intuitivo para aquellos que ya están acostumbrados con tales herramientas en otros contextos.
# Para añadir un repositorio
helm repo add
# Buscar en un repositorio
helm search repo
# Instalar un chart
helm install
# Hacer update del chart
helm update
# Si deseas revertir una aplicación
helm rollback
# Crear un chart
helm create
# Verificar si está instalado
helm status
En síntesis, Helm es el aliado perfecto para gestionar aplicaciones en Kubernetes de forma eficiente y estandarizada, propiciando un despliegue robusto y menos propenso a fallos.
Helm Charts y Repositorios
Prosiguiendo con la analogía de gestores de paquetes convencionales, tenemos que, tal como estos disponen de repositorios donde paquetes son almacenados y catalogados para facilitar la búsqueda y la instalación, Helm utiliza un enfoque similar para gestionar los llamados charts.
¿Qué Son los Helm Charts?
Los Helm Charts son, en esencia, paquetes preconfigurados que contienen un conjunto de archivos y templates de manifiestos de Kubernetes. Sirven como moldes que esperan ser complementados por configuraciones específicas, que definirán cómo la aplicación debe ser instalada y ejecutada en el clúster. Los charts contienen todo lo necesario para el despliegue consistente de una aplicación, incluyendo:
- Templates de recursos de Kubernetes.
- Valores predeterminados que pueden ser sobrescritos.
- Metadatos sobre el chart, como versión y una descripción.
- Dependencias que el chart pueda tener de otros charts.
Repositorios Helm
Para facilitar el descubrimiento y el compartir de charts, Helm utiliza repositorios. Los repositorios Helm son colecciones de charts alojados en un servidor que pueden ser buscados e instalados por usuarios. Estos repositorios pueden ser públicos, como el Helm Hub, donde encontrarás una amplia gama de charts desarrollados por la comunidad, o privados, para uso interno dentro de una organización.
Cuando se desea utilizar un chart, el primer paso es generalmente añadir el repositorio que contiene el chart deseado, usando el comando helm repo add. Una vez que el repositorio está añadido a tu entorno local, puedes buscar e instalar charts a partir de este repositorio.
Además de simplificar la publicación y el compartir de aplicaciones, los charts Helm también promueven la reutilización de código y mejores prácticas, dado que la comunidad puede contribuir y perfeccionar los charts a lo largo del tiempo.
En conclusión, los charts y repositorios Helm son herramientas poderosas que permiten a los usuarios y desarrolladores gestionar aplicaciones Kubernetes de manera más eficiente, manteniendo la organización y estandarización de los despliegues en diferentes entornos y de diversas aplicaciones.