Hoe HashiCorp Vault in Kubernetes te deployen zonder bergen YAML-manifesten te schrijven
Wie ooit geprobeerd heeft om HashiCorp Vault handmatig op te zetten in een Kubernetes-cluster herinnert zich de eindeloze hoeveelheid Deployments, StatefulSets, ConfigMaps, TLS-secrets en sidecar-containers. Eén verkeerde indentatie in een YAML-bestand — en je applicaties verliezen de toegang tot databases.
De officiële vault-helm chart lost dit probleem op. HashiCorp-engineers hebben de deployment van de secrets manager verpakt in een enkele chart die alles dekt, van een lokale ontwikkelomgeving tot een gedistribueerd HA-cluster.
Waarom deze chart gebruiken?
De repository is de standaard geworden voor het draaien van Vault binnen Kubernetes. Je hoeft geen pod-specificaties vanaf nul te schrijven of uit te zoeken hoe je opslag moet mounten voor de ingebouwde Raft-consensus. De instellingen zijn al verwerkt in het values.yaml-configuratiebestand.
De tool is nuttig voor DevOps-engineers en systeembeheerders die geheime opslag organiseren in hun infrastructuur. Als je services API-sleutels, database-inloggegevens of TLS-certificaten nodig hebben, helpt de chart je om betrouwbaar een vault te deployen in een paar minuten.
Belangrijkste functies
De chart-ontwikkelaars hebben de belangrijkste gebruiksscenario's voorzien:
-
Snel schakelen tussen operationele modi Je kunt een instance omschakelen van standalone-modus naar een fouttolerante cluster via configuratieparameters. Voor lokaal testen volstaat een minimaal values-bestand, terwijl productieomgevingen ingebouwde Raft of een externe database inschakelen.
-
Geheiminjectie via Vault Agent Injector Je applicatie hoeft niet langer te weten hoe het de REST API van de vault moet gebruiken. De injector voegt automatisch een sidecar-container toe aan de pod. Deze container haalt geheimen op en slaat ze op in het lokale bestandssysteem van de pod. De applicatie leest gegevens uit het bestand zonder ooit met het Vault-netwerk te interageren.
-
Authenticatie via Kubernetes Auth Engine De chart integreert met het Kubernetes-autorisatiemechanisme. De vault verifieert pod-serviceaccounts en levert geheimen alleen aan geautoriseerde applicaties.
-
Componenten scheiden Je kunt de serverkant, agents en injector apart deployen. Dit helpt je om de Vault-server buiten de hoofdapplicatie te verplaatsen of alleen lichtgewicht agents op worker-nodes te draaien.
Hoe de Vault te deployen
Je hebt een draaiende Kubernetes-cluster versie 1.29 of hoger en Helm versie 3.6+ geïnstalleerd nodig. Het opzetten van een basale release-instance kost slechts twee commando's:
helm repo add hashicorp https://helm.releases.hashicorp.com
helm install vault hashicorp/vault
Voor een echte omgeving zijn standaardinstellingen meestal niet voldoende. Je hebt een aangepast parametersbestand nodig, bijvoorbeeld custom-values.yaml:
server:
ui:
enabled: true
dataStorage:
enabled: true
size: 10Gi
injector:
enabled: true
Deploy de chart met de samengestelde parameters:
helm install vault hashicorp/vault -f custom-values.yaml
Daarna hoef je alleen maar toegang te krijgen tot de draaiende pod, het vault operator init commando uit te voeren en de vault te unsealen.
Operationele overwegingen
Het values.yaml-configuratiebestand bevat honderden opties. Deze allemaal in één keer doorgronden kan uitdagend zijn, dus reken erop dat je tijd kwijt bent aan het lezen van de officiële documentatie.
Het tweede punt betreft het unsealen van de vault na herstarts. Standaard start Vault in een verzegelde staat. Voor productiegebruik is het beter om vanaf het begin Auto-Unseal via cloud KMS-services te configureren, anders moet je na elke pod-crash handmatig sleutels invoeren.
Voor wie is deze tool
Als je met Kubernetes werkt en van plan bent om gecentraliseerd geheimenbeheer te implementeren, bespaart deze chart je weken werk aan je eigen manifests.
Begin met het deployen van een testinstance in een geïsoleerde namespace. Probeer injector-annotaties toe te voegen aan een eenvoudige testapplicatie en zie hoe geheimen hun weg naar de container vinden zonder enige wijzigingen in je broncode.
Gerelateerde projecten