Yea storage has always been the worst part to manage, i mostly use NFS, using nfs-subdir-provisioner and then just plain manual provisioning (subPath)
My previous setup was 1 Master + 3 Worker nodes in the same data enter, i never had any problems, but i guess it really depends exactly what setup you use.
For me i used kubeadm + flannel, a very basic setup, and also MetalLB in the new setup (and home lab)