Principes de base Helm

Effectué

Lors du déploiement, du contrôle de version et de la mise à jour des applications, vous devez vérifier que vous disposez des versions correctes des configurations et bibliothèques logicielles afin que l’application fonctionne comme prévu.

Supposons que votre équipe de développement décide de déployer le site web de l’entreprise d’animaux de compagnie sur Kubernetes. Dans le cadre de ce processus, votre équipe crée des fichiers de déploiement, de service et d’entrée YAML. Vous codez en dur et maintenez manuellement les informations de chaque fichier pour chaque environnement cible. Toutefois, la gestion de ces trois fichiers pour chaque environnement est fastidieuse et devient plus complexe à mesure que la taille de l’application augmente.

A diagram that shows a container deployed to a Kubernetes node using a deployment, a service, and an ingress YAML file.

Vous pouvez utiliser Helm pour simplifier le processus de déploiement des applications et ne pas avoir à coder en dur les variables et les paramètres de déploiement.

Présentation de Helm

Helm est un gestionnaire de package pour Kubernetes qui combine l’ensemble des ressources et des informations de déploiement de votre application dans un même package de déploiement.

A diagram shows a containerized app deployed to a Kubernetes cluster using a Helm chart.

L’utilisation de Helm est similaire au Gestionnaire de package Windows sur Windows, au gestionnaire APT (Advanced Package Tool) sur Linux ou à Homebrew sur macOS. Vous spécifiez le nom de l’application que vous souhaitez installer, mettre à jour ou supprimer, et Helm prend en charge le processus.

Avec Helm, vous pouvez tout à fait installer plusieurs applications à la fois. Helm vous permet de créer des fichiers de script YAML explicites et basés sur des modèles pour gérer le déploiement de votre application. Ces fichiers de modèle vous permettent de spécifier toutes les dépendances nécessaires, ainsi que le mappage de configuration et les secrets utilisés pour gérer correctement le déploiement d’une application.

Helm utilise quatre composants pour gérer les déploiements d’applications sur un cluster Kubernetes :

  • Le client Helm
  • Graphiques Helm
  • Des versions Helm
  • Des référentiels Helm

Présentation du client Helm

Le client Helm est un fichier binaire installé par le client, et chargé de créer et d’envoyer les fichiers manifeste nécessaires en vue de déployer une application Kubernetes. Le client est responsable de l’interaction entre l’utilisateur et le cluster Kubernetes.

A diagram shows the communication between three Helm components to create a Helm release; the client, chart, and repository.

Le client Helm est disponible pour tous les principaux systèmes d’exploitation et est installé sur votre ordinateur client. Dans Azure, le client Helm est préinstallé dans Cloud Shell et prend en charge toutes les fonctionnalités de sécurité, d’identité et d’autorisation de Kubernetes.

Remarque

Ce module suppose l’utilisation de Helm v3. Vous pouvez exécuter la commande helm version pour vérifier la version de Helm qui est actuellement exécutée sur votre appareil client. Si vous exécutez Helm v2, gardez à l’esprit que certains des paramètres de commande de ce module seront différents.

Qu’est-ce qu’un chart Helm ?

Un chart Helm est un package de déploiement basé sur un modèle qui décrit un ensemble associé de ressources Kubernetes. Il contient toutes les informations nécessaires à la génération et au déploiement des fichiers manifeste permettant à une application de s’exécuter sur un cluster Kubernetes.

Un chart Helm est constitué de plusieurs fichiers et dossiers qui le décrivent. Certains des composants sont obligatoires et d’autres sont facultatifs. Ce que vous choisissez d’inclure est basé sur les conditions de configuration des applications.

La liste suivante décrit les composants de fichier et de dossier d’un chart Helm avec les éléments requis en gras :

Fichier / Dossier Description
Chart.yaml Fichier YAML contenant les informations relatives au chart.
values.yaml Valeurs de configuration par défaut du chart.
templates/ Dossier qui contient les modèles de déploiement du chart.
LICENSE Fichier texte brut qui contient la licence du chart.
README.md Fichier Markdown qui contient des instructions sur l’utilisation du chart.
values.schema.json** Fichier de schéma pour l’application d’une structure au fichier values.yaml.
charts/ Dossier qui contient tous les sous-charts du chart principal.
crds/ Définitions de ressources personnalisées.
templates/Notes.txt Un fichier texte qui contient des remarques sur l’utilisation du modèle.

Présentation des versions Helm

Une version Helm correspond à l’application ou au groupe d’applications qui sont déployées en utilisant un chart. Chaque fois que vous installez un chart, une nouvelle instance d’une application est créée sur le cluster. Chaque instance a un nom de version qui vous permet d’interagir avec cette instance en particulier.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The release is highlighted.

Par exemple, supposons que vous ayez installé deux instances Nginx sur votre cluster Kubernetes en tirant parti d’un chart. Vous décidez par la suite de mettre à niveau la première instance Nginx, mais pas la deuxième. Étant donné que les deux versions sont différentes, vous pouvez mettre à niveau la première version sans impacter la seconde.

Présentation du référentiel Helm

Un référentiel Helm est un serveur HTTP dédié qui stocke des informations sur des charts Helm. Le serveur héberge un fichier qui décrit les charts et indique où télécharger chacun d’entre eux.

A diagram shows the communication between three Helm components to create a Helm release: the client, chart, and repository. The repository is highlighted.

Le projet Helm héberge de nombreux charts publics, ainsi que de nombreux référentiels à partir desquels vous pouvez réutiliser les charts. Les référentiels Helm simplifient la découverte et la réutilisation des packages Helm.

Avantages de l’utilisation de Helm

Helm présente un certain nombre d’avantages qui simplifient le déploiement des applications et améliorent la productivité dans le cycle de vie de développement et de déploiement des applications natives Cloud. Avec Helm, les versions d’applications sont :

  • Répétable,
  • Fiable,
  • Gérables dans des environnements multiples et complexes et
  • Réutilisables par différentes équipes de développement

Un chart Helm normalise le déploiement d’une application utilisant une logique de modèle empaqueté qui est paramétrée par des valeurs d’entrée définies. La conception de ce package piloté par modèle offre une approche indépendante de l’environnement pour déployer et partager des applications cloud natives.