Among Us - Yellow Crewmate [k8s] The connection to the server localhost:8080 was refused

Trouble Shooting

[k8s] The connection to the server localhost:8080 was refused

감쟈! 2021. 4. 24. 01:51

kubernetes 에서 kubectl을 설치하는 과정에서 아래와 같은 오류를 한번씩 경험했을 것이다.

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

 

 

이러한 증상이 나타나는 이유는 보통 다음과 같다

1. Config 파일이 $HOME/.kube 디렉토리에 존재하지 않을 경우

2. Config 파일에 현재 유저정보가 반영되지 않았을 경우

 

Kubeadm 으로 클러스터를 구축한 경우와, EKS로 클러스터를 구축한 경우의 해결방법을 알아보자

 

1. Kubeadm에서 Error 발생

kube init 명령어 실행시 출력되는 명령어를 순서대로 따라해준다.

 

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

1) Master node 에서 오류 발생 

/etc/kubernetes/admin.conf 파일을 $HOME/.kube/config로 복사후 chown으로 소유자를 변경해준다

 

2) Worker node 에서 오류 발생

Master node에 있는 $HOME/.kube/config 파일을 해당 node 서버로 가져온 후 chown 으로 소유자를 변경해준다.

 

2. AWS EKS에서 Error 발생

EKS 클러스터가 생성 되었다면, 로컬환경에서도 kubectl 명령어를 사용하여 쿠버네티스 클러스터에 접근하기 위해서 config 파일을 생성해주어야 한다. 

 

다음과 같은 명령어를 수행하여 config 파일을 생성해주자. 파일을 생성하면  ~/.kube 디렉토리에 config파일이 생성되며 kubectl 을 통해서 클러스터에 접근할 수 있게된다.

$ aws eks --region <your-region> update-kubeconfig --name <cluster-name>

 

위와 같은 명령어를 실행시키기 위해서는 AWS CLI가 설치되어 있어야 하는 점, AWS Configure 자격증명이 되어있어야 하는 점을 인지해주자