카테고리 없음

EKS에서 Namespace 삭제 시 waiting 상태 해결 방법 (deleted 후 Terminating 지속 문제)

idea9329 2025. 2. 25. 13:58
728x90
반응형

1. 개요

Amazon EKS(Kubernetes)에서 네임스페이스(namespace)를 삭제할 때 deleted 메시지가 표시되지만, waiting(Terminating) 상태가 계속 유지되는 문제가 발생할 수 있습니다.

이 글에서는 EKS에서 네임스페이스 삭제가 지연되는 원인과 해결 방법을 정리하였습니다.


2. EKS 네임스페이스 삭제가 waiting 상태로 멈추는 원인

🔹 일반적인 삭제 시간

✅ 작은 네임스페이스: 1~5분 이내 삭제
✅ PVC, Finalizer 포함된 네임스페이스: 10분 이상 걸릴 수 있음
✅ 문제가 발생하면 무한정 Terminating 상태 지속

🔹 삭제가 멈추는 주요 원인

  1. 네임스페이스 내부에 삭제되지 않은 리소스가 존재
     kubectl get all -n <NAMESPACE> 실행 후 남아있는 리소스 확인
  2. Persistent Volume Claim (PVC) 또는 Custom Resource Definition (CRD) 리소스 존재
    → PVC 및 CRD가 삭제되지 않으면 네임스페이스도 삭제되지 않음
  3. Finalizer 설정으로 인해 삭제가 보류됨
     kubectl get namespace <NAMESPACE> -o jsonpath='{.spec.finalizers}' 로 확인 가능
  4. API 서버에서 네임스페이스를 정상적으로 정리하지 못함
    → 강제 삭제 필요

3. 네임스페이스 삭제 대기 (Terminating) 해결 방법

 1) 네임스페이스 내 남아 있는 리소스 확인

먼저 삭제되지 않은 리소스를 확인합니다.

kubectl get all -n <NAMESPACE>

❗ 만약 Pods, Deployments, Services 등 리소스가 남아 있다면, 해당 리소스가 삭제되지 않아서 waiting(Terminating) 상태가 유지되는 것입니다.

🔹 해결 방법: 내부 리소스 수동 삭제

kubectl delete all --all -n <NAMESPACE>

네임스페이스 내부의 모든 리소스를 삭제합니다.


 2) PVC 또는 CRD 삭제 확인

Persistent Volume Claim(PVC) 및 Custom Resource Definition(CRD) 리소스가 있는 경우 네임스페이스 삭제가 지연될 수 있습니다.

🔹 PVC 삭제 확인

kubectl get pvc -n <NAMESPACE>

🔹 PVC 강제 삭제

kubectl delete pvc --all -n <NAMESPACE>

🔹 CRD 삭제 확인

kubectl get crd | grep <NAMESPACE>

🔹 CRD 강제 삭제

kubectl delete crd <CRD_NAME>

 3) Finalizer 제거 후 강제 삭제

Finalizer가 존재하면 Kubernetes에서 네임스페이스 삭제를 대기하게 됩니다.

🔹 Finalizer 확인

kubectl get namespace <NAMESPACE> -o jsonpath='{.spec.finalizers}'

❗ Finalizer가 존재하면 [] 값이 아닌 특정 값이 출력됨

🔹 Finalizer 강제 삭제

kubectl patch namespace <NAMESPACE> -p '{"metadata": {"finalizers": []}}' --type=merge

✅ Finalizer 제거 후 네임스페이스가 즉시 삭제됨


 4) 강제 삭제 (최후의 방법)

위의 방법으로도 삭제되지 않을 경우, 강제 삭제 명령어를 실행합니다.

kubectl delete namespace <NAMESPACE> --grace-period=0 --force

⚠️ 주의: --force 옵션은 API 서버에서 직접 데이터를 삭제하므로 신중히 사용해야 합니다.


4. 결론

 일반적으로 1~5분 내 삭제되지만, Finalizer, PVC, CRD가 있는 경우 10분 이상 걸릴 수 있음
 10분 이상 waiting(Terminating) 상태 지속 시 강제 삭제 필요
 Finalizer가 남아 있는 경우 수동으로 제거 후 삭제 가능
 마지막 방법으로 --force 옵션을 사용하여 강제 삭제 가능


5. 연관 검색어

  • EKS namespace 삭제 오류
  • Kubernetes namespace terminating 해결
  • kubectl delete namespace waiting 상태
  • Kubernetes Finalizer 제거 방법
  • EKS PVC 강제 삭제
  • Kubernetes 네임스페이스 삭제가 안될 때 해결 방법

이 글은 "EKS 네임스페이스 삭제 오류", "Kubernetes 네임스페이스 terminating", "kubectl delete namespace waiting 해결 방법", "Finalizer 삭제", "PVC 강제 삭제" 등의 키워드를 포함하여 검색 최적화(SEO)에 맞춰 작성되었습니다. 🚀

반응형