Introducción
Helm es una herramienta de implementación de Kubernetes para automatizar la creación, el empaquetado, la configuración y la implementación de aplicaciones y servicios en clústeres de Kubernetes.
Kubernetes es un poderoso sistema de orquestación de contenedores para la implementación de aplicaciones. Hay varios recursos independientes con los que lidiar, y cada uno requiere un archivo de manifiesto YAML dedicado.
Este artículo explica qué son Helm y los gráficos de Helm y cómo automatizar la implementación de aplicaciones en Kubernetes.
¿Qué es Helm?
Si Kubernetes fuera un sistema operativo, Helm sería el administrador de paquetes. Ubuntu usa apt
, CentOS usa yum
y Kubernetes usa helm
.
Helm implementa aplicaciones empaquetadas en Kubernetes y las estructura en gráficos. Los gráficos contienen todos los recursos de la aplicación preconfigurados junto con todas las versiones en un paquete fácilmente manejable.
Helm agiliza la instalación, la actualización, la recuperación de dependencias y la configuración de implementaciones en Kubernetes con simples comandos de la CLI. Los paquetes de software se encuentran en repositorios o se crean.
¿Por qué necesitamos Helm?
Los objetos de Kubernetes son difíciles de administrar. Con herramientas útiles, la curva de aprendizaje de Kubernetes se vuelve fluida y manejable. Helm automatiza el mantenimiento de manifiestos YAML para objetos de Kubernetes al empaquetar información en gráficos y anunciarlos en un clúster de Kubernetes.
Helm realiza un seguimiento del historial de versiones de cada instalación y cambio de gráfico. La reversión a una versión anterior o la actualización a una versión más nueva se completa con comandos comprensibles.
¿Qué puedes hacer con Helm?
Helm permite a los desarrolladores de software implementar y probar un entorno de la forma más sencilla posible. Se necesita menos tiempo para pasar del desarrollo a las pruebas y a la producción.
Además de aumentar la productividad, Helm presenta una forma conveniente para que los desarrolladores empaqueten y envíen aplicaciones a los usuarios finales para su instalación.
¿Cómo funciona el timón?
Helm y Kubernetes funcionan como una aplicación cliente/servidor. El cliente de Helm envía recursos al clúster de Kubernetes. El lado del servidor depende de la versión:Helm 2 usa Tiller mientras que Helm 3 se deshizo de Tiller y depende completamente de la API de Kubernetes.
¿Qué es un gráfico Helm?
Los gráficos de Helm son paquetes de Helm que consisten en archivos YAML y plantillas que se convierten en archivos de manifiesto de Kubernetes. Cualquier persona puede reutilizar los gráficos en cualquier entorno, lo que reduce la complejidad y los duplicados. Las carpetas tienen la siguiente estructura:
¿Cómo funcionan los gráficos Helm?
Los tres conceptos básicos de los gráficos de Helm son:
1. Gráfico – Plantilla preconfigurada de recursos de Kubernetes.
2. Liberar – Un gráfico implementado en un clúster de Kubernetes mediante Helm.
3. Repositorio – Gráficos disponibles públicamente.
El flujo de trabajo es buscar a través de repositorios para gráficos e instálelos en los clústeres de Kubernetes, creando lanzamientos .
Estructura del gráfico Helm
Cada uno de los archivos y directorios de un gráfico de Helm tiene una función específica:
Nombre | Tipo | Función |
---|---|---|
gráficos/ | Directorio | Directorio para dependencias de gráficos administradas manualmente. |
plantillas/ | Directorio | Los archivos de plantilla se escriben en Golang y se combinan con valores de configuración del archivo values.yaml para generar manifiestos de Kubernetes. |
Gráfico.yaml | Archivo | Metadatos sobre el gráfico, como la versión, el nombre, las palabras clave de búsqueda, etc. |
LICENCIA (opcional) | Archivo | Licencia para el gráfico en formato de texto sin formato. |
README.md (opcional) | Archivo | Información legible por humanos para los usuarios del gráfico. |
requisitos.yaml (opcional) | Archivo | Lista de dependencias del gráfico. |
valores.yaml | Archivo | Valores de configuración predeterminados para el gráfico. |