IT/PaaS

The connection to the server localhost:8080 was refused 해결방법

twofootdog 2020. 10. 1. 00:59

kubectl을 통해서 쿠버네티스 클러스터에 접속하려 할 때 다음과 같은 에러 메시지가 발생하는 경우가 종종 있다.

 

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

 

해당 메시지가 발생하는 경우는 보통 쿠버네티스 컨피그 파일이 $HOME/.kube 디렉토리 밑에 없거나, 현재 유저정보가 쿠버네티스 컨피그 파일에 반영되지 않은 경우에 발생한다.

 

따라서 해당 문제는 다음 명령어를 통해 해결 가능하다.

 

 

1. AWS EKS로 구축한 클러스터에 접근할 때 발생한 경우

다음 명령어를 통해 AWS EKS 클러스터 접근을 위한 컨피그 파일을 생성해준다(물론 해당 명령어를 사용하기 전에 aws configure 명령어를 통해 AWS EKS 접근 가능한 계정으로 셋팅이 되어 있어야 한다)

$ aws eks --region [클러스터 리전] update-kubeconfig --name [클러스터 이름]

 

예를 들면 :

$ aws eks --region ap-northeast-2 update-kubeconfig --name cloud-eks

 

이런식으로 명령어를 사용하게 되면 $HOME/.kube 디렉토리 밑에 컨피그 파일이 생성된다.

 


 

2. kubeadmin으로 구축한 클러스터에 접근할 때 발생한 경우

1) 마스터 노드에서 에러가 발생한 경우 : /etc/kubernetes/admin.conf 파일을 $HOME/.kube/config로 복사 후 소유자 변경을 해준다.

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

2) 마스터노드가 아닌 곳에서 에러가 발생한 경우 : 마스터노드(서버)에 생성된 $HOME/.kube/config 파일을 접근을 시도하는 서버의 $HOME/.kube 디렉토리로 가져온 후, chwon 명령어를 통해 소유자를 변경해준다(위 명령어와 동일)