본문 바로가기

DevOps/쿠버네티스(Kubernetes)

[쿠버네티스 #tip1] 쿠버네티스 재 부팅시 The connection to the server localhost:xxxx was refused 에러가 떴을 때

728x90

쿠버네티스 재 부팅시 가끔 마스터 노드와 워커 노드가 연결이 안되서 아예 kubectl 명령어가 듣지 않는 경우가 있다. 

 

어떤 kubectl 명령을 쳐도  

 

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

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

 

의 에러만 뜨며 아무것도 되지 않는다.

 

이를 해결하기 위해 여러 구글링을 해보면 대부분의 사람들이 kubelet 과 docker 등을 restart 하거나

 

쿠버네티스 설치시 root권한으로 실행할 수 있게하는 expose명령어를 치라고 하거나 한다.

 

사람들은 이를 해결하기 위해 systemctl kubelet, api server 등 체크를 해보지만 문제가 있다고만 짐작할 뿐 해결 방법이 나타나있지 않다.

 

 

이런 에러가 뜨는 경우가 여러가지 있겠지만 나같은 경우에는 크게 두 가지가 있었다.

 

첫 번째는 coreDNS 에러였는데 잘못된 pod networking때문에 계속 에러가 났었었다.

처음에 weave net을 사용했었는데 문제가 생겨 flannel로 바꾸니 이 문제는 해결됐었다.

 

두 번째는 이미 실행되어 있는 쿠버네티스 docker 컨테이너의 충돌이었다.

 

watch docker ps 를 해보면 쿠버네티스 컨테이너가 생성되었다가 없어지고를 반복하는 걸 볼 수 있었는데

 

간단하게

docker rm $(docker ps -a -q)  

 

명령어를 통해 모든 컨테이너를 지우자 문제가 해결됐었다. 며칠간 고생한 수고에 비해서 너무도 간단한 해결방법이었기에 많이 허탈했다.

 

만약 여러분들도 쿠버네티스 재시작시 해당 오류가 계속해서 뜬다면 모든 컨테이너를 지워보는 것을 추천한다.

가끔 에러가 나서 지워지지 않는 경우가 있는데 그럴 땐 컨테이너 정지 후 지워보는 걸 추천한다.

 

 

반응형