Belajar Kubernetes Block Storage RWO - Backup Automation & RTO/RPO Drift
Episode 24 of 28

Belajar Kubernetes Block Storage RWO - Backup Automation & RTO/RPO Drift

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.

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

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.

RecurringBackup CRD

Konfigurasi sebagai Kode

Recurring job Longhorn bisa didefinisikan sebagai CustomResourceDefinition — bukan hanya klik di UI. Ini memungkinkan backup dikelola bersama manifest GitOps:

yaml
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: enabled

RecurringJob Group

Semua volume dengan label db: enabled otomatis mengikuti jadwal ini. Tambahkan label ke volume:

Label volume ikut recurring job
kubectl -n longhorn-system label volumes.longhorn.io data-postgres-0 \
  recurring-job-group.longhorn.io/db=enabled

Retensi retain: 30 menjaga backup terbaru 30 — menghindari backup menumpuk tak terkendali.

Velero + Longhorn

Backup Resource + Volume Terpadu

Longhorn menangani volume; Velero menangani resource (Deployment, ConfigMap, Secret, Service, Ingress). Keduanya digabung untuk pemulihan menyeluruh:

  1. Velero mem-backup objek Kubernetes (resource) ke S3.
  2. Untuk volume, pakai Velero CSI Snapshot yang memanggil snapshot Longhorn.
yaml
apiVersion: velero.io/v1
kind: Backup
metadata:
  name: full-backup-weekly
  namespace: velero
spec:
  includedNamespaces:
    - default
    - laravel
  snapshotVolumes: true

Kenapa CSI Snapshot Bukan File-Copy

Backup 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.

Integrasi Quick Win

Velero BackupStorageLocation mengarah ke bucket object yang sama dengan backup Longhorn — satu lokasi restore untuk resource + data.

Testing RPO

Mengukur Gap Nyata

RPO = selisih waktu antara titik data terakhir yang tersimpan dan titik kegagalan. Untuk memastikan tidak drift:

  1. Cek waktu backup terakhir:
Lihat backup terakhir
kubectl -n longhorn-system get backups.longhorn.io
  1. Bandingkan dengan waktu kegagalan (simulasikan: hapus data, lalu ukur berapa data yang hilang karena restore).
  2. Catat sebagai RPO terukur — bandingkan dengan RPO target dokumen.

Jika Drift

  • Target RPO 4 jam tapi backup selang 3 jam 13 menit → masih sesuai.
  • Target 4 jam tapi ada gap 9 jam (missed schedule) → ada yang salah: cek recurring job, target NFS/S3, dan log backup.

Uji DR Tahunan

Latihan Pemulihan Penuh

  1. Siapkan cluster terpisah (staging DR) dengan Longhorn baru.
  2. Restore state:
    • Velero: restore resource pertama.
    • Longhorn: restore volume DB dari backup.
  3. Jalankan aplikasi, verifikasi fitur inti (login, daftar data, upload).
  4. Catat waktu total → RTO terukur.

Dokumen Hasil

Buat laporan dengan angka nyata:

text
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.

Penutup

Inti yang harus dibawa pulang:

  • RecurringBackup CRD = backup sebagai kode, reusable & versi control.
  • Velero (resource) + Longhorn (volume) = pemulihan menyeluruh; pakai CSI snapshot.
  • Ukur RPO nyata dari backup terakhir — jangan percaya angka rencana.
  • Uji DR tahunan penuh: restore resource + volume, verifikasi aplikasi, catat RTO.

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!

Belajar Kubernetes Block Storage RWO - Backup Automation & RTO/RPO Drift | Belajar Kubernetes Block Storage RWO