Tutoriales

Despliegues de la Onesait Platform con Helm

¿Qué es Helm?

Helm (del término marítimo de timón) es una herramienta para gestionar aplicaciones de Kubernetes. Helm te ayuda a «timonear» Kubernetes usando cartas de navegación, que en inglés se conocen como Helm Charts. Aunque nos gustan las referencias de marítimas de Helm y Kubernetes, el término «carta de navegación» o «carta» puede ser más difícil de entender que Chart.

Helm es mantenido por la CNCF en colaboración con Microsoft, Google, Bitnami y la comunidad de Helm.

¿Que nos ofrece Helm?

La principal función de Helm es definir, instalar y actualizar aplicaciones complejas de Kubernetes.

La mayoría de los sistemas operativos y de programación de lenguaje tienen su propio administrador de paquetes para la instalación y el mantenimiento de software. Helm proporciona el mismo conjunto de funciones básicas que muchos de los administradores, como apt de Debian o pip de Python.

Helm puede:

  • Instalar software.
  • Instalar de manera automática dependencias de software.
  • Actualizar software.
  • Configurar implementaciones de software.
  • Obtener paquetes de software de repositorios.

Helm proporciona esta funcionalidad a través de los siguientes componentes:

  • Una herramienta de línea de comandos, helm, que proporciona la interfaz de usuario para todas las funcionalidades de Helm.
  • Un componente de servidor complementario, tiller, que funciona en su clúster de Kubernetes, escucha los comandos de helm y gestiona la configuración e implementación de versiones de software en el clúster.
  • El formato de empaquetado de Helm, llamado charts.
  • Un repositorio de charts oficiales seleccionados con charts empaquetados previamente para proyectos de software de código abierto populares.

¿Como utilizamos Helm desde la Onesait Platform?

Desde el equipo de la Plataforma hemos desarrollado una serie de charts para tener una estructura de despliegue tipo, que adaptamos para cada cliente.

Por cada módulo de plataforma tenemos una plantilla para el deployment en k8s, otra para el servicio y dependiendo de si el módulo necesita persistencia o no, una plantilla para el pvc.

Las propiedades que son únicas para cada entorno, como la IP de las maquinas, el DNS, directorios de persistencia, versión de la Plataforma, etc., están aplantilladas, de tal manera, que para cada despliegue solo tenemos que adaptar un único archivo de configuración.

Gracias a estas plantillas, tenemos centralizada la configuracion de todos nuestros modulos, lo que ahorra mucho tiempo a la hora desplegar, operar y actualizar los sistemas de nuestros clientes.

Aparte, gracias a Helm podemos configurar este chart para que se adapte a cualquier tipo de proveedor Cloud, lo que nos ofrece mayor versatilidad a la hora de la negociación.

Helm nos ofrece también la posibilidad de utilizar y crear plugins. Estos son plugins son utililes para nosotros a la hora de automatizar tareas como el escalado de contenedores o la creacion de certificados.

Conclusiones

Helm es una solución importante para hacer más efectiva la adopción de contenedores.

Al crear cartas de navegación de Helm, los Helm Charts sirven para describir incluso las aplicaciones más complejas. Ofrecen una instalación repetible de la aplicación, manteniendo un único punto de control.

Las actualizaciones de Helm Charts son sencillas y más fáciles de utilizar para los desarrolladores.

✍🏻 Author(s)