Kubernetes

dial tcp <master node address>:6443 : connect: no route to host

chaenii 2022. 1. 10. 15:54

worker node에서 kubeadm join을 실행했는데, 로그가 더 이상 나오지 않고 Running pre-flight checks에만 멈추어 있었다.

kubeadm join --v=2 명령어를 통해 오류의 원인을 알아보았다.

 

문제의 원인은 마스터 노드가 포트 6443을 외부에 노출하지 않았기 때문이었다.

문제 해결을 위해서 아래의 방법을 시도했다.

 

1) api-server ip 확인하기

.kube/config 파일을 참고하거나 아래의 명령어를 통해 확인할 수 있다.

kubectl describe pod/kube-apiserver-<master-node-name> -n kube-system

 

2) 포트 6443이 열려있는지 확인하기

curl https://<kube-apiserver-IP>:6443

 

2) 포트 6443이 열려있는지 확인하기

아래와 같은 인증서관련 출력문이 나오면 포트가 열려있는 것이다.

curl: (60) server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

 

4) 포트가 열려 있지 않은 경우, 방화벽 관리 명령어 firewall-cmd를 이용해 방화벽을 설정해준다.

 

4-1)  방화벽 ftp 서비스 제거하기 

sudo firewall-cmd --add-port=6443/tcp --permanent

 

4-2) 방화벽 다시 로드

sudo firewall-cmd --reload

 

4-3) 사용 가능한 서비스/포트 출력하기

 sudo firewall-cmd --list-all

포트 6443이 업데이트된 것을 확인할 수 있다.

다시 kubeadm join 명령어를 시도해본다.

 

성공적으로 조인완료!😃

 

https://github.com/kubernetes/kubeadm/issues/1477

 

Running pre-flight checks hang · Issue #1477 · kubernetes/kubeadm

What keywords did you search in kubeadm issues before filing this one? preflight hang kubeadm join BUG REPORT Versions kubeadm version (use kubeadm version): kubeadm version: &version.Info{Majo...

github.com

https://stackoverflow.com/questions/56220392/kubectl-unable-to-connect-to-the-server-dial-tcp-192-168-214-1366443-conne

 

kubectl : Unable to connect to the server : dial tcp 192.168.214.136:6443: connect: no route to host

I recently installed kubernetes on VMware and also configured few pods , while configuring those pods , it automatically used IP of the VMware and configured. I was able to access the application d...

stackoverflow.com

 

반응형