Incident Library

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 를 거치는 인그레스를 검증해야 한다.

출처

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: Terraform, 클라우드 로드 밸런서, 노드 런치 템플릿. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.