How to make Vault Highly Available

Deploy OSS Vault with HA on NFS

Karthikeyan Govindaraj
6 min readJul 30, 2020
Vault Initializing and Load Balancing

In this article we are going to see how to deploy the open source Vault in production environment, initialize, unseal and make it highly available. To achieve that, we are going to utilize the open source consul and open source vault along with the Vault Initializer and Vault Load Balancer.

As referenced in this GH issue, Vault doesn’t natively support NFS backend. And that is one of the reason we are going to use Consul. To deploy consul with NFS backend, let’s use this official helm chart here.

After deploying consul cluster with the NFS backend on the kubernetes, the k8s cluster will look similar to this.

Consul cluster deployed in Kubernetes with 5 worker nodes

The above figure is with the assumption of the Kubernetes cluster having five worker nodes. So the consul agents will be deployed in all the worker nodes and for HA we deploy three instances of consul server. Consul uses a consensus protocol based on RAFT to provide Consistency. So it needs an odd number of instances to form a quorum.

Now using the kubernetes service via ingress, the consul can be accessed from outside the cluster.

--

--