Points clés
- ✓70% des organisations utilisent Helm dans leurs environnements Kubernetes (Orca Security 2025)
- ✓Helm regroupe manifestes YAML, configs et dépendances en charts réutilisables
- ✓Le guide couvre installation, configuration, upgrade et debugging de charts en production
Helm est le gestionnaire de packages de Kubernetes. Il simplifie le déploiement d'applications complexes en regroupant manifestes YAML, configurations et dépendances dans un format réutilisable appelé chart. Selon Orca Security 2025, 70% des organisations utilisent Helm dans leurs environnements Kubernetes.
TL;DR : Ce guide vous accompagne de l'installation de Helm à la création de vos propres charts. Vous apprendrez à installer, configurer, upgrader et dépanner vos déploiements Helm en production. Chaque étape inclut les commandes et leurs résultats attendus.
Pour maîtriser ces compétences et préparer le CKAD, découvrez la formation LFD459 Kubernetes pour les développeurs.
Qu'est-ce que Helm et pourquoi l'utiliser ?
Helm est un outil de templating et de packaging pour Kubernetes. Il permet de versionner, partager et déployer des applications de manière reproductible.
Helm ajoute une couche d'abstraction au-dessus de Kubernetes, simplifiant considérablement le déploiement d'applications complexes.
Définitions clés
| Terme | Définition |
|---|---|
| Chart | Un chart est un package Helm contenant tous les manifestes Kubernetes nécessaires au déploiement d'une application |
| Release | Une release est une instance d'un chart déployée dans votre cluster avec une configuration spécifique |
| Repository | Un repository est un serveur HTTP hébergeant des charts Helm téléchargeables |
| Values | Les values sont des paramètres de configuration que vous passez au chart pour personnaliser le déploiement |
| Template | Un template est un fichier YAML avec des variables Go qui génère les manifestes Kubernetes finaux |
À retenir : Helm vous évite de copier-coller des dizaines de fichiers YAML. Vous gérez une seule source de vérité avec des paramètres configurables.
Prérequis avant de commencer
Avant d'installer Helm, vérifiez que votre environnement répond à ces exigences :
Cluster Kubernetes fonctionnel
Vous devez disposer d'un cluster Kubernetes actif. Vérifiez avec :
kubectl cluster-info
# Résultat attendu :
# Kubernetes control plane is running at https://127.0.0.1:6443
# CoreDNS is running at https://127.0.0.1:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
kubectl configuré
Votre fichier kubeconfig doit pointer vers le bon cluster :
kubectl config current-context
# Résultat attendu : le nom de votre contexte actif (ex: minikube, docker-desktop, production-cluster)
Versions compatibles
En 2026, utilisez Helm 3.14+ avec Kubernetes 1.28+. Helm 3 a supprimé Tiller, rendant l'installation plus sécurisée. Consultez les stratégies de déploiement Kubernetes pour choisir votre approche.
Étape 1 : Installer Helm sur votre machine
Vous avez plusieurs options pour installer Helm. Choisissez celle adaptée à votre système d'exploitation.
Installation sur macOS
brew install helm
Installation sur Linux
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Installation sur Windows
choco install kubernetes-helm
Vérification de l'installation
Confirmez que Helm fonctionne correctement :
helm version
# Résultat attendu :
# version.BuildInfo{Version:"v3.14.2", GitCommit:"c309b6f0ff63856811846ce18f3bdc93d2b4d54b", GitTreeState:"clean", GoVersion:"go1.21.7"}
À retenir : Helm 3 ne nécessite aucun composant côté cluster. L'installation se limite à votre poste de travail.
Étape 2 : Ajouter et gérer les repositories
Les repositories Helm fonctionnent comme apt ou npm. Vous les ajoutez pour accéder aux charts disponibles.
Ajouter le repository officiel
helm repo add bitnami https://charts.bitnami.com/bitnami
# Résultat attendu :
# "bitnami" has been added to your repositories
Mettre à jour les repositories
Exécutez cette commande régulièrement pour récupérer les dernières versions :
helm repo update
# Résultat attendu :
# Hang tight while we grab the latest from your chart repositories...
# ...Successfully got an update from the "bitnami" chart repository
# Update Complete. ⎈Happy Helming!⎈
Lister vos repositories
helm repo list
# Résultat attendu :
# NAME URL
# bitnami https://charts.bitnami.com/bitnami
Pour gérer efficacement vos déploiements, comparez Helm vs Kustomize selon vos besoins.
Étape 3 : Rechercher et inspecter les charts
Avant d'installer un chart, examinez son contenu et sa documentation. Cette étape vous évite des surprises en production.
Rechercher un chart
helm search repo nginx
# Résultat attendu :
# NAME CHART VERSION APP VERSION DESCRIPTION
# bitnami/nginx 15.14.0 1.25.4 NGINX Open Source is a web server...
# bitnami/nginx-ingress 9.10.1 1.9.6 NGINX Ingress Controller...
Afficher les informations du chart
helm show chart bitnami/nginx
# Résultat attendu :
# apiVersion: v2
# appVersion: 1.25.4
# description: NGINX Open Source is a web server...
# name: nginx
# version: 15.14.0
Consulter les valeurs configurables
Cette commande est essentielle. Elle liste tous les paramètres que vous pouvez personnaliser :
helm show values bitnami/nginx > nginx-values.yaml
Ouvrez le fichier généré pour découvrir les options disponibles. Selon le CNCF Annual Survey 2025, 82% des utilisateurs de conteneurs exécutent Kubernetes en production. Comprendre les options de configuration est donc critique.
À retenir : Lisez toujours les values par défaut avant d'installer. Vous éviterez des configurations non sécurisées ou surdimensionnées.
Étape 4 : Installer votre premier chart
L'installation crée une release dans votre cluster. Chaque release a un nom unique que vous choisissez.
Installation basique
helm install my-nginx bitnami/nginx --namespace web --create-namespace
# Résultat attendu :
# NAME: my-nginx
# LAST DEPLOYED: Fri Feb 28 10:30:00 2026
# NAMESPACE: web
# STATUS: deployed
# REVISION: 1
Vérifier le déploiement
kubectl get pods -n web
# Résultat attendu :
# NAME READY STATUS RESTARTS AGE
# my-nginx-5d9c6d4c8b-7xk2m 1/1 Running 0 45s
Lister les releases installées
helm list -n web
# Résultat attendu :
# NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
# my-nginx web 1 2026-02-28 10:30:00.123456789 +0100 CET deployed nginx-15.14.0 1.25.4
Intégrez vos déploiements Helm dans un pipeline CI/CD pour Kubernetes pour automatiser vos releases.
Étape 5 : Personnaliser avec les values
Vous personnalisez un chart en surchargeant ses values. Deux méthodes existent : inline ou via fichier.
Méthode 1 : Paramètres inline
helm install my-nginx bitnami/nginx \
--set replicaCount=3 \
--set service.type=ClusterIP \
--namespace web
Méthode 2 : Fichier de values (recommandée)
Créez un fichier custom-values.yaml :
# custom-values.yaml
replicaCount: 3
service:
type: ClusterIP
port: 80
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 100m
memory: 128Mi
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 80
Installez avec ce fichier :
helm install my-nginx bitnami/nginx -f custom-values.yaml --namespace web
Combiner plusieurs fichiers
Vous pouvez superposer des configurations. Les fichiers ultérieurs écrasent les précédents :
helm install my-nginx bitnami/nginx \
-f base-values.yaml \
-f production-values.yaml \
--namespace web
À retenir : Versionnez vos fichiers values dans Git. C'est votre source de vérité pour reproduire les déploiements.
Consultez le guide sur le monitoring et dépannage Kubernetes pour surveiller vos applications déployées.
Étape 6 : Upgrader et rollback vos releases
Les upgrades appliquent de nouvelles configurations ou versions. Helm conserve l'historique pour les rollbacks.
Upgrader une release
Modifiez votre fichier custom-values.yaml, puis :
helm upgrade my-nginx bitnami/nginx -f custom-values.yaml --namespace web
# Résultat attendu :
# Release "my-nginx" has been upgraded. Happy Helming!
# NAME: my-nginx
# LAST DEPLOYED: Fri Feb 28 14:45:00 2026
# NAMESPACE: web
# STATUS: deployed
# REVISION: 2
Consulter l'historique
helm history my-nginx -n web
# Résultat attendu :
# REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
# 1 Fri Feb 28 10:30:00 2026 superseded nginx-15.14.0 1.25.4 Install complete
# 2 Fri Feb 28 14:45:00 2026 deployed nginx-15.14.0 1.25.4 Upgrade complete
Rollback vers une version précédente
helm rollback my-nginx 1 -n web
# Résultat attendu :
# Rollback was a success! Happy Helming!
Vérifiez que le rollback a fonctionné :
helm history my-nginx -n web
# La révision 3 apparaît avec la description "Rollback to 1"
Pour des déploiements sans interruption, étudiez le Rolling Update Kubernetes ou le Blue-Green Deployment.
Étape 7 : Créer votre propre chart
Vous pouvez packager vos applications en charts réutilisables. C'est une compétence testée au CKAD.
Générer la structure
helm create my-app
# Résultat attendu :
# Creating my-app
Structure du chart généré
my-app/
├── Chart.yaml # Métadonnées du chart
├── values.yaml # Valeurs par défaut
├── templates/ # Templates Kubernetes
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── ingress.yaml
│ ├── hpa.yaml
│ └── _helpers.tpl # Fonctions réutilisables
└── charts/ # Dépendances
Tester localement avant installation
Validez la syntaxe de votre chart :
helm lint my-app
# Résultat attendu :
# ==> Linting my-app
# [INFO] Chart.yaml: icon is recommended
# 1 chart(s) linted, 0 chart(s) failed
Générez les manifestes sans installer :
helm template my-app ./my-app -f custom-values.yaml
# Affiche les YAML générés pour vérification
Installation dry-run
helm install my-app ./my-app --dry-run --debug -n production
# Simule l'installation et affiche les erreurs potentielles
À retenir : Testez systématiquement avec lint, template et dry-run. Vous détectez les erreurs avant qu'elles n'atteignent la production.
La formation LFD459 couvre en détail la création de charts Helm pour le CKAD.
Dépannage des erreurs courantes
Erreur : "INSTALLATION FAILED: cannot re-use a name"
Cause : Une release avec ce nom existe déjà.
helm list -n web
# Vérifiez si la release existe
helm uninstall my-nginx -n web
# Puis réinstallez
Erreur : "Error: UPGRADE FAILED: another operation is in progress"
Cause : Une opération précédente est bloquée.
helm history my-nginx -n web
# Identifiez la release en état "pending-*"
kubectl get secrets -n web -l owner=helm
# Supprimez le secret correspondant si nécessaire
Pods en CrashLoopBackOff après installation
Diagnostic :
kubectl describe pod <pod-name> -n web
kubectl logs <pod-name> -n web --previous
Solutions courantes :
- Vérifiez les ressources (CPU/mémoire insuffisantes)
- Contrôlez les variables d'environnement
- Validez les secrets et ConfigMaps référencés
Pour approfondir le diagnostic, consultez le guide Monitoring et dépannage Kubernetes.
Chart introuvable dans le repository
helm repo update
helm search repo <chart-name> --versions
# Vérifiez que le repository contient bien le chart
Bonnes pratiques en production
Versionnez tout
Stockez vos values dans Git avec votre code applicatif. Utilisez des branches pour les environnements (dev, staging, production).
Utilisez des namespaces dédiés
helm install my-app ./my-app --namespace production --create-namespace
Activez l'historique long
Par défaut, Helm conserve 10 révisions. Augmentez si nécessaire :
helm upgrade my-app ./my-app --history-max 25
Signez vos charts
Pour la production, activez la vérification des signatures :
helm verify my-app-1.0.0.tgz
helm install my-app my-app-1.0.0.tgz --verify
Selon Spectro Cloud State of Kubernetes 2025, 80% des organisations gèrent plus de 20 clusters en production. La standardisation via Helm devient indispensable.
Prochaines étapes : formez-vous avec SFEIR
Vous maîtrisez maintenant les fondamentaux de Helm. Pour aller plus loin et obtenir votre certification, explorez ces formations :
- LFD459 Kubernetes pour les développeurs : 3 jours pour préparer le CKAD, incluant Helm et les déploiements applicatifs
- LFS458 Administration Kubernetes : 4 jours pour le CKA, couvrant l'administration de clusters en production
- Kubernetes les fondamentaux : 1 jour pour découvrir Kubernetes avant d'approfondir
Consultez le calendrier des formations pour réserver votre prochaine session. Comme l'indique TealHQ : "Don't let your knowledge remain theoretical - set up a real Kubernetes environment to solidify your skills."
Contactez nos conseillers pour définir votre parcours de certification Kubernetes.