728x90
k8s 클러스터 구성 후.
kubectl get pod --all-namespaces를 보면 coredns가 정상적으로 Running 되지 않고 아래와 같이 ContainerCreating 상태로 STUCK 걸리는 현상이 발생했다..
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-78fcd69978-47ngc 0/1 ContainerCreating 0 16m kube-system coredns-78fcd69978-n7dst 0/1 ContainerCreating 0 16m |
심지어 weave net 관련한 pod들도 계속 error 상태로 확인되었다.
coredns 관련 파드의 로그를 상세히 보기 위해 아래와 같이 describe 명령어를 입력해서 보면,
$ kubectl describe pod weave-net-xdrh4 -n kube-system
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 17m default-scheduler 0/1 nodes are available: 1 node(s) had taint {node.kubernetes.io/not-ready: }, that the pod didn't tolerate. Normal Scheduled 16m default-scheduler Successfully assigned kube-system/coredns-78fcd69978-47ngc to master.example.com Warning FailedCreatePodSandBox 16m kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "6ebe5786980b899f55eaca5d050e6667759b69dd074bd31efce73606e5c415a3" network for pod "coredns-78fcd69978-47ngc": networkPlugin cni failed to set up pod "coredns-78fcd69978-47ngc_kube-system" network: unable to allocate IP address: Post "http://127.0.0.1:6784/ip/6ebe5786980b899f55eaca5d050e6667759b69dd074bd31efce73606e5c415a3": dial tcp 127.0.0.1:6784: connect: connection refused, failed to clean up sandbox container "6ebe5786980b899f55eaca5d050e6667759b69dd074bd31efce73606e5c415a3" network for pod "coredns-78fcd69978-47ngc": networkPlugin cni failed to teardown pod "coredns-78fcd69978-47ngc_kube-system" network: Delete "http://127.0.0.1:6784/ip/6ebe5786980b899f55eaca5d050e6667759b69dd074bd31efce73606e5c415a3": dial tcp 127.0.0.1:6784: connect: connection refused] Normal SandboxChanged 11m (x26 over 16m) kubelet Pod sandbox changed, it will be killed and re-created. Warning FailedCreatePodSandBox 6m19s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "de3959a0e92a6e09b8946258be5330ed9ac308c7d0988913fa247539f5506c99" network for pod "coredns-78fcd69978-47ngc": networkPlugin cni failed to set up pod "coredns-78fcd69978-47ngc_kube-system" network: netplugin failed with no error message: signal: killed |
해당 이슈는 weave net이라는 CNI(Cluster Network Interface)가 뻑이 난 경우로 보인다.
이럴 경우 방법은 kubeadm reset + cni를 완벽하게 지우고 다시 구성하는 방법 밖에 없다.
구글링을 하던 중 아래 workaround 글을 찾아 실행하였더니 정상적으로 복구 되었다.
https://github.com/weaveworks/weave/issues/3758
솔루션
1. master/node1/node2에서 kubeadm reset 실행 후 systemctl restart kubelet $ kubeadm reset $ systemctl restart kubelet 2. cni 관련 디렉토리 파일 삭제(마스터에서만) $ rm -rf /etc/cni/net.d/* $ rm -rf $HOME/.kube/config 3. 마스터에서 kubeadm init 실행 후 cni 설치 $ kubeadm init --apiserver-advertise-address=192.168.56.200 $ kubectl apply -f "https://cloud.weave.works/k8x/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" 4. 파드 확인 $ kc get pod --all-namespace |
728x90
'컨테이너 > 쿠버네티스' 카테고리의 다른 글
[K8S] 쿠버네티스 클러스터 조인 실패 시, kube init 재구성하는 방법 (0) | 2021.12.01 |
---|---|
[K8S] 쿠버네티스를 활용한 3-Tier 컨테이너 환경 구성(NginX/Tomcat/MySQL) (3) | 2021.11.17 |
[K8S] kubectl get nodes시, Unable to connect to the server: x509 TLS 인증서 오류 (0) | 2021.11.03 |
[K8S] kubeadm init시에 Get http://localhost:10248/healthz: dial tcp 127.0.0.1:10248: connect: connection refused 에러 (2) | 2021.11.02 |
[K8S] 쿠버네티스 설치 Ubuntu:20.04 (0) | 2021.10.25 |