728x90
SMALL
kubectl delete namespace monitoring 명령을 실행했는데, namespace "monitoring" deleted 메시지가 출력되었음에도 불구하고 실제로 네임스페이스가 삭제되지 않을 때는, 종종 네임스페이스 내에서 제거되지 않은 리소스가 원인이 될 수 있습니다. 네임스페이스가 "Terminating" 상태로 남아 있는 경우가 대표적인 예입니다. 이를 해결하기 위한 방법은 다음과 같습니다.
1. 네임스페이스 강제 삭제 시도
우선 네임스페이스를 강제 삭제할 수 있습니다.
kubectl get namespace <namespace-name> -o json | jq '.spec = {"finalizers":[]}' | kubectl replace --raw "/api/v1/namespaces/<namespace-name>/finalize" -f -
위 명령어는 finalizer를 비워 강제 삭제를 시도하는 방법입니다.
예시:
kubectl get namespace gpu-operator -o json | jq '.spec = {"finalizers":[]}' | kubectl replace --raw "/api/v1/namespaces/gpu-operator/finalize" -f -
kubectl get namespace monitoring -o json | jq '.spec = {"finalizers":[]}' | kubectl replace --raw "/api/v1/namespaces/monitoring/finalize" -f -
2. 남아 있는 리소스 확인 및 삭제
해당 네임스페이스 안에 남아 있는 리소스가 있으면 삭제되지 않고 남아 있을 수 있습니다. 다음 명령어로 네임스페이스 내 리소스를 확인해 보세요.
kubectl get all -n <namespace-name>
만약 리소스가 있다면 kubectl delete 명령어로 개별적으로 삭제를 시도할 수 있습니다.
3. API 리소스 체크
특정 API 리소스가 문제를 일으킬 수 있으므로, 이를 확인하는 것이 필요할 수 있습니다. 다음 명령어로 확인할 수 있습니다.
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get -n <namespace-name>
이 명령어는 네임스페이스 안에 남아 있는 모든 리소스를 확인할 수 있습니다.
4. 마스터 노드 로그 확인
네임스페이스 삭제 관련 오류는 종종 마스터 노드 로그에 기록되므로, 해당 로그를 확인해 문제를 더 구체적으로 파악할 수 있습니다.
kubectl describe namespace <namespace-name>
이 명령어로 네임스페이스가 왜 Terminating 상태에서 멈췄는지에 대한 힌트를 얻을 수 있습니다.
이 단계를 시도해 보고 문제가 해결되지 않으면 추가적인 진단이 필요할 수 있습니다.
728x90
LIST
'Come on IT > DevOps' 카테고리의 다른 글
Prometheus 및 Grafana 설치 (feat. 쿠베네티스) (1) | 2024.10.07 |
---|---|
worker node에서 명령어 실행이 안될 때 해결방법 (0) | 2024.10.06 |
쿠버네티스 GPU 연결 방법 (feat. gpu-operater) (3) | 2024.10.06 |
Kubernetes kubeadm init 오류 및 해결 방법 (0) | 2024.10.02 |
쿠버네티스(K8s) 명령어 정리 (1) | 2024.10.01 |