Jump to section

¿Qué es Helm y para qué sirve?

Copiar URL

El desarrollo de aplicaciones en Kubernetes es, de por sí, una tarea compleja: es probable que deba instalar, gestionar y actualizar cientos de configuraciones por cada aplicación que desarrolle. 

Gracias a Helm, este proceso es más sencillo, ya que automatiza la distribución de las aplicaciones con un formato de paquetes denominado charts de Helm. De manera similar a la forma en la que yum gestiona los paquetes RPM para Red Hat® Enterprise Linux®, Helm gestiona los charts para Kubernetes. Estos conservan la uniformidad de los contenedores y, a la vez, definen la manera en que se cumplirán los requisitos específicos de las aplicaciones.

Al ser el gestor de paquetes para Kubernetes, Helm permite aplicar el mismo marco de configuración a varias instancias utilizando la anulación de variables, siempre teniendo en cuenta lo que sea más importante para los ajustes particulares. 

Helm logo

Dato curiosoHelm es un proyecto open source que surgió de la fundación Cloud Native Computing Foundation (CNCF). En 2015, se lo presentó en la KubeCon inaugural y, luego, migró a la CNCF con Kubernetes.

Helm describe la aplicación, desde su definición hasta su actualización, en lo que se conoce como chart de Helm. Utiliza estos charts (que son similares a las plantillas) para pasar los recursos al clúster de Kubernetes a través de la API de la plataforma. 

Además, gestiona los charts con la herramienta de la interfaz de línea de comandos (CLI) denominada helm y varios comandos sencillos que le permiten crear, controlar y configurar la aplicación. 

Los charts de Helm son conjuntos de archivos que describen los recursos del clúster de Kubernetes y los empaquetan juntos como una aplicación. Están conformados por tres elementos básicos:

  • El chartChart.yaml define los metadatos de la aplicación, como el nombre, la versión y la dependencia, entre otros aspectos. 
  • Los valoresvalues.yaml establece los valores, que es la manera en que definirá las sustituciones de las variables para reutilizar el chart.
    • También puede aplicar el esquema JSON que describe una estructura para los archivos de valores, lo cual le ayuda a crear formularios dinámicos y a validar los parámetros.
  • El directorio de plantillastemplates/ almacena las plantillas y las combina con los valores establecidos en el archivo values.yaml para crear los manifiestos.
  • El directorio de los chartscharts/ almacena todas las dependencias de los charts que se definan en Chart.yaml y se reconstruyan con helm dependency build o helm dependency update.

Cada vez que instala un chart de Helm, también crea una instancia de él denominada versión. Los charts se mantienen con cada versión nueva, para que pueda volver a utilizar cualquier versión anterior fácilmente y restaurar la configuración que prefiera.

¿Cómo funcionan los chart de Helm?

Para ver su funcionamiento, dé un vistazo a este episodio de Ask a Product Manager Office Hours, en el cual se habla sobre el uso de Helm con Red Hat OpenShift®.

Luego de instalar la interfaz de línea de comandos (CLI) de Helm tiene dos opciones: usar un chart que ya posea con recursos y valores definidos con anterioridad o crear uno personalizado para empaquetar sus propios recursos de aplicaciones.

¿Cómo usar un chart de Helm ya existente?

En este caso debe primero añadir el repositorio de Helm a su cliente y luego establecer los parámetros de configuración específicos en los archivos de valores en el momento de la instalación.

Los archivos de valores son fundamentales para reutilizar los charts de Helm en las configuraciones individuales. Puede sustituir cualquier variable declarada en values.yaml, y Helm creará la estructura .values para conservarlas en la plantilla. Esto permite que se puedan sustituir las variables en las próximas configuraciones. Puede pasar a un chart la cantidad de archivos de valores que desee; Helm los combinará y procesará en conjunto para que pueda reutilizarlos.

Una vez que haya guardado o enviado las configuraciones de los valores, podrá actualizar y gestionar el ciclo de vida de las aplicaciones mediante comandos de Helm comunes.

Creación de un chart personalizado

Es posible que necesitecrear un chart personalizado para empaquetar las aplicaciones que desee reutilizar en toda la empresa o dentro de una carga de trabajo específica. Para ello, debe definir los recursos de la aplicación en el directorio templates/ del chart, establecer los parámetros de la configuración mediante los archivos de valores y agregar todos los metadatos y la documentación al archivo Chart.yaml.

Luego, puede empaquetar el chart utilizando helm package y cargarlo a un repositorio de Helm público o privado, o distribuirlo directamente.

Los patrones validados de Red Hat son ejemplos útiles de los charts de Helm actuales que puede personalizar. Estos patrones son charts que describen una carga de trabajo completa que se implementó en un sitio del cliente y cumplió con una serie de requisitos de prueba y mantenimiento. Se pueden utilizar directamente o modificar para que concuerden con sus necesidades de configuración.

Al ser parte de su estrategia general de GitOps, Helm es una herramienta muy útil que proporciona agilidad, seguridad y uniformidad en varios entornos. Cuando se combina con una herramienta de comunicación de multicloud, como Red Hat Service Interconnect, es particularmente útil para las implementaciones complejas que utilizan varios microservicios en distintos proveedores de nube.

Los charts de Helm permiten que los desarrolladores de Kubernetes pongan en marcha las aplicaciones de forma rápida y sencilla, y que puedan reutilizarlas o compartirlas.  

Además, son una herramienta uniforme que pueden utilizar los administradores de sistemas y otros profesionales de las operaciones de TI para implementar y optimizar la integración y el desarrollo continuos (CI/CD) en los canales de sus aplicaciones. Ofrecen agilidad y uniformidad.

Dé un vistazo a los siguientes tutoriales de Red Hat® Developer para realizar todo el proceso a modo de prueba, desde la creación del chart hasta la configuración de los valores y la implementación.

Artículos relacionados

ARTÍCULO

¿Qué es DevSecOps?

Si desea aprovechar al máximo la agilidad y la capacidad de respuesta de los enfoques de DevOps, la seguridad de la TI debe desempeñar un papel principal en todo el ciclo de vida de sus aplicaciones.

ARTÍCULO

¿Qué son la integración/distribución continuas (CI/CD)?

La integración y la distribución continuas (CI/CD) incorporan la automatización y la supervisión permanentes en todo el ciclo de vida de las aplicaciones, desde las etapas de integración y prueba hasta las de distribución e implementación.

ARTÍCULO

¿Qué hace un ingeniero de DevOps?

Un ingeniero de DevOps es alguien que posee una combinación única de habilidades y experiencia que permite la colaboración, la innovación y los cambios culturales dentro de una empresa.  

Más información sobre DevOps

Productos

Programa intensivo y altamente especializado con personal experto de Red Hat, que le enseñará a utilizar una metodología ágil y herramientas open source para solucionar los problemas comerciales de su empresa.

Servicio de nuestros asesores estratégicos, quienes tienen una visión amplia de su empresa, analizan sus desafíos y lo ayudan a superarlos con soluciones completas y rentables.

Contenido adicional

Lista de verificación

Automatización empresarial con metodología DevOps

Whitepaper

Optimice los canales de CI/CD con Red Hat Ansible Automation Platform