Helm, qu'est-ce que c'est ?

Copier l'URL

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. 

Helm logo

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.

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. 

En savoir plus sur Helm et Red Hat OpenShift

Ressources Red Hat

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 fichier Chart.yaml. Il est possible de recréer les dépendances à l'aide de la commande helm dependency build ou helm 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.

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.

En savoir plus sur les modèles validés

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.

Essayer Helm sur Red Hat Developer

Hub

Le blog officiel de Red Hat

Découvrez les dernières informations concernant notre écosystème de clients, partenaires et communautés.

Tous les essais de produits Red Hat

Profitez de nos essais gratuits de produits Red Hat pour renforcer votre expérience pratique, préparer une certification ou évaluer l'adéquation d'un produit avec les besoins de votre entreprise.

En savoir plus

MicroShift : la version Red Hat

La version Red Hat de MicroShift est une solution d'orchestration des conteneurs Kubernetes allégée qui repose sur les fonctionnalités d'edge computing de Red Hat OpenShift.

Ansible vs Chef

Ansible et Chef sont des outils d'automatisation informatique développés par la communauté Open Source. Cet article présente en détail les similitudes et les différences entre Ansible et Chef.

Ansible, Terraform, Puppet, Chef et Salt : c'est quoi ?

Découvrez les différences entre Ansible et d'autres outils d'automatisation comme Terraform, Puppet, Chef et Salt.

Open source : ressources recommandées