Container/Kubernetes

[Kubernetes] 쿠버네티스 master node "NotReady" 해결 방법 (coredns pending)

Nirsa 2021. 1. 5. 00:30
반응형
  • 쿠버네티스 master node "NotReady" 해결 방법 (coredns pending)

쿠버네티스를 설치하고나서 보니 마스터노드의 NotReady 가 발생 하였는데, get pods로 확인해보니 coredns가 Pending 상태임을 확인 하였습니다.

보통 노드와의 통신이 안되거나 CNI 설치가 되어있지 않은 경우에 coredns pending이 발생하기 때문에, CNI를 설치해주시거나 아래 방법으로 kube-flannel.yml을 적용시켜 해결하는 방법이 있습니다.

 

  • 1) kube-flannel.yml 적용
  • kubectl edit cm coredns -n kube-system를 입력하여 24라인의 loop 부분을 주석 처리

 

  • 아래 명령 입력
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

 

  •  잠시 대기해주면 아래와 같이 kube-flannel-ds-8gggx가 PodInitializing 되고나서 coredns도 Running되며 master node의 NotReady도 해결이 되는것을 확인할 수 있습니다.

 

  • 2) CNI (calico) 설치
curl https://docs.projectcalico.org/archive/v3.8/manifests/calico.yaml -O

이후 vim 편집기를 이용해 calico.yml 파일을 열은 후 아래 라인을 주석해제하고 8번에서 진행한 Pod CIDE로 수정을 해주시면 됩니다.

 

calico.yaml 파일을 배포 해주세요.

kubectl apply -f calico.yaml

 

이후 아래 명령을 통해 calico가 정상적으로 실행중인지 확인할 수 있습니다.

* coredns CrashLoopBackOff 발생 시 참고 : nirsa.tistory.com/293

watch kubectl get pods --all-namespaces

 

반응형