CrashLoop and Restarts
‘CrashLoop and Restarts’ 증상으로 나타나는 장애 문제 20개를 모았습니다.
먼저 읽을 가이드
ConfigMap은 바뀌었는데 Pod가 이전 값을 계속 쓸 때ConfigMap 업데이트 이후 envFrom, subPath, volume projection, rollout trigger 차이로 값이 갱신되지 않는 상황Kubernetes3분 읽기CoreDNS는 Running인데 DNS 조회만 실패할 때CoreDNS Pod는 정상처럼 보이지만 kube-dns 경로, upstream, node-local-dns, policy에서 실패하는 상황Kubernetes3분 읽기CrashLoopBackOff가 뜰 때 가장 먼저 볼 것Pod가 반복 재시작하면서 이전 로그와 event에 실제 원인이 남는 상황Kubernetes5분 읽기
추천 문제
검수된 문제를 먼저, 그다음 시나리오가 자세한 문제를 보여 줍니다.
K8S-001ConfigMap 변경 직후 CrashLoopBackOff: 이미지는 그대로인데 파드가 계속 재시작오후 2시 10분, 결제 API(payment-api)의 Helm 값 파일을 고친 PR이 운영에 배포됐습니다.검수Kubernetes입문18분무료K8S-004운영 네임스페이스에서만 ImagePullBackOff: 프라이빗 레지스트리 401새 결제 워커를 사내 프라이빗 레지스트리(registry.acme.dev)에서 받아 배포합니다.검수Kubernetes입문17분무료K8S-011롤링 업데이트가 끝나지 않음: 새 파드가 Running인데 READY 0/1오후 3시에 주문 API 새 버전을 배포했는데 20분째 롤아웃이 끝나지 않습니다.검수Kubernetes입문16분무료CrashLoopBackOff: 새 버전 배포 뒤 파드가 계속 재시작새 버전을 배포하자 파드가 몇 초 만에 꺼졌다 켜지기를 반복합니다.검수Kubernetes입문3분무료Exit Code 137(OOMKilled): 컨테이너가 부하 때마다 재시작정산 API 파드가 요청이 몰리는 시간에만 재시작됩니다.검수Kubernetes입문3분무료OOMKilled: 큰 이미지가 몰릴 때마다 컨테이너가 재시작상품 이미지를 줄여 주는 리사이즈 API가 판매자들이 사진을 올리는 오후 시간대마다 재시작을 반복합니다.검수Kubernetes입문15분무료
모든 문제 20개
CrashLoopBackOff: 새 버전 배포 뒤 파드가 계속 재시작새 버전을 배포하자 파드가 몇 초 만에 꺼졌다 켜지기를 반복합니다.검수Kubernetes입문3분무료Exit Code 137(OOMKilled): 컨테이너가 부하 때마다 재시작정산 API 파드가 요청이 몰리는 시간에만 재시작됩니다.검수Kubernetes입문3분무료LINUX-005새 서버에서 systemd 서비스가 200/CHDIR로 재시작을 반복트래픽 증가에 대비해 Ansible로 API 서버를 한 대 새로 만들었습니다.검수Linux중급20분무료K8S-011롤링 업데이트가 끝나지 않음: 새 파드가 Running인데 READY 0/1오후 3시에 주문 API 새 버전을 배포했는데 20분째 롤아웃이 끝나지 않습니다.검수Kubernetes입문16분무료K8S-004운영 네임스페이스에서만 ImagePullBackOff: 프라이빗 레지스트리 401새 결제 워커를 사내 프라이빗 레지스트리(registry.acme.dev)에서 받아 배포합니다.검수Kubernetes입문17분무료K8S-001ConfigMap 변경 직후 CrashLoopBackOff: 이미지는 그대로인데 파드가 계속 재시작오후 2시 10분, 결제 API(payment-api)의 Helm 값 파일을 고친 PR이 운영에 배포됐습니다.검수Kubernetes입문18분무료OOMKilled: 큰 이미지가 몰릴 때마다 컨테이너가 재시작상품 이미지를 줄여 주는 리사이즈 API가 판매자들이 사진을 올리는 오후 시간대마다 재시작을 반복합니다.검수Kubernetes입문15분무료K8S-024마운트된 설정 파일 권한이 틀려 pod가 재시작파일도 있고 볼륨도 마운트됐는데 런타임 사용자가 설정을 읽지 못합니다 — 퍼미션이 너무 엄격합니다.Kubernetes입문15분무료LINUX-036journald rate limit이 요동치는 서비스 패턴을 가림서비스가 반복해서 재시작하는데 가장 쓸모 있는 로그가 나타나지 않습니다 — 장애가 가장 심한 구간에 journald가 반복 메시지를 억제합니다.Linux중급20분무료LINUX-020환경 변수 파일은 수정했는데 이미 떠 있는 프로세스는 값을 모르는 문제설정 파일 변경과 프로세스 재기동의 차이를 이해하는 가장 기본적인 운영 문제입니다.Linux입문14분무료K8S-002Running 상태인데 트래픽을 받지 못하는 서비스 장애 분석Service, Endpoint, readiness probe, selector 불일치 가능성을 단계적으로 점검하는 시나리오입니다.Kubernetes중급22분ProK8S-014liveness probe가 너무 공격적이라 정상 Pod도 계속 재시작하는 문제애플리케이션 부하가 높은 구간에서 liveness 기준이 지나치게 빡빡해지는 상황입니다.Kubernetes중급19분ProK8S-003Job이 끝나지 않는 배치 워크로드에서 backofflimit 해석하기배치 실패 재시도 정책과 컨테이너 종료 코드를 연결해 근본 원인을 찾는 고급형 문제입니다.Kubernetes고급27분ProSECURITY-006데몬 상태는 정상인데 에이전트 재시작 후 감사 로그 양이 급감수집기 서비스는 정상으로 보이는데 필터링이나 전달 상태 변경이 보안 로그 커버리지를 조용히 줄입니다.Security고급27분ProK8S-052서비스 메시 sidecar가 health 포트를 가로챈 뒤에만 readiness probe가 실패컨테이너는 원래 포트로는 제대로 응답하는데 probe가 실패합니다 — sidecar 경로나 리다이렉트된 포트가 probe 기대와 맞지 않습니다.Kubernetes고급24분ProK8S-039StatefulSet 축소가 PVC 데이터를 남겨 다음 ordinal 재사용을 오염이후 확장이 ordinal을 재사용하며 옛 볼륨을 붙여, 애플리케이션이 새 배포 의도와 맞지 않는 오래된 상태로 시작합니다.Kubernetes고급28분ProK8S-029컨트롤러 재시작 후에야 CSI 드라이버가 볼륨 attach를 복구컨트롤러를 재시작할 때까지 영구 볼륨 attachment가 멈춰, 비정상 조정 루프를 가리킵니다.Kubernetes고급29분ProLINUX-022systemd 서비스가 너무 빠르게 재시작해 쓸모 있는 로그를 잡지 못함재시작 루프 때문에 서비스를 살펴보기 어렵습니다 — 운영자가 제대로 된 신호를 잡기 전에 프로세스가 죽습니다.Linux중급21분ProK8S-031startupProbe를 정의한 적이 없어 느리게 시작하는 JVM pod가 루프정상 상태 서비스 기준으로는 liveness와 readiness probe가 합리적으로 보이는데, 애플리케이션이 예열 중 계속 재시작합니다 — 전용 시작 구간을 받지 못합니다.Kubernetes중급21분ProK8S-040루트 디스크의 emptyDir가 PVC 사용량보다 빠르게 커져 노드 축출이 시작애플리케이션 스토리지는 영구 볼륨에서 정상인데, 노드 루트 파일시스템의 임시 작업 디렉터리가 조용히 차오르며 축출 압박을 유발합니다.Kubernetes중급24분Pro