Namespace depths-80on01 has three problems. Start with the lists:
kubectl get pv
kubectl get pvc,pods -n depths-80on01Fault 1: a Released volume
ledger-pv is Released. Its claim ledger was deleted; the reclaim policy was Retain, so the volume and the data stayed. A new claim, ledger-restore, is Pending and cannot bind because ledger-pv still names the old claim:
kubectl get pv ledger-pv -o jsonpath='{.spec.claimRef.name}'Clear the reference. The volume becomes Available and ledger-restore binds to it:
kubectl patch pv ledger-pv -p '{"spec":{"claimRef":null}}'
kubectl get pv,pvc -n depths-80on01Fault 2: a Pod naming the wrong claim
Pod writer is Pending:
kubectl describe pod writer -n depths-80on01The event says the Pod has an unbound claim. Read the claim name in the Pod's volumes section and compare with kubectl get pvc. One letter is missing. The Pod's manifest is at ~/depths-80on01/writer.yaml. Fix the claim name there, delete the Pod, apply the file.
Fault 3: an access mode nothing offers
Claim scratch asks for ReadWriteMany. The only matching volume, scratch-pv, offers ReadWriteOnce:
kubectl describe pvc scratch -n depths-80on01
kubectl get pv scratch-pv -o jsonpath='{.spec.accessModes}'A claim's access modes cannot be changed in place. Delete scratch, apply it again with ReadWriteOnce. Its manifest is at ~/depths-80on01/scratch.yaml.