Konvoy utilizes the localvolumeprovisioner for On-Prem deployments. The localvolumeprovisioner addon uses the local volume static provisioner to manage persistent volumes for pre-allocated disks. It does this by watching the /mnt/disks folder on each host and creating persistent volumes in the localvolumeprovisioner storage class for each disk that is discovered in this folder.
How do you know how many disks and therefore persistent volumes do you need for Konvoy? How big should they be? We will break each addon down by both quantity and size of Persistent Volumes needed for successful deployment.
Using DKP 2.1.1, Kommander 2.1.1 and Kaptain 1.3, you can consider these the bare minimum to get ./dkp create cluster pre-provisoned to work properly. Newer versions of DKP may demand additional PV beyond what is discussed here, so please keep that in mind. Your workloads will also affect how much storage space per PV is required so we can't give a recommended size or quantity as customer workloads vary widely.
Gitea - 2 PV:
data-gitea-0 10Gi
data-gitea-postgresql-0 10Gi
Grafana Loki - 7 PV:
data-grafana-loki-loki-distributed-compactor 10Gi
data-grafana-loki-loki-distributed-ingester-0 10Gi
data-grafana-loki-loki-distributed-querier-0 10Gi
grafana-loki-minio0-grafana-loki-minio-ss-0-0 10Gi
grafana-loki-minio0-grafana-loki-minio-ss-0-1 10Gi
grafana-loki-minio0-grafana-loki-minio-ss-0-2 10Gi
grafana-loki-minio0-grafana-loki-minio-ss-0-3 10Gi
Velero - 4 PV:
data-minio-0 10Gi
data-minio-1 10Gi
data-minio-2 10Gi
data-minio-3 10Gi
Kubecost - 4 PV:
kubecost-cost-analyzer 32Gi
kubecost-prometheus-alertmanager 2Gi
kubecost-prometheus-server 32Gi
kommander-kubecost-cost-analyzer 32Gi
Prometheus - 1 PV:
db-prometheus-kube-prometheus-stack-prometheus-0 100Gi
AuthService - 1 PV:
authservice-pvc 10Gi
Fluentbit - 1 PV:
logging-operator-logging-fluentd-buffer-logging-operator-logging-fluentd-0 10Gi
Kaptain 1.3 - 7 PV:
data0-minio-ss-0-0 10Gi
data0-minio-ss-0-1 10Gi
data1-minio-ss-0-0 10Gi
data1-minio-ss-0-1 10Gi
datadir-kaptain-mysql-store-pxc-0 30Gi
datadir-kaptain-mysql-store-pxc-1 30Gi
datadir-kaptain-mysql-store-pxc-2 30Gi
In total, you will need a minimum of 27 PV spread across your Kubernetes nodes in order to successfully deploy DKP 2.1.1, Kommander 2.1.1 and Kaptain 1.3. You should plan for additional PV as your custom workloads will demand.
You can use the two kubectl commands below to evaluate the storage situation on your DKP On-Prem Clusters
List all PVC, how much space they request and how much they were allocated:
kubectl get pvc -A -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,REQUEST:.spec.resources.requests.storage,ALLOCATED:.status.capacity.storage,STATUS:.status.phase,PV:.spec.volumeName
List all Persistent Volumes and which hosts they reside on:
kubectl get pv -o custom-columns=NAME:.metadata.name,"LOCATION:"".metadata.annotations.pv\.kubernetes\.io/provisioned-by"