• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

[preflight] Running pre-flight checks 메세지에서 멈추어 있습니다.

20.02.15 15:54 작성 조회수 4.38k

1

데탑 3대로 

master

node 1

node 2

구성하려고 합니다. 

강좌에 구성된대로 같은 구조인데.

host + master

node 1

node 2

이렇게 구성해 주었습니다.

node 1 과 node 2 가 kubeadm join 명령으로 master와 연동 해줄때 [preflight] Running pre-flight checks 라는 메세지가 나오고 멈추어 있습니다. 원인이 무었인지 알수 있을까요?

답변 28

·

답변을 작성해보세요.

1

ㅎㅎㅎ 네~~

1

master 삭제 전에 노드 삭제 명령으로

노드를 제거해야 하는것 같습니다.

먼저 master를 날려서 명령을 사용해보지는 못했네요..^^

1

그건 해보았는데 별 소득이 없네요..^^

1

서버 재부팅과 개념이 다른건가요? ^^

어쩔수 없이 노드 서버 모두 재설치 중입니다.^^

1

master 에 기존 node 들을 다시 붙이려고 하는데요..

exits 라고 하는 파일들은 검색해도 없는걸로 나오는데..  

검색을 어떻게 해야 하는건지..

설정파일인가요? 구글링을 해도 안나오네요..

1

exists라고된 파일들을 삭제하고 다시 하시면 됩니다

1

master를 재설치 하려고 합니다. 기존 노드와 재연결하는 방법이 있을까요?

새로 재설치한 master 에 kubeadm join .. 기존 연결이 있다고 나오는 에러 메세지 입니다.

1

master 재설치하려고 합니다.^^

1

1

감사합니다. 서버전원을 꺼놓아서 내일 바로 올리겠습니다.^^

1

외부에서 master의 Dashboard에 접근하려면 iptables 설정

vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8001 -j ACCEPT

systemctl restart iptables

대쉬보드 포트(8001) 를 열어주어야 정상적으로 접근이 되네요..^^

토큰을 넣고 접근하도록 대쉬보드를 설정하는 방법도 알려주실수 있을까요? ^^

1

다 해주었는데요..

다시 한번 확인해 보도록 하겠습니다.^^

1

설치 가이드 3-1) pre-setting에  firewalld. networkmanager. iptables 관련 설정들이 빠짐없이 잘 되었나요?

그러면 쿠버네티스가 알아서 iptables를 관리해주기 때문에 별로도 사용자가 해줄 필요가 없거든요.

1

iptables 에 위 포트를 개방해주니 master node 에 정상적을 worker node 들이  올라오네요..^^

dashboard 는 local 에서만 접속이 가능한 부분이었군요.

다른방법을 통해야 가능한 부분이네요..

찾아 보도록 하겠습니다.

1

  • 아래 포트들을 개방해 주어야 하는건가요?
  • 마스터 노드에서 필요한 필수 포트
  • 6443 포트 : Kubernetes API Server / Used By All
  • 2379~2380 포트 : etcd server client API / Used By kube-apiserver, etcd
  • 10250 포트 : Kubelet API / Used By Self, Control plane
  • 10251 포트 : kube-scheduler / Used By Self
  • 10252 포트 : kube-controller-manager / Used By Self

1

master 에 iptables 를 내리니까 정상적으로 조인이 됩니다.  ^^  

1> master 에 어떤 포트들을 열어 주어야 할까요?

2> Dashboard 가 열리지 않습니다. 

방화벽을 내리기전에는 보였던 포트 8001

방화벽을 내리고 난뒤에 안보이네요

dashboard 가 열리지 않네요..

1

master에 열린 포트 목록입니다. [iptable]

 node 1, node 2 에 열린 포트 목록입니다.[iptable]

[root@k8s-master root]# kubectl get nodes

kubectl get nodes

kubectl get nodes

1

강좌내용은 실제 데탑 3대로 셋팅하는 부분이 아니라서 그런것 같은데요. host 와 master 를 나누신 이유가 있을까요?

그리고 master와 node 간 서버 시간이 같지 않아도 연결이 안될수가 있을까요?

1

각 서버의 시간이 맞지 않으면 그런건가요?

master 밖에 올라오지 않네요.

[root@k8s-master root]# kubectl get nodes

NAME              STATUS      ROLES       AGE    VERSION

k8s-master   NotReady   master   177m   v1.15.5

0

네 ㅎㅎ 저도 원인 찾기 귀찮으면 그냥 재설치합니다^^;

0

검색해보니 node에서 kubeadm reset 를 하라고도 나오네요

0

그럼 node쪽에서 쿠버네티스를 restart 해보시는건 어떨까요?

systemctl restart kubelet

0

coredns에 상태가 정상적이지 안네요

calico 네트워크 설치시 문제가 있었나봅니다.

0

쿠버네티스에 kube-proxy라는 pod가 iptables를 수정해주는데 그걸 못해주고 있는거 같네요

master에서 아래 명령으로 나오는 내용을 한번 볼수 있을까요?

kubectl get pods --all-namespaces

0

잘 진행하고 계셔서 다행이지만 일반적으로 쿠버네티스에서 사용하는 포트에 대해서 사용자가 직접 iptables를 건드는 일은 없는데요 ㅎㅎ

토큰으로 접근하는 방법은 아래 블로그가 잘 설명이 되어있어서 참고 하시길 추천드립니다. 

https://crystalcube.co.kr/199?category=834418https://crystalcube.co.kr/199?category=83

0

VM 3대에 대해서 자원분배를 해줄려는 목적이였고 master에 문제가 생기면 VM을 새로 만드는게 편하기 때문에 master도 VM으로 만들었습니다. host 자체를 master로 사용해도 Cluster 구성하는데 문제가 되지는 않고요.

실제 서버 3대와 VM 3대에 구성하는 내용은 틀리지 않습니다.  저도 회사에  클러스터 환경은 실제 서버에 하거든요.

서버시간 설정을 마춰보는건 어려운건 아니니 한번 시도해보시면 좋을 것 같고요.

위에 마스터를 reboot하는 것과 방화벽 해제로 해결된 사례는 아래 이슈에도 나와있긴 한데 그렇게는 해결이 안되신거죠?

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

0

그리고 좀 찾아보니까 

kubeadm join --skip-preflight-checks --token=TOKEN MASTER_IP

이렇게 join명령을 날릴때 해당 preflight-check 검사를 skip 옵션을 주는 방법도 있다고 하네요.

근데 제가 설치가이드를 한 명령어대로 하면 문제가 없어야 할텐데,  history를 해봐서 master나 node에 혹시로도 누락된 명령이 없는지도 확인이 필요하겠습니다.

저도 가이드 방식대로 여려번을 설치해봤는데 해당 문제를 경험해 보지는 못했거든요 ㅎ

0

글쎄요 node쪽에서 멈춰있다면 네트워크 연결 문제지 않을까 싶네요.

마스터를 reboot 해보던가.

아니면 systemctl stop firewall 로 master나 node들에 방화벽이 꺼져있는지도 확인이 필요할 것 같고요.