Back to all scenarios
Scenario #334
Storage
Kubernetes v1.23

PVC Binding Fails Due to Multiple Default StorageClasses

PVC creation failed intermittently because the cluster had two storage classes marked as default.

Find this helpful?
What Happened

Two different teams installed their storage plugins (EBS and Rook), both marked default. PVC binding randomly chose one.

Diagnosis Steps
  • 1Ran kubectl get storageclass — two entries with is-default-class=true.
  • 2PVCs had no storageClassName, leading to random binding.
  • 3One SC used unsupported reclaimPolicy.
Root Cause

Multiple default StorageClasses confuse the scheduler.

Fix/Workaround
• Patched one SC to remove the default annotation.
• Explicitly specified SC in Helm charts.
Lessons Learned

Default SC conflicts silently break provisioning.

How to Avoid
  • 1Enforce single default SC via cluster policy.
  • 2Always specify storageClassName explicitly in critical apps.