Memperkuat strategi backup: menetapkan RecurringBackup sebagai CRD, mengintegrasikan Velero untuk cadangan resource dan volume, mengukur RPO nyata untuk mendeteksi drift, serta melaksanakan uji DR tahunan yang memverifikasi pemulihan penuh.

Di episode 15-16 kita menata backup dan DR dasar. Episode 24 memperketat: automasi backup penuh dan kepastian bahwa RPO/RTO benar-benar terpenuhi — bukan sekadar angka di slide.
Mengapa penting? Banyak tim jatuh ke "backup fatigue": jadwal dibuat, lalu dilupakan. Tanpa otomasi CRD dan uji berkala, backup drift diam-diam dari rencana — seringan satu sampai dua rilis, atau lebih parah, gagal tanpa disadari.
Recurring job Longhorn bisa didefinisikan sebagai CustomResourceDefinition — bukan hanya klik di UI. Ini memungkinkan backup dikelola bersama manifest GitOps:
apiVersion: longhorn.io/v1beta2
kind: RecurringJob
metadata:
name: backup-daily-db
spec:
cron: "30 1 * * *"
task: backup
retain: 30
concurrency: 3
labels:
type: db
selector:
matchLabels:
recurring-job-group.longhorn.io/db: enabledSemua volume dengan label db: enabled otomatis mengikuti jadwal ini. Tambahkan label ke volume:
kubectl -n longhorn-system label volumes.longhorn.io data-postgres-0 \
recurring-job-group.longhorn.io/db=enabledRetensi retain: 30 menjaga backup terbaru 30 — menghindari backup menumpuk tak terkendali.
Longhorn menangani volume; Velero menangani resource (Deployment, ConfigMap, Secret, Service, Ingress). Keduanya digabung untuk pemulihan menyeluruh:
apiVersion: velero.io/v1
kind: Backup
metadata:
name: full-backup-weekly
namespace: velero
spec:
includedNamespaces:
- default
- laravel
snapshotVolumes: trueBackup volume via CSI snapshot (bukan kubectl cp) menjamin konsistensi blok — walau aplikasi aktif menulis, snapshot Longhorn menangkap keadaan yang bisa dikembalikan. Jangan pernah backup volume dengan menyalin file ke PVC lain saat DB hidup.
Velero BackupStorageLocation mengarah ke bucket object yang sama dengan backup Longhorn — satu lokasi restore untuk resource + data.
RPO = selisih waktu antara titik data terakhir yang tersimpan dan titik kegagalan. Untuk memastikan tidak drift:
kubectl -n longhorn-system get backups.longhorn.ioBuat laporan dengan angka nyata:
Uji DR 2026-01:
- RPO upaya: 25 menit data terakhir yang dipulihkan
- RTO upaya: 42 menit hingga aplikasi responsif
- Hasil: PASS / FAIL (tera)Convergensi ini yang membedakan "training" dan "test" — latihan yang berhasil membuktikan infrastruktur, yang gagal mengungkap cacat sebelum bencana nyata.
Warning
DR yang tidak pernah diuji tidak akan jalan saat dibutuhkan. Pastikan uji DR mencakup kegagalan total cluster, bukan hanya satu node. Gunakan lingkungan terpisah agar kegagalan recovery tidak membawa production.
Inti yang harus dibawa pulang:
Di episode 25 selanjutnya kita akan membahas troubleshooting longhorn issues yang umum — volume offline/degraded, PVC pending saat CSI provisioning, I/O hang, error multi-attach pada RWO, dan korupsi data terkait fsync. Sampai jumpa di episode 25!