coredns가 실행이 안된다..

Damian·2022년 2월 3일

1. 이슈

1-1. 이슈 사항

  • 클러스터를 재구성하기로하였고 $ kubeadm reset 진행
  • kubernetes cluster를 구성하는 과정에서 corednscontainercreate 상태로 Running 되지 않는 에러가 발생
  • pod 들이 배포되어도 Running 되지 않음

1-2. 에러 찾기

마스터 노드에서 진행

[ 원인 분석 ]
$ journalctl -b | grep error
or
$ kubectl -n kube-system describe po coredns-xxxxx

[ 결과 ]

ㄴㅇㄱ .... layer not found??? ㄷㄷㄷㄷ 이미지를 가져오지 못한단다...

Failed to create pod sandbox: rpc error: code = Unknown desc = error creating pod sandbox with name "XXXX": layer not known

crictl images

$ crictl images 명령어 입력시 아래 에러 문이 나온다.
Unknown desc = error creating pod sandbox with name "XXXX": layer not known

무엇이 문제인가.....

2. 문제 해결

2-1. 정리

[참조]

https://www.bytefusion.de/2021/01/08/openshift-okd-causes-image-layer-not-known-problems/

crio 이미지가 손상되어있는 걸로 보인다. 강제로 kubeadm reset 명령어를 진행하는 과정에서
/var/lib/containers 에 있는 이미지들이 손상되었고 그로인해 이미지 레이어를 참조하지 못해 이미지를 가져오지 못하는 문제가 발생한 것이었다.

2-2. 해결책

이미지를 삭제하고 kublet crio를 재시작해준다.

$ systemctl stop kubelet
$ systemctl stop crio
$ rm -rf /var/lib/containers/    << 아마 몇몇 디렉토리는 busy 라서 삭제 불가능이라는 에러창이 나온다. 무시한다.
$ systemctl start crio
$ systemctl start kubelet

$ crictl images 가 잘되면 Okay

profile
oepenpen

0개의 댓글