Skip to Content
Infra & DevOpsKubernetes 1.14 전환 중 CNI 초기화 오류와 Flannel 확인
☁️ Infra & DevOps2019년 10월 1일

Kubernetes 1.14 전환 중 CNI 초기화 오류와 Flannel 확인

#kubernetes#infra-devops#troubleshooting#flannel#cni
kubeadm 클러스터 구성과 버전 업그레이드2 / 4
1.13에서 1.14로 전환하며 남긴 CNI 초기화 오류와 Flannel 갱신 메모를 정리합니다.

Kubernetes 1.13에서 1.14로 올리는 과정에서 CNI 초기화 오류를 확인했고, Flannel을 갱신하는 내용을 메모해 두었습니다. 당시 기록에 남은 오류의 핵심은 다음과 같습니다.

text
NetworkPluginNotReady docker: network plugin is not ready: cni config uninitialized

이 메시지는 컨테이너 네트워크가 준비되지 않았다는 상태를 보여 줍니다. 메시지 하나만으로 특정 Flannel 버전의 호환성 결함까지 확정할 수는 없습니다.

kubelet과 Flannel 상태 확인

네트워크를 준비하는 Flannel Pod가 실행됐는지, 이미지 다운로드나 권한·설정 오류가 있는지부터 확인합니다.

bash
kubectl get nodes -o wide kubectl get daemonsets -n kube-system kubectl get pods -n kube-system -o wide journalctl -u kubelet

Flannel의 네임스페이스와 DaemonSet 이름은 설치 방식에 따라 다를 수 있습니다. 해당 Pod의 이벤트와 로그를 보고 CNI 설정 파일과 네트워크 대역도 함께 확인해야 합니다.

Flannel 매니페스트 갱신

당시에는 Flannel 매니페스트를 다시 적용하는 방법을 기록했습니다. 다만 메모의 URL은 master 브랜치를 가리키므로 현재 같은 주소를 실행하면 당시와 다른 파일을 받게 됩니다.

기존 클러스터에 적용할 때는 버전이 확인된 매니페스트를 준비하고, 기존 설정과 차이를 살펴봐야 합니다. Pod 대역과 노드 인터페이스, 이미지·권한 설정이 유지되는지도 확인합니다.

bash
kubectl apply -f kube-flannel.yaml

여기서 kube-flannel.yaml은 대상 버전에 맞춰 준비한 파일을 뜻합니다. 현재 최신 파일로 교체하면 모든 초기화 오류가 해결된다는 명령은 아닙니다.

갱신 이후의 네트워크 확인

Flannel Pod와 노드의 상태를 본 뒤 DNS와 서로 다른 노드 사이의 Pod 통신을 확인합니다. kubelet의 오류가 사라졌는지와 애플리케이션 요청이 정상인지는 각각 봐야 합니다.

이 기록은 CNI 초기화 오류를 만났을 때 네트워크 플러그인의 상태와 버전을 함께 확인했던 메모로 남깁니다. 정확한 호환성은 Kubernetes와 플러그인의 해당 버전 문서를 기준으로 확인해야 합니다.

참고 자료

Last updated on