IL-0009 InfluxData · 2022-06-24 (게시일)kubernetes
InfluxDB Cloud 는 쿠버네티스 위에서 돌고, 팀은 ArgoCD 로 코드와 설정 변경을 운영에 배포한다. 평소 하루에 5건에서 15건의 변경이 나간다. ArgoCD 가 다른 ArgoCD Application 과 AppProject 정의까지 관리하는 app of apps 패턴을 쓴다. 설정 YAML 은 jsonnet 템플릿으로 만들었고, 당시에는 애플리케이션 하나의 리소스를 모두 YAML 파일 하나에 담았다. 객체 이름은 앱 이름과 클러스터 이름을 이어 붙이는 규칙을 따랐다.
자동화 오류로 새 Application 과 AppProject 가 기존 것과 같은 이름으로 만들어졌고, 렌더링된 두 리소스가 같은 YAML 파일에 들어갔다. ArgoCD 는 파일에 적힌 순서대로 객체를 적용하므로 마지막 객체가 앞의 것을 덮어썼다. ArgoCD 가 기존 app01 인스턴스를 새 것으로 바꾸는 과정에서 InfluxDB Cloud 의 핵심 워크로드가 지워졌고, 운영 환경 하나 전체가 즉시 삭제됐다.
데이터 볼륨은 reclaimPolicy: Retain 이라 StatefulSet 과 PVC 가 지워져도 PersistentVolume 과 클라우드 볼륨은 남아 있었다. 팀은 이 점을 바탕으로 복구 계획을 세웠다. 지워진 쿠버네티스 객체를 손으로 다시 만들고, 빠진 데이터는 백업에서 채우고, 상태가 없는 부분은 ArgoCD 가 다시 만들게 했다. etcd 메타데이터, Zookeeper 와 Kafka, 스토리지 엔진 순서로 복구했다. PR 머지부터 전체 기능 복구까지 6시간이 조금 안 걸렸고, 데이터는 하나도 잃지 않았다.
PR 하나를 머지한 직후 InfluxDB Cloud 운영 환경 하나가 통째로 사라졌다. 쓰기와 읽기를 비롯한 모든 API 엔드포인트가 404 오류를 냈다.
장애 동안 사용자는 데이터를 수집할 수 없었다. 예약 작업은 실행에 실패했고 외부 쿼리도 동작하지 않았다. ArgoCD 가 기존 app01 인스턴스를 새 객체로 바꾸면서 InfluxDB Cloud 의 핵심 워크로드를 지웠고, 그 클러스터에서 돌면 안 되는 워크로드를 새로 띄웠다. Zookeeper 볼륨도 함께 지워졌다.
모니터링과 경보 시스템은 이 장애를 바로 잡아내지 못했다. 팀은 머지된 PR 의 코드부터 검토했는데, ArgoCD 프로젝트 이름과 애플리케이션 이름이 충돌한 문제라 원인을 찾기 어려웠다.
팀은 먼저 변경을 되돌리기로 했다. 되돌리기를 시작했다가 거의 곧바로 멈췄다. 되돌리면 ArgoCD 가 애플리케이션 인스턴스를 새로 만들고, 새 인스턴스에는 사용자, 대시보드, 작업의 메타데이터가 없고 무엇보다 고객 데이터가 없기 때문이었다.
모니터링과 경보 시스템은 이 장애를 바로 잡아내지 못했다. 그래서 팀은 계획을 세워 복구하기 전에 먼저 변경을 되돌리려 했다. 팀이 장애를 무엇으로 알게 됐는지는 글에 나오지 않는다.
무엇보다 모니터링과 경보가 장애를 바로 잡아내지 못했다. 그 탓에 팀은 계획된 복구 대신 롤백부터 시도했다. InfluxDB Cloud 인스턴스 일부나 전체를 잃었을 때 쓸 런북도 없었다. 상태 저장 애플리케이션은 변경을 되돌린다고 원래대로 돌아오지 않고, 데이터 없는 새 인스턴스가 생길 뿐이다. 이런 PR 은 시스템이 머지를 막았어야 했다. 볼륨을 Retain 으로 둔 데다 Telegraf 처럼 쓰기를 재시도하는 클라이언트가 있어서 데이터를 하나도 잃지 않았다.
같은 원인 · 공통 설정 템플릿, Argo CD
IL-0063 Redis 스테이트풀셋을 다시 만들자 Redis 클러스터가 한꺼번에 재시작되며 일부가 망가졌고, 재연결 폭주로 백엔드가 OOM 으로 죽어 AdGuard VPN 이 약 50분 멈췄다.AdGuard VPN · 2025같은 원인 · 공통 영구 볼륨과 스테이트풀셋
IL-0192 Crossplane 컴포지션의 병합 정책 변경이 Service 타입을 ClusterIP 로 바꿔 클라우드 로드 밸런서가 지워지고 Grafana Cloud 서비스의 약 25%가 끊겼다.Grafana Labs · 2025같은 원인 · 공통 설정 템플릿
IL-0191 Loki distributor 서비스에 레이블 셀렉터가 하나 더 들어가 롤아웃 중 새 파드 몇 개에만 쓰기 트래픽이 몰렸고, 그 파드들이 OOM으로 죽으면서 로그 쓰기 경로가 약 25분간 멈췄다.Grafana Labs · 2022같은 원인 · 공통 설정 템플릿
IL-0010 편집자가 연결함https://incidentlib-mcp.benchlet.com/mcpAPI 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.