The class is waiting for a pod, by design
CommonvolumeBindingMode: WaitForFirstConsumer delays provisioning until a pod using the claim is scheduled, so the volume is created in the same zone as the node that will mount it. Until then the claim is Pending and nothing is wrong. It becomes a real problem when the pod cannot schedule for some other reason, and then the pod's events hold the answer. It also never binds if the pod sets nodeName, because that skips the scheduler step that triggers provisioning.
Confirm
kubectl get sc "$(kubectl get pvc <name> -o jsonpath='{.spec.storageClassName}')" -o jsonpath='{.volumeBindingMode}{"\n"}'WaitForFirstConsumer. Then check whether any pod actually references this claim yet.
Fix
- If no pod uses the claim yet, nothing is broken — create the workload and the volume follows.
- If a pod does reference it and both are Pending, read the pod's events. The volume is waiting on scheduling, and the scheduling is failing for its own reason.
kubectl describe pod <pod> | sed -n '/Events/,$p'
The pod's events, not the claim's, explain a deadlock between the two.