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
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
반응형