Files
obsidian/history/2026-04-15-longhorn-label-typo.md
kappa 703d5609ec Longhorn recurring-job 라벨 키 오타 정정 + 인시던트 기록
- infra/k3s-backup.md: recurringjob-group → recurring-job-group (대시 포함). silent failure 주의 callout 추가
- history/2026-04-15-longhorn-label-typo.md: 18볼륨 백업 미동작 인시던트 기록
2026-04-15 08:32:13 +09:00

46 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Longhorn 백업 라벨 키 오타로 18볼륨 백업 전면 미동작
date: 2026-04-15
tags: [history, incident, longhorn, backup, k3s]
---
## 사건 요약
2026-04-14 Longhorn 볼륨 백업 파이프라인 신규 구축. RecurringJob 4종(critical/standard × snapshot/backup) 등록 후 정상 동작으로 판단하여 종료. 다음 날(04-15) 정기 점검에서 K8s CronJob은 발화되지만 매번 "Found 0 volumes"로 noop 종료, R2 `longhorn-backup` 버킷에 e2e 테스트 99KB만 존재함을 확인.
## 근본 원인
볼륨에 부착한 라벨 키 오타.
- **정**: `recurring-job-group.longhorn.io/<group>` (대시 포함, 컨트롤러 셀렉터)
- **오**: `recurringjob-group.longhorn.io/<group>` (대시 없음, 18볼륨에 부착됨)
RecurringJob 컨트롤러는 셀렉터 매칭 실패 시 에러나 경고 없이 "Found 0 volumes"로 조용히 Complete 처리하므로 K8s CronJob 상태만 보면 정상으로 보임. R2 객체 증가 부재나 BackupVolume CR 부재로만 감지 가능.
오타가 어디서 들어왔는지(ops-agents-tofu / Helm values / ArgoCD manifest)는 헤임달이 추적 중. Obsidian `infra/k3s-backup.md` 문서에도 동일 오타로 적혀 있어 향후 신규 볼륨 분류 시 재발 위험이 있었음 → 04-15 수정 완료.
## 영향
- 2026-04-14 04:27 UTC ~ 2026-04-15 라벨 수정 시각까지 production 18볼륨 정기 백업·스냅샷 0건
- R2 longhorn-backup 버킷 사용량: e2e 테스트 잔존물 99KB (production 0)
- 데이터 손실은 발생하지 않음 (앱 레벨 dump 백업은 정상 동작 — Gitea pg_dump 등)
## 조치
1. 헤임달이 18볼륨 라벨 재부착 (`recurringjob-group...` 제거 → `recurring-job-group...=enabled`)
2. critical-snapshot 다음 hourly 발화에서 "Found 13 volumes" 로그 확인
3. critical-backup 6h 경계에서 BackupVolume CR 생성 + R2 객체 증가 확인
4. 오타 소스 (Tofu/Helm/ArgoCD) 추적 및 소스 단계에서 수정 (헤임달)
5. Obsidian `infra/k3s-backup.md` 라벨 키 정정 + warning callout 추가 (이 문서)
## 교훈
- **초기 구축 후 최소 1주기 경과 후 실 작동 검증 필수.** 등록 직후 BackupTarget AVAILABLE/RecurringJob 등록 확인만으로는 부족 — recurring 컨트롤러가 실제로 매칭한 볼륨 수와 BackupVolume CR 생성 여부를 확인해야 함.
- **Longhorn recurring 라벨 오류는 silent failure.** 모니터링 알림에 "최근 24h backups CR 0건" 또는 "BackupVolume 마지막 시각 > N시간" 임계값을 추가할 필요.
- **공식 키와 문서 키 일치 검증.** Longhorn 공식 문서의 라벨 키와 운영 문서/Tofu 코드를 cross-check.
## 관련 문서
- 운영 문서: `infra/k3s-backup.md`
- 점검 리포트: Outline `Longhorn 백업 상태 점검 — 2026-04-15` (id `7549c8ac-eebc-4cf4-8d1d-2a5e34c27c2f`)