Jump to section

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. 

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.

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.

Pour aller plus loin

ARTICLE

Le DevSecOps, qu'est-ce que c'est ?

Si vous souhaitez tirer pleinement parti de l'agilité et de la réactivité d'une approche DevOps, vous devez également intégrer la sécurité informatique au cycle de vie complet de vos applications.

ARTICLE

L'approche CI/CD, qu'est-ce que c'est ?

L'approche CI/CD garantit une automatisation et une surveillance continues tout au long du cycle de vie des applications, des phases d'intégration et de test jusqu'à la distribution et au déploiement.

ARTICLE

Un ingénieur DevOps, qu'est-ce que c'est ?

Un ingénieur DevOps possède un ensemble unique de compétences et de connaissances qui favorisent la collaboration, l'innovation et le changement culturel au sein d'une entreprise.  

En savoir plus sur le DevOps

Produits

Stage intensif et spécialisé auprès d'experts Red Hat ayant pour objectif de vous former à l'utilisation d'une méthode agile et d'outils Open Source en vue de résoudre les problèmes métier de votre entreprise.

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Ressources