IL-0204 Render · 2024-12-17 (게시일)kubernetesnetworking
2022년 1월 Render 의 프랑크푸르트 클러스터 하나에서 etcd 메모리가 급증해 Kubernetes 컨트롤 플레인이 과부하에 걸렸다. 처음에는 새 배포와 크론 잡 실행만 실패했다. Render 는 이 단계를 매우 나쁘지만 치명적이지는 않은 상태로 봤다.
DNS 서버인 CoreDNS 는 컨트롤 플레인 노드에서 돌고 있었고, 팀은 장애 중에 그 노드들을 재부팅했다. Kubernetes API 서버는 DNS 질의에 답할 때는 필요 없지만 DNS 서버가 초기화할 때는 필요하다. API 서버가 컨트롤 플레인과 함께 내려가 있었기 때문에 CoreDNS 가 다시 시작하지 못했다. 그 결과 이미 돌던 서비스로 가는 요청까지 실패했다. CoreDNS 가 장애 내내 떠 있었다면 kubernetes 플러그인이 관리하는 메모리 캐시로 DNS 요청에 답해 영향을 줄일 수 있었다.
Render 는 데이터 플레인이 컨트롤 플레인에서 충분히 분리되지 않은 것을 핵심 문제로 꼽았다. 노드를 재부팅하지 않았더라도 etcd 메모리 급증만으로 DNS 서버가 재시작될 수 있었다.
2022년 1월 Render 의 프랑크푸르트 Kubernetes 클러스터 하나에서 새 배포와 크론 잡 실행이 실패했다. etcd 메모리 급증으로 컨트롤 플레인이 과부하에 걸린 상태였다.
처음에는 새 배포와 크론 잡처럼 컨트롤 플레인을 거치는 작업만 실패했다. 장애 중에 컨트롤 플레인 노드를 재부팅한 뒤로 DNS 조회가 실패하기 시작했고, 이미 돌고 있던 서비스로 가는 요청까지 실패했다.
원인 용량 한계
–
–
CoreDNS 는 API 서버가 내려가 있어도 메모리 캐시로 DNS 질의에 답할 수 있지만, 초기화할 때는 API 서버가 필요하다. CoreDNS 가 컨트롤 플레인 노드에 있었기 때문에, 컨트롤 플레인 장애 중에 노드를 재부팅하자 새 배포와 크론 잡만 실패하던 장애가 이미 돌던 서비스로 가는 요청까지 실패하는 장애로 커졌다.
핵심 문제는 데이터 플레인이 컨트롤 플레인에서 충분히 분리되어 있지 않았다는 점이다. 노드를 재부팅하지 않았더라도 etcd 메모리 급증만으로 CoreDNS 가 재시작될 수 있었다.
IL-0194 kube-apiserver 재시작 뒤 Vector DaemonSet 의 파드 list 요청이 한꺼번에 몰려 etcd 메모리가 세 배 가까이 늘고 마스터 노드가 연쇄적으로 재시작했다.Palark · 2023같은 원인 · 공통 쿠버네티스 API 서버, etcd
IL-0076 dex의 AuthRequest 리소스가 끝없이 쌓였고, 이를 치우려고 네임스페이스를 지우자 목록 조회 타임아웃과 재시도가 반복되며 쿠버네티스 마스터가 내려갔다Fullstaq · 2019같은 원인 · 공통 쿠버네티스 API 서버, etcd
IL-0075 클러스터가 EC2 인스턴스 약 290대로 커지자 노드마다 도는 Datadog 에이전트가 쿠버네티스 API 를 폴링하면서 API 서버가 CPU 와 메모리를 다 써 쿠버네티스 컨트롤 플레인을 쓸 수 없게 됐다.Civis Analytics · 2019같은 원인 · 공통 쿠버네티스 API 서버, etcd
IL-0102 배포와 워커 오토스케일링 폭주가 겹치자 크기를 고정해 둔 CoreDNS 가 메모리 한도를 넘겨 재시작된 뒤 회복하지 못했고, Buildkite 사이트 전체가 약 30분 멈췄다.Buildkite · 2026같은 원인 · 공통 CoreDNS
IL-0155 NYC1 의 일부 DOKS 클러스터에서 공유 CPU 노드 위의 CoreDNS 때문에 DNS 가 간헐적으로 실패하고 NodeNotReady 가 났다DigitalOcean · 2026같은 원인 · 공통 CoreDNS
https://incidentlib-mcp.benchlet.com/mcpAPI 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.
IL-0048 대형 EKS 클러스터에서 CoreDNS 가 VPC DNS 리졸버로 보내는 질의가 링크 로컬 트래픽의 초당 1024 패킷 한도에 걸려 DNS 조회가 간헐적으로 타임아웃됐다.unknown · 2025같은 원인 · 공통 CoreDNS
IL-0082 EKS 노드 교체 중 CoreDNS 파드 하나가 종료되자 남은 CoreDNS 파드가 늘어난 부하를 버티지 못해 DNS 조회가 느려지고 타임아웃이 났다.RebelMouse · 2025같은 원인 · 공통 CoreDNS
같은 원인 · 공통 CoreDNS
IL-0182 트래픽이 급변할 때 수가 모자란 CoreDNS 가 과부하로 지연과 간헐적 네트워크 끊김을 일으켰고, 나중에는 과하게 늘린 CoreDNS 파드가 Karpenter 의 노드 통합을 막았다이언철 · 2024같은 원인 · 공통 CoreDNS
IL-0168 새 쿠버네티스 릴리스 뒤 많은 Kapsule 클러스터가 동시에 자동 업그레이드되면서 Kubernetes API 가 과부하로 OOM 이 났고, 새 노드 인증 방식의 재시도가 혼잡을 키워 노드가 Not Ready 가 됐다.Scaleway · 2024같은 원인 · 공통 쿠버네티스 API 서버
IL-0195 200개가 넘는 노드의 고객 클러스터에서 Cilium 파드가 LIST 요청을 한꺼번에 쏟아내 kube-apiserver 가 메모리를 다 쓰고 죽기를 되풀이했다.Palark · 2023같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 쿠버네티스 API 서버
IL-0002 빌더 파드가 노드 한 대에 몰리자 kubelet 이 기본 API QPS 한도에 막혀 파드 상태를 늦게 갱신했고, CI 빌드가 AWS IAM 자격 증명을 받지 못해 실패했다Zalando · 2019같은 원인 · 공통 쿠버네티스 API 서버
같은 원인 · 공통 CoreDNS
같은 원인 · 공통 쿠버네티스 API 서버