공부/Kubernetes

calico 완전 삭제 후 재설치

토고미 2021. 5. 22. 14:55

쿠버네티스 구축을하면서 짜증나는 부분 중 하나가 네트워크인데,

이 네트워크 부분이 꼬이면 정말 힘들어진다.

 

yaml파일을 이용해 설치/삭제 할때 단순히

kubectl apply -f 파일이름

kubectl delete -f 파일이름

을 이용하곤 하는데,

 

calico같이 실제 노드에 파일을 생성하거나 iptable을 수정하는 모듈은

kubectl delete -f 만으로는 부족하다.

 

관련된 파일과 iptables 룰 및 tunl0 인터페이스 등을 삭제해줘야한다.

 

1. 관련된 파일 삭제

calico가 어떤 파일들을 참조하는지 먼저 확인하자.

설치 yaml을 확인해도 상관없다. 난 오류가 발생한 상태의 pod를 describe했다.

$ kubectl describe pod {칼리코 POD} -n kube-system 

그럼 아래와 같이 나온다

calico의 볼륨마운트

삭제하면 안되는 중요한 폴더를 제외하고

cni관련 폴더를 전부 삭제해줘야한다.

$ rm -rf /var/run/calico/
$ rm -rf /var/lib/calico/
$ rm -rf /etc/cni/net.d/
$ rm -rf /var/lib/cni/

 

2. iptables 룰 및 tunl0 인터페이스 삭제

그냥 재부팅하면 된다.

$ reboot

 

 

위 1,2번을 모든 노드에대해 전부 해줘야한다.

 

그리고 다시 재설치를 해보자!