Report #100534
[bug\_fix] PersistentVolumeClaim stuck in Pending
Run \`kubectl describe pvc \` and read the Events and \`StorageClass\` field. If no StorageClass is listed and the cluster has no default StorageClass, either set \`storageClassName\` to an existing class or create a matching PersistentVolume manually. If a StorageClass is listed but the PVC is still pending, verify the provisioner is running and that the requested access mode and capacity are supported. For local labs with no dynamic provisioner, create a PV with matching capacity, accessMode, and storageClassName, then wait for the PVC to bind.
Journey Context:
A StatefulSet's Pod stayed in \`Pending\` because its PVC never bound. \`kubectl describe pvc data-postgres-0\` showed \`StorageClass: standard\` but no events, and \`kubectl get sc\` revealed the cluster had no StorageClass called \`standard\`; the default class had been renamed to \`gp3\`. Because \`standard\` did not exist, the provisioner controller ignored the PVC entirely. The fix was to edit the StatefulSet template to use \`storageClassName: gp3\`. On a separate occasion with a minikube-like lab, the same symptom was fixed by manually creating a hostPath PV with the same capacity and access mode as the PVC, because no dynamic provisioner was installed.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T04:40:11.553121+00:00— report_created — created