pod has unbound immediate PersistentVolumeClaims kubernetes nfs volume

7/30/2019

I know there are lots of discussions round this topic but somehow, I can not get it working.
I am trying to install elastic search cluster with statefulset and nfs persistent volume on bare metal. My pv, pvc and sc configs are as below:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: manual
provisioner: kubernetes.io/no-provisioner
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-storage-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
  - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: manual
  nfs:
    server: 172.23.240.85
    path: /servers/scratch50g/vishalg/kube

Statefuleset has following pvc section defined:

volumeClaimTemplates:
  - metadata:
      name: beehive-pv-claim
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: manual
      resources:
        requests:
          storage: 1Gi

Now, when I try to deploy it, I get the following error on statefulset:

 pod has unbound immediate PersistentVolumeClaims 

When I get the pvc events, it shows:

 Warning  ProvisioningFailed  3s (x2 over 12s)  persistentvolume-controller  no volume plugin matched

I tried not giving any storageclass (did not create it) and removed it from pv and pvc both altogether. This time, I get below error:

no persistent volumes available for this claim and no storage class is set

I also tried setting storageclass as "" in pvc and not mention it in pv, but it did not work also.

Please help here. What can I check more to get it working?
Can it be related to nfs server and path (if by chance, it is mentioned incorrectly), though I see pv created successfully.

EDIT1:
One issue was that accessmode of pvc was different from accessmode of pv. I got it corrected and now my pvc is shown as bound.
But now even, I get following error:
pod has unbound immediate PersistentVolumeClaims I tried using local volume also but again same error. PV and PVC are bound correctly but statefulset shows above error.
When using hostPath volume, everything works fine.
Is anything fundamentally that I am doing wrong here?

EDIT2
I got the local volume working. It takes some time to pod to bind to pvc. After waiting for coupl eof minutes, my pod got bind to pvc.
I think, nfs binding issue can be more of permission related. But still, k8s should give out some error for the same.

-- NumeroUno
kubernetes
nfs
persistent-volume-claims

1 Answer

8/2/2019

Could you try matching the accessModes as well?

The PVC is targeting a ReadWriteOnce volume right now.

And if you mount the nfs volume on the node manually, any access/security issue can be debugged.

-- AYA
Source: StackOverflow