기술스택을 쌓아보자/AWS

[디버깅기] eks Error from server (Forbidden): error when creating "manifest_aws.yml": deployments.apps "" is forbidden: unable to create new content in namespace because it is being terminated

소리331 2023. 6. 26. 22:58
반응형

인트로

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

 

끗!끝!끋!킄킄

 

참고자료

 

Troubleshoot terminated Amazon EKS namespaces

I tried to delete a namespace in my Amazon Elastic Kubernetes Service (Amazon EKS) cluster. However, the namespace is stuck in the "Terminating" status.

repost.aws

 

반응형