[K8S] Namespace Terminating 상태

IT_Engineer/DevOps_Cloud|2021. 1. 13. 18:43
728x90

쿠버네티스 네임스페이스가 Terminating 상태에서 지워지지 않을 때가 있다.

# kubectl delete ns namespace 라는 명령어에도 삭제가 되지 않을 때.

 

찾아보니 나만 그런 것 같지는 않고, 많은 사람들이 겪는 문제인 것 같아서,

누군가가 조금이라도 더 쉽고 빠르게 해결할 수 있기를 바라면서 내용을 작성하기로 했다.

 

방법 1. (폐쇄망 혹은 별다른 라이브러리/패키지 없이 지우기)

# IP/Port 확인
kubectl proxy &


#namespace 상태?를 json파일로 뽑아내기
kubectl get namespace {네임스페이스명} -o json > {네임스페이스명}.json


#뽑아낸 json파일 수정
sed -i '/"kubernetes"/d' ./{네임스페이스명}.json


#수정한 파일 적용
curl -k -H "Content-Type: application/json" -X PUT --data-binary @{네임스페이스명}.json 127.0.0.1:8001/api/v1/namespaces/{네임스페이스명}/finalize

 

방법 2. jq라는 패키지를 이용하여 진행

#jq 패키지 설치 및 IP/Port 확인
yum install jq
kubectl proxy &

#yaml 파일로 적용할 temp.json 파일 생성
kubectl get namespace {네임스페이스명} -o json |jq '.spec = {"finalizers":[]}' > temp.json

#수정사항 반영
curl -k -H "Content-Type: application/json" -X PUT --data-binary @temp.json http://127.0.0.1:8001/api/v1/namespaces/{네임스페이스명}/finalize

 

각각 편하고 상황에 맞는 방법으로 해결할 수 있길 바란다.

728x90

댓글()