Kubernetes Workload Reliability
Kubernetes Workload Reliability 관련 장애 문제 44개를 모았습니다. 검수된 문제부터 풀어 보세요.
먼저 읽을 가이드
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분 읽기
추천 문제
검수된 문제를 먼저, 그다음 시나리오가 자세한 문제를 보여 줍니다.
모든 문제 44개
CrashLoopBackOff: 새 버전 배포 뒤 파드가 계속 재시작새 버전을 배포하자 파드가 몇 초 만에 꺼졌다 켜지기를 반복합니다.검수Kubernetes입문3분무료Exit Code 137(OOMKilled): 컨테이너가 부하 때마다 재시작정산 API 파드가 요청이 몰리는 시간에만 재시작됩니다.검수Kubernetes입문3분무료OOMKilled: 큰 이미지가 몰릴 때마다 컨테이너가 재시작상품 이미지를 줄여 주는 리사이즈 API가 판매자들이 사진을 올리는 오후 시간대마다 재시작을 반복합니다.검수Kubernetes입문15분무료K8S-106CronJob 타임존은 설정돼 있는데 컨트롤러가 다음 오래된 스케줄 창에 중단된 객체를 재개운영자가 새 타임존이 깔끔히 적용되길 기대하며 작업 중단을 해제하는데, 컨트롤러가 즉시 놓친 옛 스케줄 구간을 실행합니다.Kubernetes중급15분무료K8S-110그 index의 ConfigMap 키가 만들어진 적이 없어 Indexed Job 완료가 shard 하나만 실패워크로드는 대체로 끝나는데 index 하나가 무한 반복합니다 — 컨트롤러와 설정 명명 방식이 샤드별 입력에서 어긋납니다.Kubernetes중급15분무료K8S-120업그레이드 중 노드 feature label이 사라져 GPU DaemonSet이 모든 새 worker에서 조용히 스케줄 해제됨노드는 잘 조인하는데 뒤따라야 할 워크로드가 따라오지 않습니다 — 업그레이드 과정에서 광고되던 기능 label이 바뀌거나 빠졌습니다.Kubernetes중급16분무료K8S-122pod anti-affinity가 preferred일 뿐이라, zone 상실 후 대체 레플리카가 한 노드에 몰려 다음 장애가 서비스 전체를 날림가용성이 조용히 열화됩니다 — 스케줄러가 압박 속에서도 가용성을 지키긴 하는데, 팀이 가정한 방식은 아닙니다.Kubernetes중급17분무료K8S-159canary Service는 올바른 pod로 라우팅하는데 새 ReplicaSet의 topology spread가 canary 용량을 한 zone에 몰아 합성 테스트가 전역 준비 상태를 잘못 판정zone 하나가 canary 모집단을 지배하게 되면서 트래픽 실험 결과가 통계적으로 왜곡됩니다.Kubernetes고급17분ProK8S-112메트릭 APIService 인증서 drift로 scrape 절반이 깨져 HorizontalPodAutoscaler가 커스텀 메트릭을 간헐적으로만 봄어댑터에는 닿는데 컨트롤 플레인 구성 요소 사이의 TLS 검증이 산발적으로 실패해 오토스케일링이 무작위처럼 보입니다.Kubernetes고급18분ProK8S-101StatefulSet ordinal 재시작이 PodDisruptionBudget과 충돌해 노드 점검 후 quorum이 끝내 다시 형성되지 않음레플리카 하나가 다른 하나의 복구를 기다리는데 축출 보호가 quorum 알고리즘에 필요한 재시작 순서를 막습니다.Kubernetes고급19분ProK8S-369drain했던 노드가 서비스로 복귀했는데 descheduler나 anti-affinity 로직이 임시였어야 할 비상 배치 패턴을 계속 유지 (단계적 폐기 중)클러스터는 다시 정상인데 배치는 아직 장애 당시 구성을 반영합니다. 주 경로로는 서비스가 계속 되고, 옛 구성 요소가 완전히 빠질 때만 의존성 하나가 실패합니다.Kubernetes고급17분ProK8S-157pod 재시작 예산은 정상인데 cluster autoscaler가 로컬 PV affinity를 만족하는 유일한 노드를 제거해 대체 pod가 재스케줄되지 못함용량은 남아 있는데 스토리지 지역성이 복구를 더는 존재하지 않는 노드에 계속 고정합니다.Kubernetes고급17분ProK8S-118PodDisruptionBudget의 healthy 수는 충족돼 보이는데 종료 중인 unready pod 때문에 drain이 계속 막힘종료 중인 pod가 어떤 상태에서는 집계되고 다른 상태에서는 제외돼 disruption 계산을 혼란시켜 점검이 끝나지 못합니다.Kubernetes고급17분ProK8S-148외부 큐 깊이 기반 HPA가 확장은 제대로 하는데 축소가 끝내 일어나지 않음Kubernetes고급17분ProK8S-204autoscaler가, 백로그가 사라진 뒤로도 한참 오래된 상태로 남는 큐 깊이 메트릭을 신뢰 (failover 리허설 중)신선도가 메트릭 계약에 없어 스케일링이 계속 어제의 압박이 남아 있는 것처럼 동작합니다. failover 리허설에서 standby나 대체 경로가 활성화되기 전까지는 평상시 트래픽이 문제를 감췄습니다.Kubernetes고급18분ProK8S-121DaemonSet surge 업데이트가 hostPort 바인딩을 두 배로 만들어 절반의 노드에서 새 pod가 끝내 Ready가 되지 않음서류상 롤아웃 전략이 더 안전해 보이는데 host 레벨 포트 배타성 때문에 옛 pod와 새 pod가 겹칠 수 없습니다.Kubernetes고급18분ProK8S-345topology spread 규칙은 균형 잡혀 보이는데 정작 비상 폴백 pod가 실제로 뜰 수 있는 유일한 곳이 taint 걸린 노드 풀 하나 (단계적 폐기 중)장애가 스케줄러를 호환 taint를 가진 유일한 도메인으로 몰아넣기 전까지는 분산이 공평해 보입니다. 주 경로로는 서비스가 계속 되고, 옛 구성 요소가 완전히 빠질 때만 의존성 하나가 실패합니다.Kubernetes고급18분ProK8S-102topology spread 제약은 유효해 보이는데 matchLabelKeys가 새 롤아웃 리비전을 제외해 새 pod가 전부 한 zone에 몰림서류상 정책은 정상으로 보이는데 새 ReplicaSet만 분산 규칙에서 빠집니다 — 그 리비전 label이 spread match 집합에 들어 있지 않습니다.Kubernetes고급18분ProK8S-141노드 drain이 PodDisruptionBudget은 지키는데 커스텀 컨트롤러가 헬퍼 pod를 즉시 다시 만들어 drain이 끝내 수렴하지 않음Kubernetes는 제대로 동작하는데 다른 컨트롤러가 점검이 축출하려는 바로 그 pod를 계속 다시 채웁니다.Kubernetes고급18분ProK8S-160노드 이미지 업그레이드가 cgroup v2를 켜자 Java 워크로드 하나가 힙 한도를 잘못 보고하기 시작해 HPA가 엉뚱한 사용률 기준으로 스케일앱은 계속 도는데 노드 이미지와 함께 런타임 메모리 집계가 바뀌어 오토스케일링 결정을 왜곡합니다.Kubernetes고급18분Pro