IL-0365 DFDS · 2020-06-09kubernetesawsnetworking
ALB 의 인스턴스 연결이 모두 사라져 Hellman 쿠버네티스 클러스터의 모든 서비스가 외부에서 닿지 않았다
2020-06-09 DFDS 는 Hellman 쿠버네티스 클러스터의 오토스케일링 그룹을 가용 영역마다 따로 두도록 바꾸는 계획된 유지보수를 11:00 CET 에 시작했다. 12:20 에 Terraform 변경을 적용하자 AWS Application Load Balancer, 곧 ALB 두 대에서 연결된 인스턴스가 모두 빠졌다. 인증을 거치는 ALB 와 거치지 않는 ALB 모두에서 쿠버네티스 워커 노드가 사라졌고, 클러스터 안의 모든 서비스가 클러스터 밖에서 닿지 않게 됐다. 12:25 에 CloudWatch 알림이 ALB 의 5XX 가 많다고 알렸고, 12:28 에 인그레스 트래픽이 없는 문제를 확인했다. SRE 팀은 원인을 빠르게 찾아 12:35 에 인스턴스를 ALB 에 손으로 붙여 문제를 완화했고, 13:13 에 영구 수정을 마쳤다.
DFDS 는 기여 요인으로 여섯 가지를 들었다. 테스트 클러스터가 ALB 를 거치는 인그레스 트래픽을 검증하지 않았다. 유지보수 플레이북에 단계 하나가 빠져 있었다. 유지보수 시간이 점심시간에 너무 가깝게 옮겨졌다. 서비스 중단을 일으키는 유지보수 중에는 알림이 폭증했다. 평소 알림 소음이 다시 너무 높아졌다. ALB 에 연결된 인스턴스의 문제는 간접적으로만 알림으로 잡혔다. 감지까지 5분, 복구까지 15분이 걸렸다.
- 심각도
- –
- 영향 범위
- All services running inside the Hellman Kubernetes cluster were unavailable from outside the cluster
- 영향 사용자
- –
- 지역
- –
- 감지까지
- 5m
- 복구까지
- 15m
증상
2020-06-09 12:25 CET 에 CloudWatch 알림이 두 ALB 의 5XX 수가 높다고 알렸다. 12:28 에 인그레스 트래픽이 전혀 들어오지 않는 문제를 감지하고 확인했다.
Hellman 쿠버네티스 클러스터 안에서 도는 모든 서비스가 클러스터 밖에서 닿지 않았다. 인증을 거치는 ALB 와 거치지 않는 ALB 모두에서 연결된 인스턴스, 곧 쿠버네티스 워커 노드가 모두 빠져 있었다.
서비스 중단을 일으키는 유지보수를 하는 동안 알림이 폭증했고, 평소 알림 소음도 다시 높아져 있었다. ALB 에 연결된 인스턴스의 문제는 다른 신호를 거쳐 간접적으로만 알림으로 잡혔다. ALB 대상이 정상인지 비정상인지를 보는 알림은 없었다.
증상 서비스 중단
원인
- 촉발
- 가용 영역마다 오토스케일링 그룹을 따로 두도록 Hellman 클러스터를 바꾸는 계획된 유지보수에서 12:20 CET 에 Terraform 변경을 적용하자, 두 ALB 의 인스턴스 연결이 모두 지워졌다.
감지
12:25 CET 에 CloudWatch 알림이 ALB 의 5XX 수가 높다고 알렸고, 12:28 에 인그레스 트래픽이 들어오지 않는 문제를 감지하고 확인했다.
조치
- 인스턴스를 ALB 에 손으로 붙여 빠르게 문제를 완화했다.
- 그 뒤 한 시간 안에 영구 수정을 적용했다.
후속 조치
- ALB 대상이 정상인지 비정상인지에 알림을 걸어 더 정확하고 즉각적으로 알 수 있게 한다.
- 알림 소음을 더 줄인다.
- Goldpinger 에 호스트 이름 해석을 구현한다.
교훈
평소 알림 소음이 여전히 너무 높았고, ALB 대상이 정상인지 비정상인지를 보는 알림이 없었다. 테스트 클러스터에서도 ALB 를 거치는 인그레스를 검증해야 한다.
출처
관련 사례
IL-0109로그 수집을 고치려던 EKS 노드 롤오버가 꼬이면서 Auto Scaling 그룹이 정상 워커 노드를 모두 종료해 클러스터에 노드가 하나도 남지 않았다.DFDS · 2023 · sev1같은 원인 · 공통 노드 런치 템플릿, Terraform
같은 원인 · 공통 Terraform, 클라우드 로드 밸런서
같은 원인 · 공통 클라우드 로드 밸런서
같은 원인 · 공통 클라우드 로드 밸런서
IL-0192Crossplane 컴포지션의 병합 정책 변경이 Service 타입을 ClusterIP 로 바꿔 클라우드 로드 밸런서가 지워지고 Grafana Cloud 서비스의 약 25%가 끊겼다.Grafana Labs · 2025같은 원인 · 공통 클라우드 로드 밸런서
같은 원인 · 공통 Terraform
IL-0019EKS 모듈 18 업그레이드로 새 노드의 디스크가 20Gb 로 줄어 이미지 풀이 no space left on device 로 실패했다UK Ministry of Justice · 2023같은 원인 · 공통 노드 런치 템플릿
IL-0473Azure 공개 쿠버네티스 클러스터의 노드 풀이 모두 지워지고 다시 만들어지지 않아 Jenkins 인프라 서비스가 4시간 넘게 멈췄다Jenkins project · 2023같은 원인 · 공통 클라우드 로드 밸런서
IL-0091Terraform 으로 노드 인스턴스 타입을 바꾸자 노드가 한꺼번에 교체되어 사용자 운영 파드가 모두 지워지고 서비스가 내려갔다UK Ministry of Justice · 2023같은 원인 · 공통 Terraform
같은 원인 · 공통 Terraform
같은 원인 · 공통 Terraform
IL-0513쿠버네티스 노드 순차 재시작 중 Ingress 가 관리하는 ELB 의 HTTPS 리스너가 꺼져 PyPI 백엔드에 HTTPS 로 닿지 못했다Python Software Foundation · 2022같은 원인 · 공통 클라우드 로드 밸런서
같은 원인 · 공통 클라우드 로드 밸런서
IL-0208GitLab Helm 차트 업그레이드가 Service 와 Deployment 의 포트 이름을 바꿔 GCP 로드 밸런서가 다시 구성되는 동안 GitLab.com 요청이 느려지고 50x 오류가 났다GitLab · 2022같은 원인 · 공통 클라우드 로드 밸런서
IL-0111메인 인그레스 컨트롤러를 Traefik v2 로 바꾸자 X-Forwarded 헤더가 전달되지 않아 Okta 로그인이 깨졌고, DFDS 온라인 예약이 한 시간 넘게 멈췄다DFDS · 2021같은 원인 · 공통 클라우드 로드 밸런서
IL-0061Terraform 상태 파일이 리뷰 빌드에서 바뀐 데다 권한 차이까지 겹쳐 Terraform 이 운영 GKE 클러스터 세 개 중 두 개를 삭제했다Spotify · 2019같은 원인 · 공통 Terraform
IL-0052인증 없이 인터넷에 열린 Weave Scope 대시보드를 통해 암호화폐 채굴기가 개발 클러스터와 스테이징 클러스터의 모든 노드에서 돌았다.JW Player · 2019같은 원인 · 공통 클라우드 로드 밸런서
내 클러스터에도 있는지 확인하기
AI 도구와 스크립트용
- 이 사례의 JSON: https://incidentlib-api.benchlet.com/cases/IL-0365
- 가장 비슷한 사례들: https://incidentlib-api.benchlet.com/cases/IL-0365/similar
- MCP 서버(Streamable HTTP, 키 없음):
https://incidentlib-mcp.benchlet.com/mcp
API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.