pv의 CLAIM을 제거

2025. 8. 13. 21:56k8s

PVC를 먼저 지우고 → PV의 claimRef를 비워서 다시 “Available” 상태로 만들면 됨

 

# 어떤 PVC가 붙었는지 확인
kubectl get pv
kubectl describe pv <PV이름> | sed -n '1,120p'   # spec.claimRef에 PVC 네임스페이스/이름 표시됨

# 그 PVC 삭제
kubectl -n <PVC의 네임스페이스> delete pvc <PVC이름>
# 상태가 "Released" 로 바뀌는지 잠시 대기
kubectl get pv <PV이름>

# PV에서 CLAIM 해제(claimRef 제거)
# claimRef 필드 제거
kubectl patch pv <PV이름> --type=merge -p '{"spec":{"claimRef": null}}'

# (옵션) 바인딩 흔적 애노테이션 제거
# 컨트롤러가 달아놓은 바운드 표시 애노테이션 제거
kubectl annotate pv <PV이름> pv.kubernetes.io/bound-by-controller-

# (옵션) 보호 파이널라이저로 삭제가 막힐 때
kubectl patch pv <PV이름> --type=merge -p '{"metadata":{"finalizers": null}}'

# 상태 확인
kubectl get pv <PV이름> -o wide
# Phase가 Available 이면 재사용 가능