Points clés
- ✓Helm est le gestionnaire de paquets officiel de Kubernetes
- ✓Un chart Helm encapsule tous les manifestes YAML d'une application
- ✓'Trois commandes essentielles: helm install, upgrade, rollback'
Ce tutoriel Helm Kubernetes débutant vous guide de l'installation à votre premier déploiement en moins de 30 minutes. Helm, le gestionnaire de paquets de Kubernetes, simplifie le déploiement d'applications complexes en encapsulant les manifestes YAML dans des charts réutilisables et versionnés. Si vous êtes ingénieur infrastructure, ingénieur opérations Cloud ou administrateur système, cette compétence accélère vos workflows de déploiement.
TL;DR : Helm permet de déployer des applications Kubernetes avec une seule commande (helm install), de les mettre à jour (helm upgrade) et de les rollback (helm rollback). C'est l'outil standard utilisé par 70% des organisations Kubernetes.
Les professionnels qui veulent aller plus loin suivent la formation LFS458 Administration Kubernetes.
Qu'est-ce que Helm et pourquoi l'utiliser ?
Helm est le gestionnaire de paquets officiel de Kubernetes. Un chart Helm est une collection de fichiers YAML qui définissent une application Kubernetes complète : Deployments, Services, ConfigMaps, Secrets, Ingress.
Selon Orca Security 2025, 70% des organisations utilisent Helm dans leurs environnements cloud. Cette adoption massive s'explique par trois avantages :
| Avantage | Sans Helm | Avec Helm |
|---|---|---|
| Déploiement | kubectl apply -f *.yaml (ordre manuel) | helm install (automatisé) |
| Mise à jour | Modification manuelle des manifestes | helm upgrade avec values |
| Rollback | Recherche et restauration manuelle | helm rollback vers version N |
| Reproductibilité | Variable selon l'opérateur | Garantie par le chart |
À retenir : Helm standardise le déploiement et réduit les erreurs humaines grâce à l'abstraction et la reproductibilité.
Comment installer Helm ? Tutoriel Helm Kubernetes débutant
Installation sur différents OS
# macOS avec Homebrew
brew install helm
# Linux (script officiel)
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# Windows avec Chocolatey
choco install kubernetes-helm
# Vérification
helm version
# version.BuildInfo{Version:"v3.14.2", ...}
Configuration initiale
Helm 3 ne nécessite pas de composant serveur (Tiller a été supprimé). Assurez-vous simplement que kubectl est configuré pour votre cluster :
# Vérifier la connexion au cluster
kubectl cluster-info
# Ajouter le repository officiel
helm repo add stable https://charts.helm.sh/stable
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
Pour configurer votre environnement local, consultez Installer Kubernetes en local : guide complet avec Minikube, Kind et K3d.
Comment déployer votre première application avec Helm ?
Rechercher un chart
# Rechercher dans les repos configurés
helm search repo nginx
# Rechercher sur Artifact Hub (registre public)
helm search hub wordpress
Installer un chart
# Installation basique
helm install my-nginx bitnami/nginx
# Installation avec namespace dédié
helm install my-nginx bitnami/nginx --namespace web --create-namespace
# Installation avec valeurs personnalisées
helm install my-nginx bitnami/nginx \
--set service.type=ClusterIP \
--set replicaCount=3
Vérifier le déploiement
# Lister les releases
helm list
# Statut détaillé
helm status my-nginx
# Voir les ressources créées
kubectl get all -l app.kubernetes.io/instance=my-nginx
À retenir : Une release Helm est une instance d'un chart déployée dans le cluster. Vous pouvez avoir plusieurs releases du même chart.
Comment personnaliser un déploiement Helm ?
Le fichier values.yaml
Chaque chart contient un fichier values.yaml définissant les valeurs par défaut. Consultez les valeurs disponibles :
# Afficher les valeurs par défaut
helm show values bitnami/nginx > values.yaml
# Installer avec un fichier de valeurs personnalisé
helm install my-nginx bitnami/nginx -f my-values.yaml
Exemple de personnalisation
# my-values.yaml
replicaCount: 3
image:
tag: "1.25.3"
service:
type: LoadBalancer
port: 80
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
ingress:
enabled: true
hostname: app.example.com
Ces configurations s'alignent avec les pratiques décrites dans le Mémo Kubernetes : objets, ressources API et raccourcis.
Comment mettre à jour et rollback ?
Mise à jour d'une release
# Modifier les valeurs
helm upgrade my-nginx bitnami/nginx --set replicaCount=5
# Ou avec un fichier values
helm upgrade my-nginx bitnami/nginx -f updated-values.yaml
# Voir l'historique des révisions
helm history my-nginx
Rollback vers une version précédente
# Rollback vers la révision 1
helm rollback my-nginx 1
# Vérifier le statut
helm status my-nginx
Le rollback instantané offre une sécurité que les déploiements manuels ne peuvent égaler.
Comment créer votre propre chart ?
Structure d'un chart
# Créer un nouveau chart
helm create my-app
# Structure générée
my-app/
├── Chart.yaml # Métadonnées du chart
├── values.yaml # Valeurs par défaut
├── templates/ # Templates Kubernetes
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── ingress.yaml
│ └── _helpers.tpl # Fonctions helper
└── charts/ # Dépendances
Template basique
# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "my-app.fullname" . }}
labels:
{{- include "my-app.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "my-app.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "my-app.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
ports:
- containerPort: {{ .Values.service.port }}
À retenir : Les templates Helm utilisent Go templates. Les variables entre {{ }} sont remplacées par les valeurs de values.yaml.
Debugging Helm : résoudre les erreurs courantes
Prévisualiser les manifestes
# Rendre les templates sans installer
helm template my-nginx bitnami/nginx -f values.yaml
# Mode debug
helm install my-nginx bitnami/nginx --dry-run --debug
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
Error: INSTALLATION FAILED | Manifestes invalides | Utiliser --dry-run --debug |
cannot re-use a name | Release existe déjà | Désinstaller ou choisir un autre nom |
context deadline exceeded | Timeout réseau | Vérifier la connexion cluster |
Pour le diagnostic approfondi des pods, consultez Debugger un pod en CrashLoopBackOff : causes, diagnostic et solutions.
Commandes Helm essentielles
# Gestion des repos
helm repo add [name] [url]
helm repo update
helm repo list
# Recherche
helm search repo [keyword]
helm search hub [keyword]
# Installation et gestion
helm install [release] [chart]
helm upgrade [release] [chart]
helm rollback [release] [revision]
helm uninstall [release]
# Inspection
helm list
helm status [release]
helm history [release]
helm get values [release]
Tutoriel Helm Kubernetes débutant : checklist de démarrage
| Étape | Commande | Validation |
|---|---|---|
| Installer Helm | brew install helm | helm version |
| Ajouter repo | helm repo add bitnami ... | helm repo list |
| Premier install | helm install test bitnami/nginx | helm list |
| Personnaliser | -f values.yaml | helm get values |
| Mettre à jour | helm upgrade | helm history |
| Nettoyer | helm uninstall test | helm list |
Pour approfondir le déploiement et mise en production Kubernetes, Helm est un outil incontournable.
Passez à l'action : déployez votre premier chart
Ce tutoriel Helm Kubernetes débutant vous a donné les bases pour installer, configurer et gérer des applications Kubernetes. Selon le CNCF Annual Survey 2025, 82% des organisations exécutent Kubernetes en production. Maîtriser Helm vous positionne parmi les professionnels capables de déployer rapidement et fiablement.
Installez Helm maintenant, déployez un chart nginx, puis personnalisez-le avec vos propres values. Pour aller plus loin :
- Découvrez Kubernetes : Kubernetes, les fondamentaux (1 jour)
- Administrez des clusters : LFS458 Administration Kubernetes (4 jours)
- Développez sur Kubernetes : LFD459 Kubernetes pour les développeurs (3 jours)
Consultez Déployer votre premier pod Kubernetes en 15 minutes pour les fondamentaux avant Helm, ou explorez les Tutoriels et guides pratiques Kubernetes. Pour approfondir, consultez notre créer cluster Kubernetes cloud AWS GCP Azure.
Contactez nos conseillers pour organiser votre formation.