Setting up dynamic provisioning for bare betal setup

Asking for help? Comment out what you need so we can get more information to help you!

Cluster information:

Kubernetes version: 1.18.3
Cloud being used: bare metal
Installation method: Creating a single control-plane cluster with kubeadm | Kubernetes
Host OS: Debian buster
CNI and version: Calico ?
CRI and version: docker?

I have a bare metal setup and I am interested in setting up persistent volumes that are dynamically provisioning. I want this to make it easier for me to deploy a postgresql helm chart and have database replication. I am ok with this database(s) only running on one particular node. I also don’t have any RBAC stuff explicitly configured (if that makes setting this up easier).
Is there a good way to set up dynamic provisioning for a bare metal cluster?