IL-0102 Buildkite · 2026-08-25kubernetesaws
Buildkite 는 넉 달째 운영 워크로드를 AWS ECS 에서 AWS EKS 클러스터로 옮기고 있었고, 그동안 클러스터는 꾸준히 커졌다. 이 클러스터의 서비스들은 데이터베이스와 큐 같은 구성 요소의 위치를 CoreDNS 로 찾는다. CoreDNS 는 크기가 고정돼 있어 클러스터 크기나 변경 속도에 맞춰 늘어나지 않았다. Buildkite 는 얼마 전 시간에 민감한 알림 작업을 범용 백그라운드 워커 풀에서 새 저지연 워커 풀로 옮기면서, 두 풀 모두에 원래 공용 풀과 같은 높은 maxReplica 값을 주었다. 이 값은 나중에 낮출 생각이었다.
22:44 UTC 배포로 파드가 급증하자 클러스터가 확장을 시작했고, 기존 노드의 여유 용량이 바닥나 다른 서비스의 오토스케일링이 제때 되지 않았다. 노드를 기다리는 동안 확장 지표가 바뀌지 않으니 워커들은 파드를 더 요청했고, 높게 잡아 둔 최대치가 이 폭주를 막지 못했다. 배포와 오토스케일링 폭주가 겹쳐 애플리케이션, 네트워크 엔드포인트, 노드가 유난히 빠르게 바뀌었고, 그 결과 CoreDNS 에 갑자기 부하가 몰렸다.
CoreDNS 쿼리 처리 시간이 약 780ms 까지 늘면서 대기 요청이 메모리에 쌓였고, 파드 세 개가 모두 메모리 한도를 넘어 재시작됐다. 재시작 뒤에도 수요와 DNS 재시도가 이어져 CoreDNS 는 회복하지 못했다. CoreDNS 가 멈추자 모든 고객의 API, 작업 배정, 알림이 실패했고, 재시도와 밀린 작업이 복구 중 부하를 더 키웠다. 팀은 배포를 멈추고 CoreDNS 를 늘렸다. 새 빌드 처리는 23:10 UTC 에 다시 시작됐다. 새 CoreDNS 파드가 23:12 UTC 에 서비스에 들어오자 DNS 오류가 빠르게 줄었고, 밀린 작업은 23:16 UTC 까지 모두 처리됐다.
사후 분석에서 CoreDNS 모니터링의 결함이 드러났다. 핵심 모니터링 쿼리 하나에 결함이 있어 클러스터 크기와 함께 늘던 쿼리 처리 시간이 보이지 않았고, DNS 쿼리량은 충분히 모니터링되지 않았다. 그래서 계획해 둔 CoreDNS 오토스케일링 도입의 우선순위가 제대로 잡히지 않았다.
22:47 UTC 부터 Buildkite 웹 화면, REST API, Agent API, 작업 큐, 알림이 한꺼번에 장애를 겪었다. 모든 고객이 웹 화면이나 REST API 로 새 빌드를 만들 수 없었고, 작업 배정이 늦어졌다.
소스 관리 서비스에서 오는 웹훅은 계속 받았지만 처리가 밀렸다. 장애가 시작될 때 이미 돌고 있던 빌드 일부는 서비스가 회복될 때까지 멈춰 있었다. EKS 클러스터 안의 PgBouncer 를 거쳐 데이터베이스에 붙던 일부 고객은 웹 화면과 웹훅 수신에서 오류 응답을 받았고, 이런 오류는 전체 요청의 1.5% 미만이었다.
CoreDNS 에서는 처리를 마친 쿼리 수가 그대로였지만 쿼리 처리 시간이 1ms 미만에서 약 780ms 로 늘었다. 처리되지 못한 요청이 메모리에 쌓이면서 원래 있던 CoreDNS 파드 세 개가 모두 메모리 한도를 넘었고, 쿠버네티스가 이 파드들을 재시작했다. 재시작 뒤에도 요청과 DNS 재시도가 계속 몰려 CoreDNS 는 회복하지 못했다.
징후는 장애 전부터 있었다. CoreDNS 쿼리 처리 시간은 클러스터가 커지면서 계속 늘고 있었고, DNS 쿼리량도 EKS 로 워크로드를 옮길수록 늘고 있었다. 핵심 모니터링 쿼리에 결함이 있어 처리 시간이 느는 것이 보이지 않았고, 쿼리량은 제대로 모니터링되지 않았다. 클라이언트 쪽 지연 증가는 최근 애플리케이션 성능 개선에 묻혀 눈에 띄지 않았다.
장애는 22:47 UTC 에 시작됐고, Buildkite 는 22:55 UTC 에 문제를 조사 중이라고 상태 페이지에 처음 알렸다. 23:05 UTC 에는 사이트 전체 장애를 조사 중이라고 올렸다. CoreDNS 쿼리 처리 시간은 클러스터가 커지면서 늘고 있었지만, 핵심 모니터링 쿼리의 결함과 쿼리량 모니터링 부족 때문에 장애 전에는 이를 알아채지 못했다.
크기를 고정해 둔 CoreDNS 는 클러스터가 커지고 변경 속도가 빨라지면 한순간에 무너질 수 있다. 나중에 낮출 생각으로 높게 잡아 둔 워커의 최대 레플리카 수는 노드 공급이 늦어질 때 오토스케일링 폭주를 막지 못했다. 모니터링 쿼리에 결함이 있고 쿼리량을 제대로 감시하지 않아 장기 추세가 보이지 않았다. 클러스터 핵심 서비스는 급격한 저하와 여유분 감소를 둘 다 직접 감시해야 한다.
같은 원인 · 공통 컨테이너 메모리 한도, CoreDNS, 노드 풀
IL-0155 NYC1 의 일부 DOKS 클러스터에서 공유 CPU 노드 위의 CoreDNS 때문에 DNS 가 간헐적으로 실패하고 NodeNotReady 가 났다DigitalOcean · 2026같은 원인 · 공통 CoreDNS, 노드 풀
IL-0082 EKS 노드 교체 중 CoreDNS 파드 하나가 종료되자 남은 CoreDNS 파드가 늘어난 부하를 버티지 못해 DNS 조회가 느려지고 타임아웃이 났다.RebelMouse · 2025같은 원인 · 공통 CoreDNS, 노드 풀
같은 원인 · 공통 컨테이너 메모리 한도, 노드 풀
IL-0182 트래픽이 급변할 때 수가 모자란 CoreDNS 가 과부하로 지연과 간헐적 네트워크 끊김을 일으켰고, 나중에는 과하게 늘린 CoreDNS 파드가 Karpenter 의 노드 통합을 막았다이언철 · 2024같은 원인 · 공통 CoreDNS, 수평 파드 오토스케일러
https://incidentlib-mcp.benchlet.com/mcpAPI 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.
같은 원인 · 공통 컨테이너 메모리 한도, 노드 풀
IL-0094 JupyterHub 클러스터에서 학생 파드가 노드의 CPU 와 메모리를 다 써서 자원 보장이 부족했던 코어 파드가 자원을 얻지 못했고, 허브 전체가 멈췄다.2i2c · 2020같은 원인 · 공통 컨테이너 메모리 한도, 노드 풀
같은 원인 · 공통 컨테이너 메모리 한도, CoreDNS
같은 원인 · 공통 수평 파드 오토스케일러
같은 원인 · 공통 노드 풀
IL-0048 대형 EKS 클러스터에서 CoreDNS 가 VPC DNS 리졸버로 보내는 질의가 링크 로컬 트래픽의 초당 1024 패킷 한도에 걸려 DNS 조회가 간헐적으로 타임아웃됐다.unknown · 2025같은 원인 · 공통 CoreDNS
IL-0204 Render 프랑크푸르트 클러스터에서 etcd 메모리 급증으로 컨트롤 플레인이 과부하에 걸렸고, 컨트롤 플레인 노드를 재부팅하자 그 위의 CoreDNS 가 다시 뜨지 못해 DNS 가 멈췄다.Render · 2024같은 원인 · 공통 CoreDNS
IL-0044 kube-prometheus-stack 업그레이드 뒤 Prometheus 가 WAL 재생 중 메모리를 50Gi 넘게 써서 시작할 때마다 OOMKilled 로 죽었다Saifeddine Rajhi · 2024같은 원인 · 공통 컨테이너 메모리 한도
IL-0110 Grafana Agent 파드가 메모리를 많이 쓰던 노드에 Hangfire 파드가 함께 올라가 시스템 OOM 으로 CrashLoopBackOff 를 반복했고, 노드가 응답을 멈추고 NotReady 가 됐다.DFDS · 2024같은 원인 · 공통 컨테이너 메모리 한도
IL-0169 FR-PAR 의 Scaleway Kubernetes API 가 메모리 부족으로 쓰러져 노드 인증이 막히고 Kapsule 노드가 NotReady 가 됐다.Scaleway · 2024같은 원인 · 공통 컨테이너 메모리 한도
같은 원인 · 공통 컨테이너 메모리 한도
IL-0070 dask-gateway로 워커를 대량으로 띄우자 노드가 1분 만에 100대 늘었고, Prometheus가 메모리를 거의 다 쓰던 코어 노드에서 hub 파드를 비롯한 중요한 파드들이 축출되거나 재시작됐다2i2c · 2023같은 원인 · 공통 노드 풀
IL-0206 GKE 파드 안의 Consul 에이전트가 메모리 급증으로 거듭 OOM kill 되어 Rails 파드가 데이터베이스 복제본을 찾지 못했고, 모든 쿼리가 primary 로 몰려 GitLab.com 이 느려졌다.GitLab · 2022같은 원인 · 공통 컨테이너 메모리 한도
같은 원인 · 공통 노드 풀
같은 원인 · 공통 노드 풀
IL-0026 메모리 제한이 없는 fluentd-sumologic 파드가 메모리를 다 써서 운영 쿠버네티스 노드 두 대에 이틀 연속 SystemOOM 이 났다Blue Matador · 2019같은 원인 · 공통 컨테이너 메모리 한도