Aujourd’hui, Kubernetes devient incontournable pour les praticiens DevOps pour orchestrer les conteneurs. Une fois que vous avez une image Docker de votre application, vous devez écrire des manifestes YAML pour définir les charges de travail Kubernetes. Ensuite, vous les déployez avec la commande kubectl.
Cette méthode de déploiement est lorsque vous n’avez qu’une seule application. Lorsque vous commencez à avoir de nombreuses applications et plusieurs environnements, il devient submergé. Souvent, vous définissez les mêmes fichiers YAML 90 % du temps.
Ici, nous allons nous vous parler de la gestion intelligente des applications avec Helm.
HELM c’est quoi ?
Helm est un gestionnaire de packages pour Kubernetes. Helm est un projet open source créé à l’origine par DeisLabs et donné à la Cloud Native Foundation (CNCF). La CNCF maintient et a gradué le projet. Cela signifie qu’il est mature et pas seulement une mode.
La gestion des packages n’est pas un concept nouveau dans l’industrie du logiciel. Sur les distributions Linux, vous gérez l’installation et la suppression de logiciels avec des gestionnaires de packages tels que YUM/RPM ou APT. Sous Windows, vous pouvez utiliser Chocolatey ou Homebrew sur Mac.
Helm vous permet de conditionner et de déployer des applications complètes dans Kubernetes. Un package s’appelle un « Chart« . Helm utilise un système de modèles basé sur le modèle Go pour rendre les manifestes Kubernetes à partir de charts. Un chart est une structure cohérente séparant les modèles et les valeurs.
En tant que package, un chart peut également gérer les dépendances avec d’autres charts. Par exemple, si votre application a besoin d’une base de données MySQL pour fonctionner, vous pouvez inclure le chart en tant que dépendance. Lorsque Helm s’exécute au niveau supérieur du répertoire du chart, il installe des dépendances entières. Vous n’avez qu’une seule commande pour livrer et publier votre application sur Kubernetes.
Les charts Helm utilisent des versions pour suivre les modifications de vos manifestes. Vous pouvez donc installer une version de chart spécifique pour des configurations d’infrastructure spécifiques. Helm conserve un historique des versions de toutes les cartes déployées dans un espace de travail dédié. Cela facilite les mises à jour et les restaurations d’applications en cas de problème.
Helm vous permet de compresser des charts. Le résultat est un artefact comparable à une image Docker. Ensuite, vous pouvez l’envoyer vers un référentiel distant pour la réutilisation et le partage.
Quels sont les avantages d’utiliser Helm ?
Helm vous offre la possibilité d’installer des applications avec une seule commande. Un chart peut contenir d’autres charts en tant que dépendances. Vous pouvez par conséquent déployer une pile entière avec Helm. Vous pouvez utiliser Helm comme docker-compose mais pour Kubernetes.
Un chart comprend des modèles pour diverses ressources Kubernetes afin de former une application complète. Cela réduit la complexité des microservices et simplifie leur gestion dans Kubernetes.
Les charts peuvent être compressés et envoyés vers un référentiel distant. Cela crée un artefact d’application pour Kubernetes. Vous pouvez également récupérer et déployer des charts Helm existantes à partir de référentiels. C’est un point fort pour la réutilisabilité et le partage.
Helm conserve un historique des versions déployées dans l’espace de travail Helm. Lorsque quelque chose ne va pas, revenir à une version précédente est simplement — la version Canary est facilitée avec Helm pour des déploiements sans temps d’arrêt.
Helm rend le déploiement hautement configurable. Les applications peuvent être personnalisées à la volée pendant le déploiement. En modifiant les paramètres, vous pouvez utiliser le même chart pour plusieurs environnements tels que le développement, la mise en scène et la production.
Rationalisez les pipelines CI/CD.
Transmettez les meilleures pratiques GitOps.
Accédez à un tutoriel officiel Helm en ligne.