Consul
Deploy Consul on self-hosted Kubernetes
This topic describes how to deploy a Consul datacenter to an a self-hosted Kubernetes cluster. The instructions are the same as for cloud-hosted Kubernetes, but you may need to pre-define Persistent Volume Claims (PVCs) and a default storage class for server agents.
Refer to the Deploy Consul with Helm and Deploy Consul with consul-k8s
for the general installation process.
Predefined persistent volume claims (PVCs)
If running a self-hosted Kubernetes installation, you may need to pre-create the persistent volumes for the stateful set that the Consul servers run in.
The only way to use a pre-created PVC is to name them in the format Kubernetes expects.
data-<kubernetes namespace>-<helm release name>-consul-server-<ordinal>
The Kubernetes namespace you are installing into, Helm release name, and ordinal must match between your Consul servers and your pre-created PVCs. You only need as many PVCs as you have Consul servers. For example, given a Kubernetes namespace of "vault," a release name of "consul," and 5 servers, you would need to create PVCs with the following names.
data-vault-consul-consul-server-0
data-vault-consul-consul-server-1
data-vault-consul-consul-server-2
data-vault-consul-consul-server-3
data-vault-consul-consul-server-4
Storage class
Your Kubernetes installation must either have a default storage class specified (refer to Storage classes and Change default storage class) or you must specify the storage class for the Consul servers.
server:
storageClass: your-class
Refer tothe Helm reference for more information.