The connection to the server localhost:8080 was refused 해결방법
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 명령어를 통해 소유자를 변경해준다(위 명령어와 동일)