Files
obsidian/infra/k3s-backup.md

2.0 KiB

title, updated, tags
title updated tags
K3s 백업 파이프라인 2026-03-16
infra
backup
k3s
r2
synology

아키텍처

K3s PVC → NFS → Synology NAS (/volume1/k3s-backup/) → Cloudflare R2 (k3s-backup)

K3s → NAS (NFS)

NFS PV/PVC

네임스페이스 PVC 이름 NFS 경로 비고
gitea gitea-backup-nfs /volume1/k3s-backup/gitea gitea dump
  • NFS 서버: 192.168.9.100 (Synology NAS)
  • PV reclaim policy: Retain

CronJob

네임스페이스 CronJob 스케줄 내용
gitea gitea-backup 0 3 * * * (UTC) gitea dump → NFS

NAS → R2 (Synology systemd timer)

Synology 구성

  • rclone 설정: /volume1/docker/rclone/rclone.conf
  • rclone 실행: Docker 컨테이너 (rclone/rclone:latest)
  • systemd service: r2-backup.service
  • systemd timer: r2-backup.timer — 매일 05:00 KST (±5분 jitter)

R2 버킷

  • 버킷명: k3s-backup
  • 엔드포인트: https://d8e5997eb4040f8b489f09095c0f623c.r2.cloudflarestorage.com
  • 크레덴셜: vault secret/cloud/cloudflare/r2

관리 명령 (Synology SSH)

# 수동 sync
sudo systemctl start r2-backup.service

# 상태 확인
sudo systemctl status r2-backup.timer
sudo systemctl list-timers r2-backup.timer

# 로그
sudo journalctl -u r2-backup.service

# R2 내용 확인
sudo /usr/local/bin/docker run --rm \
  -v /volume1/docker/rclone:/config:ro \
  rclone/rclone:latest \
  --config /config/rclone.conf \
  ls r2:k3s-backup/

보존 정책

  • NAS: 수동 관리 (디스크 여유에 따라)
  • R2: lifecycle rule 설정 필요 (Cloudflare 대시보드에서 30일 만료 설정)

TODO

  • R2 lifecycle rule 설정 (대시보드에서 30일 만료)
  • vault, openmemory, anvil, ironclad 등 추가 서비스 NFS 백업 CronJob 구성
  • postgres 백업 CronJob NFS 경로 /volume1/k3s-backup/postgres로 변경