Welcome to the Linux Foundation Forum!

Exercise 9.5 - Dynamic provision of a volume

I am following Exercise 9.5 but I cannot get it to work.

  1. $ k get sc
  2. NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
  3. nfs-client cluster.local/nfs-subdir-external-provisioner Delete Immediate true 25m

On Step 6 I don't get the PVC:

  1. $ k get pv,pvc
  2. NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
  3. persistentvolumeclaim/pvc-one Pending

I suppose I am missing something:

  1. $ k describe pvc
  2. Name: pvc-one
  3. Namespace: default
  4. StorageClass: nfs-client
  5. Status: Pending
  6. ...
  7. Normal ExternalProvisioning 15s (x16 over 3m50s) persistentvolume-controller Waiting for a volume to be created either by the external provisioner 'cluster.local/nfs-subdir-external-provisioner' or manually by the system administrator. If volume creation is delayed, please verify that the provisioner is running and correctly registered.
  1. $ helm list
  2. NAME NAMESPACE REVISION UPDATED STATUS CHART
  3. APP VERSION
  4. nfs-subdir-external-provisioner default 1 2024-10-13 20:54:32.64658104 +0000 UTC deployed nfs-subdir-external-provisioner-4.0
  5. 4.0.2

Is there any extra step that I have missed to have a provisioner?

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Comments

  • Hello,

    You've got the pvc => persistentvolumeclaim/pvc-one. But this pvc can't find a suitable physicalVolume. You need to create one on the nfs server.

  • Posts: 2,443

    Hi @ilmx,

    Make sure that NFS installation and configuration steps have been completed on both cp and worker nodes, per instructions included in lab exercise 9.2.

    Also, ensure you are consistent with the naming convention of the NFS server across the entire lab 9 - so either use the k8scp alias in all steps involved, or the cp-node hostname, or simply use the cp-node private IP address; but do not mix them as they may prevent the provisioner agent from generating the necessary artifacts.

    Regards,
    -Chris

  • Posts: 18
    edited October 2024

    Thanks for the comment but I am still not able to find the issue....

    I followed 9.2. The working node can access the NSF directory:

    1. $ showmount -e k8scp
    2. Export list for k8scp:
    3. /opt/sfw *
    4.  
    5. $ sudo mount k8scp:/opt/sfw /mnt
    6.  
    7. $ ls /mnt/
    8. bigfile default-pvc-one-pvc-d966635f-b195-462d-9030-99e13c2226ef hello.txt

    I deleted the default-pvc-one... directory just in case, but didn't help.
    And I have repeated the steps with similar (un)success:

    1. $ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner --set nfs.server=k8scp --set nfs.path=/opt/sfw/
    2. NAME: nfs-subdir-external-provisioner
    3. LAST DEPLOYED: Wed Oct 16 21:15:29 2024
    4. NAMESPACE: default
    5. STATUS: deployed
    6. REVISION: 1
    7. TEST SUITE: None
    8.  
    9. $ kubectl get sc
    10. NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
    11. nfs-client cluster.local/nfs-subdir-external-provisioner Delete Immediate true 9s
    12.  
    13. $ kubectl get pv,pvc -A
    14. No resources found
    15.  
    16. $ cd lesson9/
    17. /lesson9$ k create -f pvc-sc.yml
    18. persistentvolumeclaim/pvc-one created
    19.  
    20. /lesson9$ kubectl get pv,pvc
    21. NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
    22. persistentvolumeclaim/pvc-one Pending nfs-client <unset> 6s
    23.  
    24. /lesson9$ k describe pvc
    25. Name: pvc-one
    26. Namespace: default
    27. StorageClass: nfs-client
    28. Status: Pending
    29. Volume:
    30. Labels: <none>
    31. Annotations: volume.beta.kubernetes.io/storage-provisioner: cluster.local/nfs-subdir-external-provisioner
    32. volume.kubernetes.io/storage-provisioner: cluster.local/nfs-subdir-external-provisioner
    33. Finalizers: [kubernetes.io/pvc-protection]
    34. Capacity:
    35. Access Modes:
    36. VolumeMode: Filesystem
    37. Used By: <none>
    38. Events:
    39. Type Reason Age From Message
    40. ---- ------ ---- ---- -------
    41. Normal ExternalProvisioning 4s (x5 over 42s) persistentvolume-controller Waiting for a volume to be created either by the external provisioner 'cluster.local/nfs-subdir-external-provisioner' or manually by the system administrator. If volume creation is delayed, please verify that the provisioner is running and correctly registered.

    I am addressing the CP with the k8scp alias.

  • Hi @ilmx,

    The default-pvc-one-pvc-d966635f-b195-462d-9030-99e13c2226ef directory was the storage backend of the PV object that should have been created by the NFS provisioner. What is unclear is the reason why the PV object creation never fully finalized.

    I attempted to reproduce the issue, but I am unable to. I am looking back at the earlier issues you reported and I am wondering whether all the fixes and workarounds did not eventually impact your cluster overall.

    Upon launching the nfs-provisioner, any events that are out of the ordinary while the nfs-subdir-external-provisioner-... Pod is scheduled and deployed?

    kubectl describe po nfs-subdir-external-provisioner-...

    Assuming a new PVC launch event, while waiting for the PV backend to be provisioned and PV object created, what are the logs of the nfs-provisioner Pod recording?

    kubectl logs -f nfs-subdir-external-provisioner-...

    The optional -f flag will follow/stream the logs.

    Regards,
    -Chris

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training