본문 바로가기

리눅스

Kubernetes localhost:8080 was refused 오류 해결 방법

반응형

Kubernetes localhost:8080 was refused 오류 해결 방법

kubectl 명령 실행 시 아래와 같은 오류가 발생하는 경우가 있습니다.

$ kubectl get pods
The connection to the server localhost:8080 was refused - did you specify the right host or port?

이 오류는 kubectl이 Kubernetes API Server 접속 정보를 찾지 못해 기본값인 localhost:8080으로 연결을 시도할 때 발생합니다.

즉, Kubeconfig 파일이 없거나 현재 사용자 계정에 올바르게 설정되지 않은 상태입니다.

원인

kubectl은 클러스터 접속 정보를 아래 경로의 설정 파일에서 읽어옵니다.

$HOME/.kube/config

해당 파일이 없거나 권한이 올바르지 않으면 API Server 주소를 알 수 없어 localhost:8080으로 접속하게 됩니다.

해결 방법

관리자 설정 파일(/etc/kubernetes/admin.conf)을 현재 사용자 환경으로 복사하여 kubeconfig를 구성합니다.

 

1. .kube 디렉터리 생성

mkdir -p $HOME/.kube

2. 관리자 설정 파일 복사

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

3. 현재 사용자 권한 적용

sudo chown $(id -u):$(id -g) $HOME/.kube/config

확인

설정 완료 후 다시 kubectl 명령을 실행합니다.

$ kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          12h

정상적으로 Pod 목록이 조회되면 Kubernetes API Server 연결이 완료된 것입니다.

추가 확인 사항

현재 kubeconfig 환경 변수 확인

echo $KUBECONFIG

현재 클러스터 정보 확인

kubectl cluster-info

현재 컨텍스트 확인

kubectl config current-context

 

728x90
반응형