ACTIVE INCIDENT
00:00 elapsed
LABLAB-K8S-01-CRASHLOOPSEV-2
Pod CrashLoopBackOff — 진단과 복구
ELAPSED
00:00
PHASE
0 / 6
SLA
35분
Kubernetes
← 목록
INCIDENT RESPONSE
0 / 7 단계 완료
📚 PREREQUISITES
Labk8s-basics-pod-deploy
Theorykubernetes/pod-basics
Theorykubernetes/deployment
TRACK
KUBERNETES
SLA
35분
SEV
SEV-2
PHASES
5단계
ENV
local
INCOMING TICKET
[ALERT 10:43] api-server Deployment — Pod 3개 CrashLoopBackOff, RESTARTS: 7회, Exit Code: 1. 신규 배포(v2.1.0) 직후 발생. 서비스 다운 상태.
YOUR ROLE
온콜 인프라 엔지니어
IMPACT IF UNRESOLVED
api-server 완전 다운. 전체 API 요청 실패 중. v2.1.0 배포 직후 발생으로 롤백 또는 환경설정 수정이 필요.
🚨INCIDENT BRIEF
오전 10시 43분, 슬랙에 알람이 울렸습니다.
[ALERT] Deployment `api-server` — Pod 3개 CrashLoopBackOff, RESTARTS: 7회
신규 배포(v2.1.0) 직후 발생. 전체 API 요청 실패 중.
당신은 온콜 담당자입니다. 방금 v2.1.0을 배포했는데, Pod들이 죽고 살아나기를 멈추지 않습니다. RESTARTS가 7이라는 건 지수 백오프로 이미 10분 넘게 서비스가 완전히 다운된 상태입니다. 고객 CS팀에서 "결제 API가 안 된다"는 문의가 쌓이고 있습니다.
CrashLoopBackOff는 Kubernetes가 "무언가 잘못됐음"을 알려주는 신호입니다. 원인은 환경변수 누락, OOM, liveness probe 오설정, 이미지 버그 중 하나입니다. 틀린 방향으로 수정하면 같은 CrashLoop가 반복됩니다.
다음 순서로 장애를 처리합니다:
1. kubectl get pods → describe — CrashLoopBackOff Pod 특정 + Events 첫 단서
2. kubectl logs --previous — 컨테이너가 죽기 직전 남긴 에러 메시지 확인
3. 원인 분류 — exit code + 로그로 환경변수/OOM/probe 중 하나로 좁힌다
4. Deployment 수정 + rollout — 원인에 맞는 필드를 수정하고 Running 복구 확인
5. 이벤트 보존 + 재발 방지 — 1시간 후 사라질 증거를 저장하고 팀에 공유
⏱ 35분📊 중급🔧 5단계#kubernetes#kubectl#crashloop#troubleshooting
MISSION
1
Pod 상태 확인
CrashLoopBackOff 상태인 Pod를 특정하고, describe로 Events 섹션에서 재시작 원인의 첫 단서를 얻는다
2
컨테이너 로그 확인
kubectl logs --previous 로 컨테이너가 종료되기 직전 남긴 에러 메시지를 확인하고, exit code와 연결해 원인의 방향을 잡는다
3
원인 분석
--previous 로그의 에러 메시지와 describe의 exit code를 결합해 CrashLoopBackOff 원인을 환경변수 누락/OOM/probe 실패/이미지 오류 중 하나로 특정하고, 수정할 필드를 확정한다
4
Deployment 수정 및 롤아웃
원인에 맞는 Deployment 필드를 수정해 Pod가 Running 상태로 복구되는지 확인하고, rollout status로 완전한 롤아웃을 검증한다
5
K8s 장애 이벤트 히스토리 기록
장애 복구 후 kubectl get events로 이벤트 히스토리를 저장하고, 원인·타임라인·재발 방지책이 포함된 팀 공유 가능한 분석 보고서를 작성한다
📌 선수 지식
• [실습] k8s-basics-pod-deploy
• [이론] kubernetes/pod-basics
• [이론] kubernetes/deployment
ℹ️ 실습 환경
환경: local
필요 도구: kubectl, kubeconfig
검증 스크립트: /labs/lab-k8s-01-crashloop/scripts/verify.sh
🔒
실습 실행은 Pro 플랜 전용입니다
인시던트 브리프와 학습 자료는 지금 바로 확인할 수 있습니다. 실제 실습 진행 및 터미널 사용은 Pro 플랜에서 가능합니다.
Pro로 업그레이드 →
>_ LAB TERMINAL↔ 너비 조절
NOTES