<p><a href="https://kubernetes.io/docs/concepts/storage/dynamic-provisioning" rel="nofollow noreferrer">Kubernetes Dynamic Volume Provisioning</a> gives a handy way to supply pods with dynamically-allocated storage volumes. For example, <a href="https://github.com/kubernetes-incubator/nfs-provisioner" rel="nofollow noreferrer">NFS Provisioner</a> transparently spins up an NFS server and exposes that storage to client pods with Kubernetes volume interface, on-demand.</p>

<p>But how efficient is that? Does provisioner introduce another network protocol layer to communicate with client pod/container, in addition to NFS client-server communication? Or client pod/container talks directly to NFS server once the persistent volume claim was fulfilled?</p>

<p>As mentioned in the official <a href="https://kubernetes.io/docs/concepts/storage/storage-classes/" rel="nofollow noreferrer">documentation</a> when you consider to allocate <a href="https://kubernetes.io/docs/concepts/storage/persistent-volumes/" rel="nofollow noreferrer">Persistent volumes</a> to the Pods in the cluster there is a requirement to specify <code>StorageClass</code> in order to find appropriate provisioner (volume plugin) for the storage provider. <code>StorageClass</code> defines all the necessary parameters have to be passed to the storage provider and what <code>provisioner:</code> should be selected in Kubernetes API <code>apiVersion: storage.k8s.io/v1</code> for the successful creation of <code>PersistentVolume</code> which corresponds to <code>PersistentVolumeClaim</code> request. 
Find a list of the provisioners supported internally by Kubernetes <a href="https://kubernetes.io/docs/concepts/storage/storage-classes/#provisioner" rel="nofollow noreferrer">here</a>. </p>

<p>However, you are not limited only with internal volume plugins which are already included in <code>provisioner: kubernetes.io</code> module, but there are a lot of external provisioners which can be used for some specific scenarios, look at  <a href="https://github.com/kubernetes-incubator/external-storage" rel="nofollow noreferrer">kubernetes-incubator/external-storage</a> project.</p>
