IL-0015 loveholidays · 2020-02-03 (게시일)kubernetesgcpnetworking
loveholidays 는 GKE 에서 공유 VPC 를 쓰고, 클러스터 하나를 전용 서브넷을 둔 VPC 네이티브 모드로 돌린다. VPC 네이티브 클러스터는 파드 IP 를 서브넷의 보조 범위에서 할당한다. 보조 범위가 /16 이라 파드를 최대 65,536개 띄울 수 있다고 봤다.
GKE 는 노드당 최대 파드 수를 기본 110 으로 두고, 노드에 파드를 몇 개만 띄울 계획이어도 IP 110개를 미리 할당한다. 게다가 파드가 노드에 추가되고 제거될 때 IP 재사용을 줄이려고, 최대 파드 수의 두 배 이상을 담을 수 있는 서브넷 마스크를 노드마다 준다. 그래서 노드 하나가 IP 256개를 차지했고, 65,536 / 256 = 256 으로 관찰한 노드 수와 정확히 맞았다. IP 가 바닥나자 클러스터 오토스케일러는 노드를 추가하지 못했고, 배포는 끝까지 롤아웃되지 못했다.
팀은 파드를 많이 띄우지 않을 노드 풀에서 노드당 최대 파드 수를 줄여 전체 IP 사용량을 약 30% 줄였다. 일부 노드 풀의 인스턴스를 키워 노드당 더 많은 파드를 돌리게 했다. 서브넷 확장도 검토했지만 문서가 보조 범위를 다루지 않아 쓰지 않았다.
동료가 슬랙으로 애플리케이션 배포가 오래 걸린다고 알려 왔다. 평소 몇 분이면 끝나는 배포가 한 시간째 새 파드 일부만 띄운 채 머물러 있었다. 새 파드의 절반쯤은 트래픽을 받고 있었고 나머지 절반은 Pending 상태였다.
Pending 파드 하나를 describe 하자 Warning FailedScheduling 2m18s (x4 over 3m48s) default-scheduler 0/256 nodes are available: 1 node(s) were unschedulable, 173 Insufficient memory, 214 node(s) didn't match node selector, 87 Insufficient cpu. 이벤트가 보였다. 보통은 클러스터 오토스케일러가 노드를 늘리는데 이번에는 진척이 없었다. 0/256 이라는, 2의 거듭제곱으로 딱 떨어지는 숫자가 수상했다.
kubectl describe -n kube-system configmap cluster-autoscaler-status 로 오토스케일러 이벤트를 보니 Warning ScaleUpFailed 와 함께 Failed adding 3 nodes to group 이 찍혀 있었다. 원인은 Instance 'INSTANCE' creation failed: IP space of 'projects/PROJECT/regions/OUR_REGION/subnetworks/SUBNETWORK' is exhausted. 였고, 같은 오류가 36분 동안 14번 반복됐다.
팀은 처음에 IP 를 다 썼다는 것을 이해하지 못했다. 파드가 수천 개여도 65,536개 IP 에는 한참 못 미친다고 봤기 때문이다. 그래서 GKE 문서를 다시 찾아봤다.
동료가 슬랙으로 배포가 오래 걸린다고 알려 왔다. 확인해 보니 평소 몇 분이면 끝나는 배포가 한 시간째 새 파드 일부만 띄운 채 멈춰 있었다.
GKE 는 기본으로 노드마다 IP 256개를 할당한다. /16 처럼 큰 범위도 노드가 256개면 바닥난다. 노드당 최대 파드 수가 파드 IP 소비량을 정하므로, 노드 풀마다 실제로 띄울 파드 수에 맞춰야 한다. 큰 노드를 쓰면 IP 를 효율적으로 쓰고 자원 활용도도 높아지지만, 노드 하나가 죽을 때 더 많은 파드가 함께 내려간다.
IL-0006 AWS VPC CNI 가 자원이 찬 노드에 IP 를 붙잡아 두어 us-east-1 서브넷 IP 가 바닥났고, WARM_IP_TARGET 을 바꾼 조치가 파드 시작 실패를 더 오래 끌었다Neon · 2025같은 원인 · 공통 클러스터 오토스케일러, VPC 서브넷 또는 파드 주소 범위
IL-0102 배포와 워커 오토스케일링 폭주가 겹치자 크기를 고정해 둔 CoreDNS 가 메모리 한도를 넘겨 재시작된 뒤 회복하지 못했고, Buildkite 사이트 전체가 약 30분 멈췄다.Buildkite · 2026같은 원인 · 공통 노드 풀
IL-0155 NYC1 의 일부 DOKS 클러스터에서 공유 CPU 노드 위의 CoreDNS 때문에 DNS 가 간헐적으로 실패하고 NodeNotReady 가 났다DigitalOcean · 2026같은 원인 · 공통 노드 풀
같은 원인 · 공통 노드 풀
IL-0082 EKS 노드 교체 중 CoreDNS 파드 하나가 종료되자 남은 CoreDNS 파드가 늘어난 부하를 버티지 못해 DNS 조회가 느려지고 타임아웃이 났다.RebelMouse · 2025같은 원인 · 공통 노드 풀
https://incidentlib-mcp.benchlet.com/mcpAPI 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.
같은 원인 · 공통 노드 풀
같은 원인 · 공통 노드 풀
같은 원인 · 공통 VPC 서브넷 또는 파드 주소 범위
IL-0016 네임스페이스와 규칙이 늘어 live 클러스터의 Prometheus 가 메모리 부족으로 OOMKilled 되며 플랫폼 모니터링이 끊겼다UK Ministry of Justice · 2023같은 원인 · 공통 노드 풀
IL-0070 dask-gateway로 워커를 대량으로 띄우자 노드가 1분 만에 100대 늘었고, Prometheus가 메모리를 거의 다 쓰던 코어 노드에서 hub 파드를 비롯한 중요한 파드들이 축출되거나 재시작됐다2i2c · 2023같은 원인 · 공통 노드 풀
IL-0094 JupyterHub 클러스터에서 학생 파드가 노드의 CPU 와 메모리를 다 써서 자원 보장이 부족했던 코어 파드가 자원을 얻지 못했고, 허브 전체가 멈췄다.2i2c · 2020같은 원인 · 공통 노드 풀
같은 원인 · 공통 노드 풀
IL-0017 편집자가 연결함