IL-0031 Zalando · 2018-12-05 (게시일)kubernetesaws
Henning Jacobs가 2018년 12월 DevOpsCon Munich에서 발표한 Zalando 장애 사례 가운데 첫 번째다. Zalando는 클러스터 100개와 AWS 계정 373개를 운영했다. 요청은 ALB를 거쳐 노드마다 떠 있는 Skipper 인그레스로 들어오고, Skipper는 API 서버에서 라우트 정보를 받아 앱 파드로 요청을 보낸다. 이 구조에서 API 서버가 OOMKill로 죽자 Skipper가 라우트를 유지하지 못했다. 고객 트래픽이 끊겼고 IAM 서비스에서 404 오류가 났다.
발표는 원인으로 CronJob 매니페스트 하나를 보여 주었다. 원래 매니페스트에서는 동시 실행 정책과 이력 보존 개수 필드가 파드 템플릿 안에 있었다. 고친 매니페스트는 이 필드들을 CronJob spec으로 옮기고, Job에 activeDeadlineSeconds: 120을 넣고, 일정을 "*/15 9-19 * * Mon-Fri"에서 "7 8-18 * * Mon-Fri"로 바꿨다. 발표는 이 사고의 교훈으로, 모든 호스트가 unhealthy를 보고하면 ALB가 모든 호스트로 트래픽을 보낸다는 점을 꼽았다.
고객에게 영향이 간 장애였다. IAM 서비스에서 404 오류가 나기 시작했다.
발표는 이어서 클러스터의 파드 수를 다룬 슬라이드를 보여 주었다.
그다음 API 서버가 OOMKill로 죽었다. Zalando의 요청은 ALB를 지나 각 노드의 Skipper 인그레스로 들어오고, Skipper는 API 서버에서 받은 라우트로 앱 파드에 요청을 보낸다. API 서버가 죽자 Skipper가 라우트를 받을 곳이 사라졌고, 클러스터 인그레스를 지나는 고객 트래픽이 영향을 받았다.
원인 용량 한계
–
ALB는 등록된 호스트가 모두 unhealthy를 보고하면 모든 호스트로 트래픽을 보낸다. 인그레스는 API 서버에 문제가 생겨도 healthy 상태를 유지해야 하고, 마지막으로 받은 라우트 목록을 계속 써야 한다. 파드 수에는 ResourceQuota로 상한을 걸어 둔다.
IL-0170 설날 이벤트 트래픽이 평소의 3배를 넘자 Istio ingressGateway 가 있는 EKS 노드의 nf_conntrack 테이블이 가득 차 패킷이 버려졌고, 웹과 앱 서비스 전체가 멈췄다.Backpackr · 2025같은 원인 · 공통 인그레스 컨트롤러
IL-0204 Render 프랑크푸르트 클러스터에서 etcd 메모리 급증으로 컨트롤 플레인이 과부하에 걸렸고, 컨트롤 플레인 노드를 재부팅하자 그 위의 CoreDNS 가 다시 뜨지 못해 DNS 가 멈췄다.Render · 2024같은 원인 · 공통 쿠버네티스 API 서버
IL-0168 새 쿠버네티스 릴리스 뒤 많은 Kapsule 클러스터가 동시에 자동 업그레이드되면서 Kubernetes API 가 과부하로 OOM 이 났고, 새 노드 인증 방식의 재시도가 혼잡을 키워 노드가 Not Ready 가 됐다.Scaleway · 2024같은 원인 · 공통 쿠버네티스 API 서버
IL-0195 200개가 넘는 노드의 고객 클러스터에서 Cilium 파드가 LIST 요청을 한꺼번에 쏟아내 kube-apiserver 가 메모리를 다 쓰고 죽기를 되풀이했다.Palark · 2023같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 쿠버네티스 API 서버
https://incidentlib-mcp.benchlet.com/mcpAPI 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.
IL-0194 kube-apiserver 재시작 뒤 Vector DaemonSet 의 파드 list 요청이 한꺼번에 몰려 etcd 메모리가 세 배 가까이 늘고 마스터 노드가 연쇄적으로 재시작했다.Palark · 2023같은 원인 · 공통 쿠버네티스 API 서버
IL-0093 리더 ingress 컨트롤러 파드가 공유 메모리를 다 써서 ingress 컨트롤러 파드 6개 중 4개가 크래시 루프에 빠졌다UK Ministry of Justice · 2020같은 원인 · 공통 인그레스 컨트롤러
IL-0002 빌더 파드가 노드 한 대에 몰리자 kubelet 이 기본 API QPS 한도에 막혀 파드 상태를 늦게 갱신했고, CI 빌드가 AWS IAM 자격 증명을 받지 못해 실패했다Zalando · 2019같은 원인 · 공통 쿠버네티스 API 서버
IL-0076 dex의 AuthRequest 리소스가 끝없이 쌓였고, 이를 치우려고 네임스페이스를 지우자 목록 조회 타임아웃과 재시도가 반복되며 쿠버네티스 마스터가 내려갔다Fullstaq · 2019같은 원인 · 공통 쿠버네티스 API 서버