Local Dynamic Volume Provisioning not supported by kubernetes – ProvisioningFailed persistentvolume controller “no volume plugin matched”

Share on:

Well If you ended up on this article then just like me you are also facing the Warning “no volume plugin matched” inside your Kubernetes cluster.

Before you read further let me ask you a question “Are you trying to set up the Dynamic Volume Provisioning on Local Virtual environment?"

If your answer is YES then unfortunately Kubernetes does not support it.

According to kubernetes Official documentation

Local volumes do not currently support dynamic provisioning, however, a StorageClass should still be create to delay volume binding until Pod scheduling. This is specified by the WaitForFirstConsumer volume binding mode.

As like you, I was also reading about Dynamic Volume Provisioning and thought of giving it a try on my Local Kubernetes Cluster.

  1. I started with setting up my cluster using Kuberspray
  2. Then I created Persistent Volume and Persistent Volume Claim

But as you know if you are doing self-learning then it never works on your first attempt and the same happened with me.

I almost spent a couple of days reading about Kubernetes Persistent Volume and Persistent Volume Claim and after getting acquainted with it, I thought of trying it out but immediately after I applied my Persistent Volume Configuration and got following warning -

1Warning  ProvisioningFailed  100s (x182 over 46m)  persistentvolume-controller  no volume plugin matched

After spending the whole day trying to troubleshoot the issue I ended up creating a question on StackoverFlow

And finally came to the conclusion it can not be done on the Local Kubernetes cluster if you are using Virtual Machine.

How to fix then?

My recommendation would be to try out Dynamic Volume Provision on actual cloud service.

For Example you can refer to -

  1. Google Cloud - Dynamic Volume Provisioning
  2. Amazon Web Service - Dynamic Volume Provisioning
  3. Openshift - Dynamic Volume Provisioning