본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# Docker and K8s

K8s : 네트워크 트러블 슈팅

by iamlucia 2020. 10. 25.

 

난 분명히 클러스터 구성 후 flannel 네트워크를 분명 다운받았는데...

네트워크 관련 문제가 자꾸 발생한다.

 

마스터 노드에서 nginx 디플로이먼트를 배포하고 

포트를 노출시켜 클러스터 ip로 들어가려고 했더니

마스터 노드, 워커 노드1에서는 curl접속이 거부되지만

worker2노드에서는curl 접속 바로 됨

 

이는

쿠버네티스 클러스터 간 네트워크가 제대로 형성되어 있지 않음을 의미하는 것 같아

찾아보니

flannel (pod 네트워크) ip가 없다

 

뚜-둥 

 

 

Kubernetes Cluster Ovelay 네트워크 개념 다시 잡기 


먼저, 문제를 해결하기 위해 공식문서를 먼저 뒤졌고, 

네트워크를 apply하기 전에 다음의 명령어를 통해 시스템 제어를 했었어야 했다. 

 

# sysctl net.bridge.bridge-nf-call-iptables=1

 

10.24일 기준 가장 최신 flannel addon 네트워크 다운로드 링크

 

 공식문서 참조 ⇩

v1-16.docs.kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

 

# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/ Documentation/kube-flannel.yml

flannel 네트워크는 제대로 설치 되었지만, 중요한 점을 간과

나는 이미 kubeadm init을 한 상태였다... 

kubeadm init 을 한 다음 네트워크 드라이버를 설치해야 한다! 

 

 

제 2차 트러블슈팅 : 다시 클러스터를 제대로 모집해야 한다


# kubeadm reset         //마스터와 노드 모든 곳에서 실행하기 
# rm -rf /etc/cni/net.d
# rm -rf $HOME/.kube/config
# reset 
# systemctl restart kubelet 

 

kubeadm init 까지 성공한 상태, 아직도 인터페이스 상황은 위와 동일하다. 

 

마스터와 모든 노드에 실행

 

# sysctl net.bridge.bridge-nf-call-iptables=1

 

마스터에 다음 명령어 실행

# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/ Documentation/kube-flannel.yml