How to fix ProvisioningFailed persistentvolume controller no volume plugin matched
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.
- I started with setting up my cluster using Kuberspray
- 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 -
- Google Cloud - Dynamic Volume Provisioning
- Amazon Web Service - Dynamic Volume Provisioning
- Openshift - Dynamic Volume Provisioning
Other articles on Devops -
- Part-1 : Setup kubernetes on Ubuntu
- Part-2 : Setup Kubernetes on CentOs
- Part-3 : Setup HA Kubernetes Cluster with Kubespray
- Part-4 : Setup HA Kubernetes with Minikube
- Part-5 : Setup Kubernetes Dashboard for local kubernetes cluster
- Part-6 : Setup Kubernetes Dashboard On GCP(Google Cloud Platform)
- Part-7 : How to use Persistent Volume and Persistent Volume Claims in Kubernetes
- Part-8 : Deploy Spring Boot Microservice on local Kubernetes cluster
- Part-9 : Deploy Spring Boot Microservice on Cloud Platform(GCP)
- Part-10 : Setting up Ingress controller NGINX along with HAproxy inside Kubernetes cluster
- Part-11 : CI/CD Kubernetes | Setting up CI/CD Jenkins pipeline for kubernetes