PVC Pending ☸️ Kubernetes

PersistentVolumeClaim stuck in Pending (no persistent volumes available / waiting for first consumer)

The PVC hasn’t been bound to a volume, so pods using it can’t be scheduled.

Seen on: Kubernetes

Meaning

Binding needs either a matching pre-created PV or a StorageClass that provisions one. Pending happens when no default StorageClass exists (common on bare-metal/kind/minikube setups), the class name is wrong, the provisioner isn’t running, or the class uses WaitForFirstConsumer and no pod has been scheduled yet.

Common causes

  • No default StorageClass / wrong storageClassName
  • CSI provisioner not installed or failing
  • No PV matches size/accessMode/selector
  • volumeBindingMode: WaitForFirstConsumer (normal until a pod uses it)
  • Cloud quota/zone constraints

⚡ Quick fix

  1. kubectl describe pvc for the reason
  2. Set storageClassName to an existing class (kubectl get sc)
  3. Install/fix the provisioner, or create a matching PV

Detailed fix by platform

Kubernetes

  1. bash
    kubectl get sc
    kubectl describe pvc data -n app | sed -n '/Events/,$p'

How to diagnose

  1. Class — Exists and is default?
  2. Provisioner — Pods running?
  3. Mode — WaitForFirstConsumer?

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.