backup: add k8s VolumeSnapshot API (snapshot-controller v8.5.0) as Velero prereq; fix democratic-csi restart loop

This commit is contained in:
kaffa
2026-04-20 09:06:48 +09:00
parent 7d58e159af
commit a2884a60d8
2 changed files with 134 additions and 1 deletions

View File

@@ -1,9 +1,24 @@
---
title: 백업 파이프라인
updated: 2026-04-15
updated: 2026-04-20
tags: [infra, backup]
---
## K8s 표준 VolumeSnapshot API
snapshot-controller + `snapshot.storage.k8s.io/v1` CRDs 설치됨 (2026-04-20). 향후 Velero 같은 표준 백업 도구 도입의 전제 조건.
| 항목 | 값 |
|------|-----|
| snapshot-controller | v8.5.0, Deployment (kube-system, replicas=2) |
| CRDs | VolumeSnapshot, VolumeSnapshotContent, VolumeSnapshotClass |
| VolumeSnapshotClass | `longhorn-snapshot` (driver=driver.longhorn.io, type=snap) |
| Velero 기본 클래스 라벨 | `velero.io/csi-volumesnapshot-class=true` (longhorn-snapshot에 부여) |
현재 `longhorn-snapshot` 클래스는 `type: snap`(Longhorn 내부 스냅샷, 빠름). Velero가 오브젝트 스토리지에 메타/매니페스트를 백업하고 데이터는 VolumeSnapshot으로 관리. 별도의 `type: bak` 클래스(R2 영속) 추가는 Velero 도입 시점에 재검토.
배경: democratic-csi의 external-snapshotter sidecar가 이 CRD를 watch하려다 404/EOF로 주기 재시작했음. 이번 설치로 원인 해소 + Velero 선결 조건 동시 달성. 이력: [[2026-04-20-snapshot-controller-velero-prep|history]]
## Longhorn PVC 백업 (K3s)
BackupTarget `default` → R2 버킷 `longhorn-backup` (시크릿 `longhorn-backup-r2`). RecurringJob 4종 (critical-snapshot 매시 UTC, critical-backup 6h UTC, standard-snapshot `0 18 * * *` UTC = KST 03:00, standard-backup `0 19 * * *` UTC = KST 04:00).