Comment déployer HashiCorp Vault dans Kubernetes sans écrire des tonnes de manifestes YAML
Quiconque a essayé de configurer HashiCorp Vault dans un cluster Kubernetes manuellement se souvient de l'assemblage sans fin de Deployments, StatefulSets, ConfigMaps, secrets TLS et conteneurs sidecar. Une indentation mal placée dans un fichier YAML — et vos applications perdent l'accès aux bases de données.
Le chart officiel vault-helm résout ce problème. Les ingénieurs de HashiCorp ont empaqueté le déploiement du gestionnaire de secrets dans un chart unique qui couvre tout, d'un environnement de développement local à un cluster HA distribué.
Pourquoi utiliser ce chart en premier lieu ?
Le dépôt est devenu la norme pour exécuter Vault dans Kubernetes. Vous n'avez pas besoin d'écrire des spécifications de pods from scratch ni de comprendre comment monter le stockage pour le consensus Raft intégré. Les paramètres sont déjà intégrés dans le fichier de configuration values.yaml.
L'outil est utile pour les ingénieurs DevOps et les administrateurs système qui organisent le stockage des secrets dans leur infrastructure. Si vos services ont besoin de clés API, d'identifiants de base de données ou de certificats TLS, le chart vous aide à déployer un vault fiable en quelques minutes.
Fonctionnalités principales
Les développeurs du chart ont anticipé les principaux cas d'utilisation :
-
Changement rapide entre les modes de fonctionnement
Vous pouvez basculer une instance du mode standalone vers un cluster tolérant aux pannes via des paramètres de configuration. Pour les tests locaux, un fichier values minimal suffit, tandis que les environnements de production activent Raft intégré ou une base de données externe. -
Injection de secrets via Vault Agent Injector
Votre application n'a plus besoin de savoir comment communiquer avec l'API REST du vault. L'injecteur ajoute automatiquement un conteneur sidecar au pod. Ce conteneur récupère les secrets et les enregistre dans le système de fichiers local du pod. L'application lit les données du fichier sans jamais interagir avec le réseau Vault. -
Authentification via le moteur d'authentification Kubernetes
Le chart s'intègre au mécanisme d'autorisation de Kubernetes. Le vault vérifie les comptes de service des pods et livre les secrets uniquement aux applications autorisées. -
Séparation des composants
Vous pouvez déployer séparément le côté serveur, les agents et l'injecteur. Cela vous aide à déplacer le serveur Vault en dehors de l'application principale ou à exécuter uniquement des agents légers sur les nœuds worker.
Comment déployer le Vault
Vous aurez besoin d'un cluster Kubernetes en cours d'exécution version 1.29 ou ultérieure et de Helm version 3.6+ installé. Configurer une instance de release basique ne prend que deux commandes :
helm repo add hashicorp https://helm.releases.hashicorp.com
helm install vault hashicorp/vault
Pour un environnement réel, les paramètres standard ne suffisent généralement pas. Vous aurez besoin d'un fichier de paramètres personnalisé, par exemple custom-values.yaml :
server:
ui:
enabled: true
dataStorage:
enabled: true
size: 10Gi
injector:
enabled: true
Déployez le chart avec les paramètres assemblés :
helm install vault hashicorp/vault -f custom-values.yaml
Après cela, vous n'avez plus qu'à accéder au pod en cours d'exécution, exécuter la commande vault operator init et unseal le vault.
Considérations opérationnelles
Le fichier de configuration values.yaml contient des centaines d'options. Les comprendre du premier coup peut être difficile, alors préparez-vous à passer du temps à lire la documentation officielle.
Le deuxième point concerne l'unsealing du vault après les redémarrages. Par défaut, Vault démarre dans un état sealed. Pour une utilisation en production, il est préférable de configurer Auto-Unseal via les services cloud KMS dès le départ, sinon vous devrez entrer les clés manuellement après chaque crash de pod.
Pour qui est cet outil ?
Si vous travaillez avec Kubernetes et prévoyez de mettre en place une gestion centralisée des secrets, ce chart vous fera gagner des semaines de travail sur vos propres manifestes.
Commencez par déployer une instance de test dans un namespace isolé. Essayez d'ajouter des annotations d'injecteur à une application de test simple et observez comment les secrets accèdent au conteneur sans aucune modification de votre code source.
Projets similaires