Welcome to the Linux Foundation Forum!

lab 5.2 : Operation cannot be fulfilled on persistentvolumeclaims "pvc-one"

it's wierd. Using the resources for S_05. don't know that to do

I create a PV : kubectl create -f PVol.yaml ( I changed my for IP of my master node)
I create a PVC : kubectl create -f pvc.yaml
I create a deployment : kubectl create -f simpleapp.yaml-with-edits

but my pods are stuck at "Pending"

kubectl describe pod try1-dd4b9d99d-5n9gk

  Warning  FailedScheduling  3m36s  default-scheduler  error while running "VolumeBinding" prebind plugin for pod "try1-dd4b9d99d-5n9gk": Operation cannot be fulfilled on persistentvolumeclaims "pvc-one": the object has been modified; please apply your changes to the latest version and try again
  Warning  FailedScheduling  2m33s  default-scheduler  error while running "VolumeBinding" prebind plugin for pod "try1-dd4b9d99d-5n9gk": Failed to bind volumes: failed to check provisioning pvc: could not find v1.PersistentVolumeClaim "default/pvc-one"
  Warning  FailedScheduling  2m33s  default-scheduler  persistentvolumeclaim "pvc-one" not found

kubectl describe pvc pvc-one

  Normal   WaitForPodScheduled   7m40s                  persistentvolume-controller                                                                         waiting for pods try1-dd4b9d99d-xgt6p,try1-dd4b9d99d-hx5bm,try1-dd4b9d99d-8sxz6,try1-dd4b9d99d-vr4cn,try1-dd4b9d99d-5n9gk,try1-dd4b9d99d-pkxh6 to be scheduled
  Normal   Provisioning          3m55s (x5 over 7m40s)  rancher.io/local-path_local-path-provisioner-55d9494bdd-ls947_571488d7-3cb7-4150-a976-0bd747496858  External provisioner is provisioning volume for claim "default/pvc-one"
  Warning  ProvisioningFailed    3m55s (x5 over 7m40s)  rancher.io/local-path_local-path-provisioner-55d9494bdd-ls947_571488d7-3cb7-4150-a976-0bd747496858  failed to provision volume with StorageClass "local-path": Only support ReadWriteOnce access mode
  Normal   ExternalProvisioning  107s (x25 over 7m40s)  persistentvolume-controller                                                                         waiting for a volume to be created, either by external provisioner "rancher.io/local-path" or manually created by system administrator

kubectl describe pv pvvol-1

    Type:      NFS (an NFS mount that lasts the lifetime of a pod)
    Path:      /opt/sfw
    ReadOnly:  false
Events:        <none>

I installed nfs server on master and the nfs client on worker nodes too
from worker2

k8s-worker2:~$ ls -l /mnt/
total 4
-rw-r--r-- 1 root root 9 Oct 25 23:47 hello.txt

k8s-master:~/labs/LFD259/SOLUTIONS/s_05$ sudo showmount -e localhost

Export list for localhost:
/opt/sfw *


  • hummm. I saw that I added local-path-storage before

      - name: Deploy local-path-provisioner
        become: false
        command: kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml
      - name: Set local-path sc to default
        become: false
        command: 'kubectl patch storageclass local-path -p ''{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'''

    why does it interfers with the NFS in the example. Is it because we didn't specify a storage class. Probably, because of that, it's using the default, which in the local-path-provisioner. What should I modify to make it work (without uninstalling the local-path) ?

  • chrispokorni
    chrispokorni Posts: 1,760

    Hi @SebastienDionne,

    I see many rancher references in your output. Did you use rancher to build your cluster instead of the described method in Lab 2 ?


  • yes, I used my vagrant script. I saw later that I used rancher for host-path provider. so I think that I could fix my problem with creating a new nfs storageclass. I used those problems as practice for the exam in the same time :)

  • I was able to get it to work. I was right. I have to specify a storageClassName: nfs-client after installing nfs-client-provider. Now I can continue the exercices


Upcoming Training