Why a Pod Is Stuck Pending: PVC Won’t Bind

Updated 2026-11-01

A pod stuck in Pending that never schedules is often waiting on storage: its PersistentVolumeClaim can't bind to a volume, so the scheduler has nothing to attach. Until the PVC binds, the pod sits there forever.

Confirm it's the volume

kubectl get pvc                 # STATUS Pending = not bound
kubectl describe pvc <name> | sed -n '/Events:/,$p'
# "no persistent volumes available ... no storage class is set"

The usual cause: no StorageClass

Dynamic provisioning needs a StorageClass. If the cluster has no default class and your claim doesn't name one, nothing provisions a volume and the PVC stays Pending. Name a class explicitly in the claim:

spec:
  storageClassName: standard     # a class that actually exists
  accessModes: [ReadWriteOnce]
  resources: { requests: { storage: 10Gi } }

kubectl get storageclass          # verify the name exists first

Watch for an accessModes mismatch too — asking for ReadWriteMany on a backend that only supports ReadWriteOnce leaves the claim unbound the same way.

Practise it

Stuck-Pending storage is one of the simulator's Kubernetes incidents. Drill it in a full incident response shift.

Learn it by doing

Create a free account and practise on a live fleet.

← All guides