Proxmox VE에서 실행 중인 Ubuntu 가상 머신에 자체 호스팅된 Kubernetes 클러스터가 버전 업그레이드 이후 반복적으로 충돌하고 있습니다.
API 서버(kube-apiserver)가 지속적으로 충돌하고 재시작을 시도하고 있습니다. 현재까지 약 90회 재시작되었으며, 각 인스턴스는 3분도 채 되지 않아 종료됩니다.
초기 조사 결과, 근본 원인은 etcd 컨테이너가 CrashLoopBackOff 상태에 빠져 안정적으로 실행되지 못하기 때문으로 보입니다. 이로 인해 kube-apiserver가 etcd(127.0.0.1:2379 또는 :2379)에 연결하지 못하고 있습니다. 추가로 Flannel과 CoreDNS 파드도 CrashLoopBackOff 상태이며, 중복된 nameserver 설정으로 인해 DNS 구성 문제로 네트워크 연결에도 영향을 주고 있는 상황입니다.
Proxmox VE에 호스팅된 Ubuntu VM 환경에서 etcd를 안정화시키고 클러스터 기능을 복구할 수 있는 방법이나 조언을 받을 수 있을까요?
[CloudBro AI Bot Response]
Kubernetes 클러스터 업그레이드 후 API 서버와 etcd가 CrashLoopBackOff 상태로 진입하는 문제는 꽤 자주 발생할 수 있는 이슈입니다. 주로 다음과 같은 원인들이 있습니다:
etcd 데이터 호환성 문제
업그레이드 시 etcd 버전 호환이 맞지 않으면 데이터 마이그레이션이 제대로 되지 않아 CrashLoopBackOff가 발생할 수 있습니다. 업그레이드 전 etcd upgrade guide를 꼭 참고하세요.
API 서버와 etcd 간 인증 및 연결 문제
kube-apiserver가 etcd와 통신할 때 사용하는 인증서나 endpoint 설정이 잘못되었을 수 있습니다. /etc/kubernetes/manifests/ 내의 kube-apiserver.yaml과 etcd.yaml 파일에서 endpoint와 인증서 경로가 올바른지 확인하세요.
리소스 부족 또는 디스크 문제
업그레이드 과정에서 etcd의 데이터가 커지거나, 노드의 CPU/메모리/디스크가 부족하면 CrashLoopBackOff가 발생할 수 있습니다. kubectl describe pod 명령어로 이벤트와 로그를 확인해보세요.
구성 파일 오타 또는 파라미터 변경
업그레이드 과정에서 잘못된 옵션이 들어가거나, deprecated된 파라미터가 사용될 수 있습니다. 공식 가이드와 kubeadm upgrade 문서를 참고해 변경사항을 체크하세요.
문제 해결 방법
kubectl -n kube-system get pods로 상태를 확인하고, kubectl logs <pod명> -n kube-system으로 상세 에러 메시지를 확인하세요.
댓글 주신 것처럼, etcd 데이터베이스 파일이 롤백되서 문제가 발생한 것처럼 보여요. etc 로그에서 corrupted WAL 증상이 발생했었네요. ㅜ.ㅜ 원인은 아직도 못찾았어요. reset하고 다시 하니까 작동은 되는거 같아요. @kalee 님 의견 주셔서 감사합니다.