반응형
인트로
namespace 를 삭제하고 새로 생성하려는데, namespaces 가 계속 Terminating 상태로만 남아있었다.
cc@ksadlq001:~$ kubectl get namespaces
NAME STATUS AGE
cert-manager Active 29h
default Active 2d10h
kube-node-lease Active 2d10h
kube-public Active 2d10h
kube-system Active 2d10h
-dashboard Terminating 2d10h
현상진단부터!
일단 띄워진 namespace 의 리소스 삭제 순서가 꼬인 것이니 현황을 파악한다. resource 내의 삭제 순서가 꼬이면 finalizers에 의해 삭제가 막힌다고 한다. 그러니까 finalizers내에 있는 것들을 수정해주거나 없애주면 되는 것이다.
kubectl get namespace -dashboard -o yaml
# ... 실행결과 중 일부
spec:
finalizers:
- kubernetes
해결방법
# 1 namespace의 내용을 json으로 저장한다.
kubectl get namespace TERMINATING_NAMESPACE -o json > tempfile.json
# 2 json 파일에서 spec finalizer 부분을 수정해준다. 아래처럼!
"spec" : {}
# 3 대체하고~
kubectl replace --raw "/api/v1/namespaces/TERMINATING_NAMESPACE/finalize" -f ./tempfile.json
# 4 확인확인!
kubectl get namespaces
끗!끝!끋!킄킄
참고자료
반응형
댓글