Skip to main content
A Bound PVC doesn’t finish deleting while any Pod still references it. Kubernetes adds the kubernetes.io/pvc-protection finalizer to every PVC, and the finalizer holds a deleted PVC in Terminating until no Pod uses it. This is expected Kubernetes behavior that protects data in use. In the Cloud Console, clicking Delete shows a success message, but the PVC stays in the list with a Bound status until the deletion completes. Quick diagnostic. Run kubectl describe pvc [PVC-NAME] -n [NAMESPACE]. If Status shows Terminating, the delete request succeeded. The Used By line lists every Pod that still references the PVC. To release the PVC:
  • Remove every Pod listed under Used By. Include long-running Pods, such as SUNK login Pods and model servers, which don’t release the PVC when a job completes. Completed Pods also hold the PVC until you delete them.
  • Scale down controller-managed Pods. If a Deployment, StatefulSet, or other controller manages a Pod, scale the controller to zero instead of deleting the Pod. Otherwise, the controller recreates the Pod and the Pod mounts the PVC again.
After the last Pod that references the PVC is gone, Kubernetes removes the finalizer and the deletion completes without another delete request. For Distributed File Storage, the PV and its data remain for a 24-hour soft-delete window after the deletion completes. To restore them within that window, see Recover a deleted PVC. If a new PVC won’t bind instead, see Why is my PVC stuck in Pending?. If Used By shows no Pods and the PVC is still Terminating, contact support.
Server Errors Administrator
Last modified on October 27, 2026