helm (Kubernetes)
Pour macOS avec Homebrew :
brew install helm
2. Ajouter un dépôt Helm
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo updateBitnami maintient un catalogue de charts testés et prêts pour la production pour les bases de données, les systèmes CMS et les outils de monitoring.
3. Rechercher un chart
helm search repo bitnami | grep nginxCette commande affiche tous les charts nginx disponibles dans le dépôt Bitnami.
4. Installer un chart
helm install mon-nginx bitnami/nginx --namespace production --create-namespaceCette commande installe le chart nginx dans le namespace `production`. Helm crée le namespace automatiquement et déploie tous les manifestes Kubernetes du chart.
5. Configurer un chart avec des values
Créez un fichier `values-prod.yaml` :replicaCount: 3
image:
tag: "1.25.3"
service:
type: LoadBalancer
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"Installez avec une configuration personnalisée :
helm install mon-app ./helm-chart --values values-prod.yaml
Le même chart fonctionne désormais dans les environnements de développement, de test et de production avec différentes configurations via le fichier `values.yaml`.
6. Mettre à niveau une release
helm upgrade mon-nginx bitnami/nginx --namespace production --atomicLe drapeau `--atomic` annule automatiquement la mise à niveau en cas d’échec, ce qui augmente la fiabilité des déploiements.
7. Utiliser des registres OCI
Helm 3.14 et supérieur prend en charge les artefacts OCI. Stockez les charts dans des registres de conteneurs :helm registry login registry-1.docker.io --username votre-nom-dutilisateur
helm package ./mon-chart
helm push mon-chart-1.0.0.tgz oci://registry-1.docker.io/bitnamichartsLa prise en charge d’OCI signifie que les charts sont gérés aux côtés des images de conteneurs dans le même écosystème sécurisé. Les images durcies Docker offrent des charts avec conformité SLSA niveau 3, des SBOM et des attestations signées via des outils Sigstore tels que Cosign.
8. Supprimer une release
helm uninstall mon-nginx --namespace productionCette commande supprime toutes les ressources Kubernetes associées à la release.
Vérification
Vérifiez que l’installation a été effectuée correctement :helm list --namespace production
kubectl get pods --namespace production
kubectl get svc --namespace productionLa commande `helm list` affiche toutes les releases actives. `kubectl get pods` et `kubectl get svc` confirment que les pods tournent et que les services sont disponibles.
Problèmes fréquents
1. Helm ne peut pas se connecter au cluster
Vérifiez votre kubeconfig :kubectl config current-context
kubectl cluster-infoSi kubectl fonctionne mais pas Helm, vérifiez les variables d’environnement Helm :
echo $KUBECONFIG
helm version --client
2. La mise à niveau échoue et la release est en statut « failed »
helm rollback mon-nginx 1 --namespace productionCela ramène la release à la révision 1. Utilisez `helm history mon-nginx --namespace production` pour voir toutes les révisions.
3. L’installation du chart échoue avec « manifest is not valid »
Validez la syntaxe du chart :helm lint ./mon-chart
helm template ./mon-chart --debug`helm template` rend les manifestes localement sans les déployer, ce qui aide à détecter les erreurs dans les templates.
Helm 3 versus Helm 2
Helm 3, annoncé le 13 novembre 2019, a supprimé Tiller, le composant côté serveur de Helm 2. Cela a simplifié l’architecture et amélioré la sécurité car plus aucun service à long terme avec des droits étendus n’était nécessaire dans le cluster. Helm 3 a introduit une meilleure prise en charge de RBAC, des mécanismes de mise à niveau et de rollback améliorés et un moteur de templating plus robuste.Helm en tant que projet CNCF
Helm a commencé en 2015 chez Deis, une startup qui construisait des outils de développement pour les plateformes cloud. Le premier commit dans le dépôt Git date du 19 octobre 2015. Helm Classic a été publié lors de la première KubeCon en novembre 2015. En janvier 2016, Helm Classic a fusionné avec le Kubernetes Deployment Manager de Google et est devenu partie intégrante de l’écosystème Kubernetes. Après le rachat de Deis par Microsoft en 2017, le projet a continué à se développer en mettant l’accent sur la stabilité et la sécurité.En juin 2018, Helm est passé de sous-projet à projet CNCF à part entière, avec le même statut que Prometheus, Envoy et etcd. Le 30 avril 2020, Helm est devenu un projet « graduate » — le dixième projet à atteindre ce statut. Helm v4.0.0 est sorti le 12 novembre 2025 lors de la KubeCon + CloudNativeCon North America.
Structure des charts Helm
Un chart contient tous les manifestes Kubernetes nécessaires pour une application : deployments, services, ingresses, configmaps et secrets. Les charts sont structurés de manière hiérarchique et peuvent contenir d’autres charts en tant que dépendances. La structure de répertoire d’un chart :mijn-chart/
├── Chart.yaml
├── values.yaml
├── templates/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── _helpers.tpl
└── charts/
└── afhankelijkheid-1.0.0.tgz`Chart.yaml` contient des métadonnées telles que le nom et la version. `values.yaml` définit la configuration par défaut. Les templates dans le dossier `templates/` utilisent le templating Go et peuvent être adaptés à l’aide des values.
Helm et la chaîne d’approvisionnement logicielle
Les charts Helm en tant qu’artefacts OCI soutiennent les pratiques de sécurité modernes. Docker Hardened Images contiennent des charts conformes au niveau SLSA 3, avec des SBOM complets et des attestations signées via Cosign. Ces attestations vérifient ce qui se trouve dans le chart, comment il a été construit et s’il respecte les politiques de sécurité. Docker Hub stocke les charts via la propriété `config` dans le manifeste d’image.Docker Compose Bridge convertit les fichiers compose en manifestes Kubernetes ou en charts Helm, ce qui permet de migrer des applications d’environnements Docker locaux vers Kubernetes. Compose Bridge configure automatiquement des endpoints de modèles pour les LLM et Docker Model Runner.
Freelens, une IDE Kubernetes communautaire, offre un support graphique pour Helm. Les utilisateurs installent, mettent à niveau et gèrent des charts via un tableau de bord sans utiliser la CLI, avec un état de cluster en temps réel et un accès terminal intégré.
Helm continue d’évoluer au sein de la CNCF et l’intégration avec les registres OCI, les outils de sécurité et les interfaces graphiques croît régulièrement — la question est de savoir quels nouveaux workflows la prochaine version majeure permettra.