Kubernetes/Trouble Shooting

🛠️ K8S Trouble Shooting : 네임스페이스 및 설정 오류 해결하기

ygtoken 2025. 3. 2. 20:08
728x90

 

Kubernetes에서는 네임스페이스를 사용하여 리소스를 격리하고 관리합니다.

하지만 잘못된 네임스페이스 설정, 존재하지 않는 리소스 접근, 잘못된 kubeconfig 파일 등으로 인해 다양한 오류가 발생할 수 있습니다.

이 글에서는 Kubernetes 환경에서 발생할 수 있는 대표적인 네임스페이스 및 설정 오류 5가지를 정리하고, 각각의 원인과 해결 방법을 설명합니다. 🚀

 


 

1️⃣ “No resources found in default namespace”

 

🔎 오류 설명

 

이 오류는 kubectl 명령어를 실행할 때 기본 네임스페이스에서 해당 리소스를 찾을 수 없을 때 발생합니다.

Kubernetes에서 특정 네임스페이스를 지정하지 않으면 기본적으로 default 네임스페이스에서 조회를 시도합니다.

 

🔧 해결 방법

 

1) 올바른 네임스페이스에서 리소스를 조회

 

현재 네임스페이스에서 실행 중인 리소스를 확인하려면 --all-namespaces 옵션을 사용합니다.

kubectl get pods --all-namespaces

 

특정 네임스페이스에서 실행 중인 리소스를 조회하려면 -n 옵션을 사용합니다.

kubectl get pods -n <namespace>

 

2) 현재 설정된 네임스페이스 확인

 

현재 사용 중인 네임스페이스를 확인하려면 다음 명령어를 실행하세요.

kubectl config view --minify | grep namespace

 

3) 기본 네임스페이스 변경

 

기본 네임스페이스를 변경하여 리소스를 조회할 때 해당 네임스페이스가 기본적으로 적용되도록 설정할 수 있습니다.

kubectl config set-context --current --namespace=<namespace>

 


 

2️⃣ “invalid namespace”

 

🔎 오류 설명

 

이 오류는 존재하지 않는 네임스페이스를 참조할 때 발생합니다.

잘못된 네임스페이스 이름을 입력했거나, 네임스페이스가 삭제된 경우입니다.

 

🔧 해결 방법

 

1) 현재 존재하는 네임스페이스 목록 확인

 

클러스터에서 사용 가능한 네임스페이스를 확인합니다.

kubectl get namespaces

 

2) 올바른 네임스페이스 사용

 

네임스페이스가 존재하지 않는다면, 새로운 네임스페이스를 생성하세요.

kubectl create namespace <namespace>

 

3) 네임스페이스가 삭제되지 않았는지 확인

 

특정 네임스페이스가 삭제되지 않았는지 확인하려면 다음 명령을 실행합니다.

kubectl get namespaces --show-labels

 

네임스페이스가 "Terminating" 상태라면, 이를 강제 삭제할 수도 있습니다.

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

 


 

3️⃣ “invalid configuration: unable to load…”

 

🔎 오류 설명

 

이 오류는 kubeconfig 파일이 손상되었거나, 설정이 올바르지 않을 때 발생합니다.

일반적으로 kubectl이 올바른 클러스터에 연결되지 않았을 때 나타납니다.

 

🔧 해결 방법

 

1) 현재 설정된 kubeconfig 확인

 

현재 적용된 kubeconfig를 확인하려면 다음 명령어를 실행합니다.

kubectl config view

 

2) 클러스터 컨텍스트 변경

 

올바른 클러스터 컨텍스트를 설정하세요.

kubectl config get-contexts
kubectl config use-context <context-name>

 

3) kubeconfig 파일 복구

 

만약 kubeconfig 파일이 손상되었다면, 새로운 kubeconfig 파일을 다시 설정할 수 있습니다.

mv ~/.kube/config ~/.kube/config.bak

 

새로운 kubeconfig 파일을 다운로드하여 복원합니다.

scp user@remote-cluster:/path/to/config ~/.kube/config

 


 

4️⃣ “unable to load config, invalid configuration: no configuration has been provided”

 

🔎 오류 설명

 

이 오류는 kubectl이 클러스터 정보를 포함하는 kubeconfig 파일을 찾을 수 없을 때 발생합니다.

보통 환경 변수 설정이 잘못되었거나, kubeconfig 파일이 삭제된 경우입니다.

 

🔧 해결 방법

 

1) 환경 변수 확인

 

현재 설정된 kubeconfig 파일 경로가 올바른지 확인합니다.

echo $KUBECONFIG

 

2) kubeconfig 파일 존재 여부 확인

 

kubeconfig 파일이 정상적으로 존재하는지 확인합니다.

ls -l ~/.kube/config

 

만약 파일이 없다면, 클러스터 관리자에게 kubeconfig 파일을 요청합니다.

 

3) kubeconfig 경로 설정

 

kubeconfig 파일의 경로가 올바르지 않다면 다음과 같이 설정할 수 있습니다.

export KUBECONFIG=~/.kube/config

 

이 설정을 영구적으로 적용하려면 ~/.bashrc 또는 ~/.zshrc에 추가합니다.

echo 'export KUBECONFIG=~/.kube/config' >> ~/.bashrc
source ~/.bashrc

 


 

5️⃣ “context deadline exceeded”

 

🔎 오류 설명

 

이 오류는 kubectl 명령이 실행될 때 네트워크 연결 시간이 초과된 경우 발생합니다.

주로 Kubernetes API 서버가 다운되었거나, 네트워크 연결 문제가 있을 때 나타납니다.

 

🔧 해결 방법

 

1) API 서버 상태 확인

 

API 서버가 정상적으로 동작하는지 확인합니다.

kubectl cluster-info

 

2) 네트워크 연결 확인

 

API 서버와 연결이 가능한지 확인합니다.

ping <api-server-ip>

특정 포트가 열려 있는지 확인하세요.

telnet <api-server-ip> 6443

 

3) kubeconfig 파일 수정

 

kubeconfig 파일에서 API 서버의 주소가 올바르게 설정되었는지 확인합니다.

kubectl config view --minify

 

만약 API 서버 주소가 올바르지 않다면, kubectl config set-cluster 명령을 사용하여 수정할 수 있습니다.

kubectl config set-cluster <cluster-name> --server=https://<api-server-ip>:6443

 


 

🎯 마무리

 

이 글에서는 Kubernetes에서 자주 발생하는 네임스페이스 및 설정 오류 5가지와 그 해결 방법을 다뤘습니다.

 

✔️ 네임스페이스 리소스 조회 오류 (No resources found in default namespace)

✔️ 존재하지 않는 네임스페이스 오류 (invalid namespace)

✔️ 잘못된 kubeconfig 설정 오류 (invalid configuration: unable to load)

✔️ kubeconfig 파일 누락 오류 (unable to load config, invalid configuration)

✔️ 네트워크 연결 시간 초과 오류 (context deadline exceeded)

 

만약 위 해결 방법으로도 문제가 해결되지 않는다면,

kubectl get namespaces, kubectl config view, kubectl cluster-info 명령어 등을 활용하여 추가로 분석해보는 것이 좋습니다.

 

 

728x90