Présentation
Le développement d'applications dans Kubernetes est un processus complexe qui peut impliquer l'installation, la gestion et la mise à jour de plusieurs centaines de configurations.
Helm simplifie ce processus en automatisant la distribution de vos applications à l'aide d'un format de paquets appelé chart Helm. Tout comme yum
gère des paquets RPM pour Red Hat® Enterprise Linux®, helm
gère des charts Helm pour Kubernetes. Les charts assurent la cohérence entre les conteneurs et le respect des exigences spécifiques de l'application.
En tant que gestionnaire de paquets pour Kubernetes, Helm permet d'appliquer le même framework de configuration à plusieurs instances en remplaçant les variables, en fonction des priorités de la configuration.
En bref : Helm est un projet Open Source certifié de la Cloud Native Computing Foundation (CNCF). Présenté initialement en 2015 lors de la première édition de la KubeCon, il est devenu un projet à part entière de la CNCF avec Kubernetes.
Fonctionnement de Helm
Helm décrit l'application, de sa définition à sa mise à niveau, dans un format appelé chart. Semblable à un modèle, le chart permet de transmettre des ressources au cluster Kubernetes via l'API Kubernetes.
Il est géré au moyen de l'interface en ligne de commande helm
, qui propose d'autres commandes simples pour la création, la gestion et la configuration des applications.
Ressources Red Hat
Présentation d'un chart Helm
Le chart Helm est un ensemble de fichiers qui décrivent les ressources d'un cluster Kubernetes et les mettent en paquet dans une application. Il se compose principalement de trois éléments :
- Le chart (fichier
Chart.yaml
) définit les métadonnées de l'application (nom, version, dépendances, etc.). - Les valeurs (fichier
values.yaml
) définissent les remplacements de variables de manière à réutiliser le chart.- Éventuellement, un schéma JSON décrit la structure du fichier de valeurs, ce qui permet de créer des formulaires dynamiques et de valider les paramètres des valeurs.
- Le répertoire de modèles (
templates/
) contient les modèles et les associe aux valeurs indiquées dans le fichier values.yaml pour créer des manifestes. - Le répertoire de charts (
charts/
) contient les éventuelles dépendances entre les charts, définies dans le fichierChart.yaml
. Il est possible de recréer les dépendances à l'aide de la commandehelm dependency build
ouhelm dependency update
.
L'installation d'un chart Helm entraîne la création d'une instance associée, appelée une version. Les charts Helm sont conservés d'une version à l'autre, ce qui signifie que vous pouvez utiliser une ancienne version pour revenir à la configuration souhaitée.
Découvrez les charts Helm à l'œuvre et comment utiliser Helm avec Red Hat OpenShift® dans cet épisode de la série Ask a Product Manager Office Hours.
Utilisation des charts Helm
Une fois l'interface en ligne de commande de Helm installée, vous pouvez utiliser un chart existant contenant des ressources et valeurs prédéfinies, ou créer un chart personnalisé pour mettre en paquet vos propres ressources d'application.
Utiliser un chart préexistant
La première étape consiste à ajouter le référentiel Helm au client Helm, puis à définir des paramètres de configuration spécifiques dans les fichiers de valeurs au moment de l'installation.
Les fichiers de valeurs permettent de réutiliser les charts Helm pour des configurations individuelles. Remplacez n'importe quelle variable déclarée dans le fichier values.yaml
: Helm créera la structure .values
qui réunira l'ensemble des variables dans le modèle. Ainsi, les variables pourront être remplacées dans des configurations ultérieures. Il n'y a pas de limite au nombre de fichiers de valeurs qu'un chart peut absorber : Helm les combinera en un ensemble de fichiers de variables réutilisables.
Une fois les configurations de valeurs validées ou déployées, vous pourrez réaliser les opérations de mise à jour de l'application, mise à niveau et gestion du cycle de vie à l'aide de commandes helm
courantes.
Créer un chart personnalisé
Vous devrez peut-être créer un chart personnalisé pour mettre en paquet l'application que vous souhaitez réutiliser dans l'entreprise ou au niveau de vos charges de travail. Il vous faudra alors préciser les ressources de votre application dans le répertoire templates/
du chart, définir les paramètres de configuration au moyen de fichiers de valeurs, et ajouter d'éventuelles métadonnées et documentations au fichier Chart.yaml
.
Vous pourrez ensuite mettre en paquet le chart avec la commande helm package
et le charger dans un référentiel Helm public ou privé, ou le distribuer directement.
Vous pouvez aussi personnaliser l'un de nos modèles validés de charts Helm. Les modèles validés sont des charts Helm qui décrivent une charge de travail complète déployée sur le site d'un client et respectent des exigences spécifiques liées aux tests et à la maintenance. Ils peuvent être utilisés directement ou modifiés en fonction des besoins de votre propre configuration.
Avantages de Helm
Dans le cadre de votre stratégie GitOps globale, Helm est un outil puissant qui offre agilité, sécurité et cohérence dans de nombreux environnements. Associé à une solution de communication multicloud comme Red Hat Service Interconnect, Helm s'avère particulièrement utile pour les déploiements complexes qui utilisent plusieurs microservices de plusieurs fournisseurs de cloud.
Pour les équipes de développement travaillant avec Kubernetes, les charts Helm simplifient et accélèrent le déploiement d'applications qui pourront être facilement réutilisées ou partagées.
Pour les administrateurs système et les autres professionnels de l'exploitation informatique, Helm offre un outil cohérent pour la mise en œuvre et la rationalisation de l'intégration et du développement continus (CI/CD) dans les pipelines d'applications. Cet outil est autant conçu pour l'agilité que pour la cohérence.
Si vous souhaitez vous lancer dans le processus complet, de la création d'un chart à son déploiement en passant par la configuration des valeurs, consultez les tutoriels sur Red Hat® Developer.
Le blog officiel de Red Hat
Découvrez les dernières informations concernant notre écosystème de clients, partenaires et communautés.