## TL;DR
A PV goes to Released when its PVC is deleted but the reclaim policy is Retain: Kubernetes keeps the data and waits for a human decision. To reuse the volume, decide what happens to the data first (back it up or confirm it is disposable), then either delete the PV to release the storage or manually clear its claim reference to make it Available again.

## The query
```text
persistent volume stuck in Released: how to reclaim
```

## Use this when
- A PV sits in Released after its PVC was deleted
- You need the underlying storage back in the available pool
- Setting up reclaim policies for a new storage class
- Cleaning up after namespace or app deletion

## Not for when
- PVs stuck in Pending or Failed (different states, different fixes)
- Expanding a volume (resize, not reclaim)
- Data recovery from a deleted volume

## Steps

### Step 1: Decide what happens to the data first
Released with Retain means the data is still on the volume. If anyone might need it, back it up or mount it somewhere to inspect before doing anything destructive. This decision cannot be unmade.
Expected output: a written call on the data URIs preserved (backed up) or disposable.

### Step 2: Check the reclaim policy and storage backend
Confirm the PV's reclaim policy and what backs it (cloud disk, NFS, local path). Retain is why it is stuck; Delete would have cleaned up automatically. Knowing the backend tells you what "delete the PV" actually destroys.
Expected output: understanding of exactly what will happen to the underlying storage for each option.

### Step 3: Option A, delete the PV to release everything
If the data is disposable or backed up, delete the PV object. With Retain this deletes only the Kubernetes object; you then clean up the underlying storage manually per your backend's process.
Expected output: the PV is gone; the storage is freed or queued for manual cleanup.

### Step 4: Option B, clear the claim reference to reuse the volume
If you want to keep the volume and its data, remove the claimRef from the PV so it returns to Available, then bind a new PVC to it. Clean the data on the volume first if the new workload expects an empty disk.
Expected output: the PV shows Available and binds to the new PVC.

### Step 5: Set the reclaim policy you actually want going forward
For ephemeral workloads use Delete so volumes clean up with their PVCs; for important data keep Retain but document the manual reclaim runbook. Put the policy in the StorageClass so every volume inherits the right default.
Expected output: future PVC deletions behave as intended with no manual reclaim needed.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_lR4L4uIXurVrDkDwmZ04sQ
