Lab · Intermediate
Lab: PVC Pending (Provisioning Discipline)
Storage issues are slow, expensive, and unforgiving. Practice reading PVC events and fixing provisioning without thrash.
Prerequisites
What you should have before you begin.
StorageOperationsReliability
- A cluster with CSI driver
- kubectl installed
- A sandbox namespace
Lab text
Follow the sequence. Change one thing at a time.
Goal
You will learn to debug a Pending PVC by reading events and StorageClass posture, then aligning the claim with what the cluster can actually provision.
- Read PVC events.
- Confirm StorageClass defaults and provisioner.
- Validate access modes and topology.
Scenario
A workload requires persistent storage. The PVC stays Pending, and the pod cannot start.
Your job is to prove the block and remove it.
Inspect PVC and StorageClass
Start with the claim, then the classes.
- PVC events often name the missing provisioner or class.
- If there is no StorageClass, dynamic provisioning cannot occur.
kubectl
shell
kubectl get pvc -n <ns> -o wide
kubectl describe pvc <pvc> -n <ns>
kubectl get storageclass
kubectl get pv -o wideResolve with intent
Fix the request or the provisioner—don’t change both at once.
- Specify `storageClassName` explicitly if defaults are unclear.
- Ensure the CSI controller pods are healthy and have RBAC/permissions.
- Align access modes with backend (RWX is not universal).
- If topology is the issue, align node pools and volume zones.
Related
Canonical link
Canonical URL: /labs/pvc-pending-provisioning