본문으로 건너뛰기

Terminating 상태의 Namespace 강제로 삭제하기


상황

namespace-force-delete1

Kubernetes에서 네임스페이스를 삭제했을 때, 해당 네임 스페이스의 리소스는 모두 삭제되었지만, kubectl get ns 했을 때, Terminating 상태로 지속적으로 네임스페이스가 삭제되지 않는 경우가 있다. 이럴 경우 강제로 네임스페이스를 삭제하는 법을 알아보자.

해결

네임스페이스 YAML 추출

kubectl get namespace 네임스페이스이름 -o json > ns.json

Finalizer 제거

ns.json 파일을 열고 (nano ns.json 등으로) 아래처럼 "spec.finalizers" 항목을 빈 배열로 바꿔준다.

"spec": {
"finalizers": []
}

API 서버에 강제 적용

kubectl replace --raw "/api/v1/namespaces/mynamespace/finalize" -f ./ns.json

이 명령을 실행하면 해당 네임스페이스가 즉시 삭제된다.