Kubernetes 파드가 계속 재시작되는 CrashLoopBackOff 상태는 운영의 주요 문제입니다.
증상: kubectl get pods에서 STATUS가 CrashLoopBackOff로 표시되며, 컨테이너가 시작과 종료를 반복합니다.
원인:
1. 애플리케이션 코드 버그 또는 크래시
2. 환경 변수 누락
3. 필요한 파일 또는 리소스 미존재
4. 헬스체크 실패
5. 메모리/CPU 부족
6. 이미지 문제
해결 방법:
1. 로그 확인: kubectl logs 파드이름 --previous
2. 파드 상세 정보 확인: kubectl describe pod 파드이름
3. 환경 변수 검증: deployment spec에서 환경 변수 설정 확인
4. 헬스체크 설정 검토: initialDelaySeconds를 충분히 설정 (예: 30초)
5. 리소스 요청/제한 확인: requests와 limits 설정 검토, OOMKilled 확인
6. 이미지 및 진입점 확인: Dockerfile의 CMD가 정확한지 확인
7. 볼륨 마운트 확인: 필요한 경로가 정확히 마운트되었는지 확인
디버그 팁: kubectl debug 파드이름 -it --image=busybox로 컨테이너 환경 직접 확인
정리: CrashLoopBackOff는 로그와 describe 명령으로 원인 파악이 가능하며, 대부분 설정 문제입니다.