요약

namespace=<Hang 걸린 네임스페이>; kubectl get namespace $namespace -o json | jq '.spec.finalizers= []' | kubectl replace --raw "/api/v1/namespaces/$namespace/finalize" -f -

1. 이슈

네임스페이스를 삭제하다 보면 Terminating 상태에서 처리가 되지 않고 hang 상태에 빠지는 경우가 있다.

네임스페이스 내부의 리소스가 남아 있거나 삭제가 비정상적으로 시도되는 경우에 발생한다고 한다.

2. 해결

네임스페이스 내부의 문제를 찾아서 해결하고 모든 리소스를 삭제한 후에 네임스페이스를 삭제하는 것이 정석이지만, 아래 명령어를 통해 강제로 처리하는 방법도 있다.

namespace=longhorn; kubectl get namespace $namespace -o json | jq '.spec.finalizers= []' | kubectl replace --raw "/api/v1/namespaces/$namespace/finalize" -f -

참고