I followed this page  to set up nfs with my k8s 1.25.
However the nfs client provisioner is too old and deprecated.
When creating a pvc, it is always pending.
Checking the provisioner log, it is complaining about selfLink being empty.
E0331 06:53:31.562497 1 controller.go:1004] provision "controller-myk8scloud/storage-controller-0" class "default": unexpected error getting claim reference: selfLink was empty, can't make reference
This issue  suggests we can fix that by adding "--feature-gates=RemoveSelfLink=false" to apiserver.
But the value RemoveSelfLink is always true from 1.24  and can't be set to false.
So according to some comments of  I changed to "gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.0", which fixed the issue.
It seems nfs-subdir-external-provisioner is the replacement of nfs-client-provisioner 
My deployment looks like , and my storage class is like .
Please update templates/nfs-provisioner.yaml to use the new nfs-subdir-external-provisioner for k8s 1.24+.
gcr.io/k8s staging sig-storage/nfs-subdir external provisioner:v4.0.0