IL-0067 BC Government · 2025-07-09kubernetes
bcgov GitHub 조직의 klamm 위키에 Klamm 팀이 남긴 Redis 캐시 장애 포스트모템이다. 포스트모템 양식을 일부만 채운 문서여서 장애 ID, 시작과 끝 시각, 시간순 기록, 교훈은 비어 있다. 심각도는 Critical 로 적혀 있다.
2025년 7월 9일 Klamm Laravel 워커 하나에서 I/O 작업이 크게 늘면서 Redis 캐시 요청이 급증했다. Redis 마스터의 영구 볼륨은 스토리지 요청값이 50Mi 로 잡혀 있어 급격히 커지는 AOF 를 감당하지 못했고 곧 가득 찼다. Redis 는 fsync 로 버퍼에 쌓인 쓰기를 디스크에 내려 데이터를 보존한다. 디스크가 차서 fsync 가 실패하자 Redis 는 복구할 수 없는 상태가 되어 프로세스가 종료됐고, OpenShift 에서 Redis 컨테이너가 크래시했다.
디스크가 가득 찬 상태에서 쓰기를 끝까지 마치지 못해 AOF 가 깨졌다. Redis 는 다시 시작할 때마다 이 AOF 를 읽어 데이터를 복구하려 했지만 "invalid byte sequence" 오류로 해석하지 못하고 다시 크래시했다. 파드는 크래시 루프에 빠져 준비 상태가 되지 못했다. 캐시가 오래 멈추자 큐 워커들이 타임아웃됐고, Redis 에 의존하는 서비스가 크게 영향을 받았다. 팀은 스테이트풀셋과 디플로이먼트를 멈추고, 깨진 PVC 를 지운 뒤 다시 만들고, 둘을 다시 시작해 복구했다. PVC 를 다시 만들면서 데이터를 잃었다. Klamm 운영 환경은 업무 시간 외에 약 30분 동안 완전히 멈췄다.
2025년 7월 9일 OpenShift 위의 Klamm 캐시 Redis 클러스터가 멈췄다. Redis 로그에는 "Fail to fsync the AOF file: No space left on device" 오류가 남았다. AOF 는 Redis 가 쓰기 명령을 차례로 덧붙여 저장하는 파일이다.
Redis 컨테이너는 크래시한 뒤 다시 시작하며 AOF 를 읽으려 했지만 "invalid byte sequence" 오류로 파일을 해석하지 못했다. 컨테이너가 계속 크래시해 파드가 준비 상태가 되지 못했고, Redis 에 닿지 못한 큐 워커들이 타임아웃됐다. Klamm 운영 환경은 업무 시간 외에 약 30분 동안 완전히 멈췄다.
원인 용량 한계
–
–
같은 원인 · 공통 인메모리 캐시
IL-0085 Hetzner Cloud 의 k3s 컨트롤 플레인 노드가 메모리 부족으로 꺼진 뒤 클러스터가 Hetzner API 호출 한도를 다 써 버려 모든 고객 사이트가 약 7.5시간 멈췄다.Magic Pages · 2025같은 원인 · 공통 영구 볼륨과 스테이트풀셋
IL-0202 갑자기 몰린 쿼리와 데이터베이스 쓰기로 Honeycomb 수집 호스트가 메모리 부족으로 죽었고, 쿠버네티스 CrashLoopBackOff 가 용량 회복을 막아 US1 이벤트 수집이 한 시간 넘게 불안정했다Honeycomb · 2023 · sev1같은 원인 · 공통 인메모리 캐시
https://incidentlib-mcp.benchlet.com/mcpAPI 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.