Vault
Run Vault on Kubernetes
Vault can be deployed into Kubernetes using the official HashiCorp Vault Helm chart. The Helm chart allows users to deploy Vault in various configurations:
- Dev: a single in-memory Vault server for testing Vault
- Standalone (default): a single Vault server persisting to a volume using the file storage backend
- High-Availability (HA): a cluster of Vault servers that use an HA storage backend such as Consul (default)
- External: a Vault Agent Injector server that depends on an external Vault server
Use cases
Running a Vault Service: The Vault server cluster can run directly on Kubernetes. This can be used by applications running within Kubernetes as well as external to Kubernetes, as long as they can communicate to the server via the network.
Accessing and Storing Secrets: Applications using the Vault service running in Kubernetes can access and store secrets from Vault using a number of different secret engines and authentication methods.
Running a Highly Available Vault Service: By using pod affinities, highly available backend storage (such as Consul) and auto-unseal, Vault can become a highly available service in Kubernetes.
Encryption as a Service: Applications using the Vault service running in Kubernetes can leverage the Transit secret engine as "encryption as a service". This allows applications to offload encryption needs to Vault before storing data at rest.
Audit Logs for Vault: Operators can choose to attach a persistent volume to the Vault cluster which can be used to store audit logs.
And more! Vault can run directly on Kubernetes, so in addition to the native integrations provided by Vault itself, any other tool built for Kubernetes can choose to leverage Vault.
Supported kubernetes versions
The following Kubernetes minor releases are currently supported. The latest version is tested against each Kubernetes version. It may work with other versions of Kubernetes, but those are not supported.
- 1.33
- 1.32
- 1.31
- 1.30
- 1.29
Getting started with Vault and Kubernetes
There are several ways to try Vault with Kubernetes in different environments.
Installation guides
Vault Installation to Minikube via Helm with Integrated Storage covers installing Vault locally using Minikube and the official Helm chart.
Vault Installation to Red Hat OpenShift via Helm covers installing Vault using Helm on Red Hat's OpenShift platform.
Integrate a Kubernetes Cluster with an External Vault provides an example of making Vault accessible via a Kubernetes service and endpoint.
Vault on Kubernetes Deployment Guide covers the steps required to install and configure a single HashiCorp Vault cluster.
Consume secrets in Kubernetes
Vault provides the following integrations to seamlessly consume secrets in your Kubernetes workloads without modifying your existing application code:
- Vault Secrets Operator
- Protected secrets with Vault Secrets Operator CSI driver
- Vault Secrets Store CSI provider
- Vault Agent Injector
Refer to the comparisons page for more details.
Documentation
- Vault on Kubernetes Security Considerations provides recommendations specific to securely running Vault in a production Kubernetes environment.