<p>Use case:</p>

<p>I have a NFS directory available and I want to use it to persist data for multiple deployments &amp; pods.</p>

<p>I have created a <code>PersistentVolume</code>:</p>

<pre class="lang-yaml prettyprint-override"><code>apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: http://mynfs.com
    path: /server/mount/point
</code></pre>

<p>I want multiple deployments to be able to use this <code>PersistentVolume</code>, so my understanding of what is needed is that I need to create multiple <code>PersistentVolumeClaims</code> which will all point at this <code>PersistentVolume</code>.</p>

<pre class="lang-yaml prettyprint-override"><code>kind: PersistentVolumeClaim
apiVersion: v1
metaData:
  name: nfs-pvc-1
  namespace: default
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 50Mi
</code></pre>

<p>I believe this to create a 50MB claim on the <code>PersistentVolume</code>.  When I run <code>kubectl get pvc</code>, I see:</p>

<pre><code>NAME        STATUS     VOLUME    CAPACITY    ACCESSMODES   AGE
nfs-pvc-1   Bound      nfs-pv    10Gi        RWX           35s
</code></pre>

<p>I don't understand why I see 10Gi capacity, not 50Mi.</p>

<p>When I then change the <code>PersistentVolumeClaim</code> deployment yaml to create a PVC named <code>nfs-pvc-2</code> I get this:</p>

<pre><code>NAME        STATUS     VOLUME    CAPACITY    ACCESSMODES   AGE
nfs-pvc-1   Bound      nfs-pv    10Gi        RWX           35s
nfs-pvc-2   Pending                                        10s
</code></pre>

<p>PVC2 never binds to the PV.  Is this expected behaviour?  Can I have multiple PVCs pointing at the same PV?</p>

<p>When I delete <code>nfs-pvc-1</code>, I see the same thing:</p>

<pre><code>NAME        STATUS     VOLUME    CAPACITY    ACCESSMODES   AGE
nfs-pvc-2   Pending                                        10s
</code></pre>

<p>Again, is this normal?</p>

<p>What is the appropriate way to use/re-use a shared NFS resource between multiple deployments / pods?</p>

<p>Basically you can't do what you want, as the relationship PVC &lt;--> PV is one-on-one. </p>

<p>If NFS is the only storage you have available and would like multiple PV/PVC on one nfs export, use Dynamic Provisioning and a default storage class. </p>

<p>It's not in official K8s yet, but this one is in the incubator and I've tried it and it works well: <a href="https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client" rel="noreferrer">https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client</a></p>

<p>This will enormously simplify your volume provisioning as you only need to take care of the PVC, and the PV will be created as a directory on the nfs export / server that you have defined. </p>
