Guide complet8 min de lecture

Déployer avec Helm Charts : installation, configuration et bonnes pratiques

SFEIR Institute

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

TermeDéfinition
ChartUn chart est un package Helm contenant tous les manifestes Kubernetes nécessaires au déploiement d'une application
ReleaseUne release est une instance d'un chart déployée dans votre cluster avec une configuration spécifique
RepositoryUn repository est un serveur HTTP hébergeant des charts Helm téléchargeables
ValuesLes values sont des paramètres de configuration que vous passez au chart pour personnaliser le déploiement
TemplateUn 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 :

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.