remove orphaned PVC stuck after a namespace deletion

네임스페이스가 삭제된 상태에 남아 있는 PVC 를 삭제하면 terminating 상태에서 진행이 되지 않는다.
pvc 의 finalizer 부분을 제거했는데 저장도 안된다.
# ysoftman-ns 네임스페이스 NotFound
kubectl get ns ysoftman-ns

# 고아 PVC 목록이 terminating 상태로 나온다.
kubectl get pvc -n ysoftman-ns

# finalizer 확인하면 삭제되지 않고 남아 있다.
kubectl get pvc -n ysoftman-ns vmselect-cachedir-...-0 -o jsonpath='{.metadata.finalizers}'

해결을 위해선 삭제된 네임스페이스를 다시 생성하면 된다.
# 네임스페이스 임시 재생성 (admission 거부를 풀기 위해)
kubectl create ns ysoftman-ns

# 이제 다시 PVC 전부 finalizer 제거
for pvc in $(kubectl get pvc -n ysoftman-ns -o name); do
  kubectl patch "$pvc" -n ysoftman-ns --type=merge -p '{"metadata":{"finalizers":null}}'
done

# 네임스페이스 재삭제
kubectl delete ns ysoftman-ns

comments:

댓글 쓰기

Prev