Configure a Workload to use a Persistent Volume Claim

Configure a Workload to use a Persistent Volume Claim to access your NFS shared storage

This procedure shows how to configure a Workload to use a Persistent Volume Claim (PVC) to access your NFS shared storage.

Before you begin

The following items and configurations are required for this procedure:

  • Kubernetes version 1.15.x or higher

  • Konvoy version 1.4.x or higher

  • NFS shared storage in your environment and accessible to your cluster

  • Valid Persistent Volume installed

  • Persistent Volume Claim installed and in the pending state

Create a Pod that uses a Persistent Volume Claim

If a workload does not claim a Persistent Volume Claim it stays in a Pending state. This procedure shows how to create an example workload that claims and uses the Persistent Volume Claim (PVC). This procedure also validates that the workload can access the volume.

  1. Create a file called nfs-app.yaml, similar to the example below.

    kind: Pod
    apiVersion: v1
      name: pod-nfs
        - name: nfs-app
          image: alpine
          volumeMounts: null
        - name: data
          mountPath: /var/nfs # The path in you container where the NFS shared volume is available.
            - /bin/sh
            - '-c'
            - sleep 500000
        - name: data
            claimName: nfs-pvc # The name of the PVC you want to use in this pod.
    • Configure the mountPath with the path in the container that maps to your NFS Share. You can change this to any path in your container.

    • Configure the claimName with the name of the Persistent Volume Claim you want to use.

  2. Next, apply the file.

    kubectl apply -f nfs-app.yaml

    After the file is deployed, you should receive a return value of pod/pod-nfs created.

  3. Ensure that it is fully deployed.

     kubectl get pod pod-nfs

    When the container is fully running and the READY STATUS is Running, you should see output similar to the following:

    pod-nfs 1/1 Running 0     2m27s
  4. Use the following command to validate that the PVC has mounted the volume to your container pod-nfs:

    kubectl describe pod pod-nfs

    You can see under the describe conditions that the Persistent Volume Claim has been mounted to your container under the ClaimName: nfs-pvc which is the PVC.

    Volumes: null
      Type: >-
        PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same
      ClaimName: nfs-pvc
      ReadOnly: false
  5. Enter the following command to validate that, inside the container, we can access the volume and write data:

    kubectl exec -it pod-nfs sh
  6. This is where the mountPath: /var/nfs was labeled in the pod-nfs.yaml. If you change the value, cd to your path.

    cd /var/nfs

    If you can access your mountPath, you have successfully mounted the NFS volume to your container. Now try and write a file into the volume.

  7. Enter the following command to create a file in the directory and list all files in that same directory.

    touch nfs.txt && ls

You should see a file called nfs.txt. If you do, you have a fully functional NFS volume accessible to your container.

NOTE: If you receive a permission denied error, check with your storage administrator to ensure you have write access to the NFS volume.

For information on related topics or procedures, refer to the following: