Belajar Velero - Scheduling & Retention
Episode 6 of 23

Belajar Velero - Scheduling & Retention

Backup manual tidak cukup untuk produksi. Episode ini membahas `velero schedule create` dengan cron expression, pengaturan `--ttl` untuk auto-expire, perbedaan mendasar schedule vs backup manual, serta strategi retention yang sesuai kebutuhan RPO.

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

Pendahuluan

Backup manual di episode 4 berguna untuk latihan, tetapi untuk produksi kalian butuh backup yang berjalan sendiri — setiap hari, setiap jam, tanpa diingatkan. Di episode 6 kita membangun kebiasaan profesional itu: jadwal otomatis dengan TTL untuk membersihkan backup lama.

Analoginya seperti kebiasaan menyimpan arsip: manual berarti "menyimpan kapan ingat" (tidak bisa diandalkan), sedangkan terjadwal berarti "arsip masuk setiap pukul 02.00, otomatis dibuang setelah 30 hari". Mana yang lebih bisa dipercaya untuk bisnis kalian?

Schedule: Backup Terjadwal

Membuat Schedule

Schedule harian pukul 02.00
velero schedule create daily \
  --schedule="0 2 * * *" \
  --include-namespaces prod \
  --ttl 720h \
  --storage-location default

Anatomi perintahnya:

  • daily — nama schedule (objek Schedule di CRD).
  • --schedule="0 2 * * *" — cron expression standar: menit, jam, hari-bulan, bulan, hari-minggu. 0 2 * * * berarti setiap hari pukul 02:00.
  • --include-namespaces prod — scope sama seperti backup manual.
  • --ttl 720h — setiap backup yang lahir dari schedule ini otomatis kedaluwarsa setelah 720 jam (30 hari).
  • --storage-location — BSL tujuan (opsional; default jika hanya satu).

Beberapa contoh yang sering dipakai:

KebutuhanCronArti
Setiap hari 02:000 2 * * *harian
Setiap jam0 * * * *per jam, RPO 1 jam
Tiap Senin 03:3030 3 * * 1mingguan
Tiap tanggal 1 04:000 4 1 * *bulanan
Schedule per jam dengan TTL pendek
velero schedule create hourly \
  --schedule="0 * * * *" \
  --include-namespaces prod \
  --ttl 48h

Mengelola Schedule

Daftar, detail, dan hapus schedule
velero schedule get
velero schedule describe daily
velero schedule delete daily --confirm

Setiap schedule membuat CRD Schedule; server yang menjalankan "pemicu" — saat waktunya tiba, ia membuat objek Backup baru dengan parameter yang sama.

TTL: Retention Otomatis

Cara Kerja TTL

Flag --ttl menentukan berapa lama sebuah backup dipertahankan. Setelah lewat, Velero otomatis menghapus backup dari object storage dan mengupdate status CRD menjadi Expired. Nilai ditulis sebagai durasi (misal 48h, 720h, 1680h).

TTL eksplisit pada backup manual
velero backup create manual-checkpoint --include-namespaces app --ttl 168h
velero backup get

TTL bukan sekadar pembersih — ini kontrol biaya dan compliance. Object storage tidak gratis: backup tanpa TTL menumpuk dan membengkakkan tagihan serta memperlambat listing backup.

Pola Retention Bertingkat

Strategi umum di produksi adalah kombinasi beberapa schedule dengan TTL berbeda:

  • Hourly: TTL 24 jam — jaring pengaman untuk perubahan cepat.
  • Daily: TTL 30 hari — pemulihan harian.
  • Weekly: TTL 1 tahun — arsip jangka menengah.
  • Monthly: TTL 3 tahun — compliance/audit.
Contoh lapisan schedule
velero schedule create hourly  --schedule="0 * * * *" --include-namespaces prod --ttl 24h
velero schedule create daily   --schedule="0 2 * * *" --include-namespaces prod --ttl 720h
velero schedule create weekly  --schedule="30 2 * * 0" --include-namespaces prod --ttl 8760h

Note

TTL adalah retention, bukan immutability. Backup yang sudah TTL bisa dihapus lebih awal secara manual (velero backup delete). Untuk backup yang benar-benar tidak boleh hilang (wajib disimpan karena compliance), gunakan object lock di level bucket — kita bahas di episode 15.

Schedule vs Backup Manual

Pahami perbedaan mendasarnya:

  • Backup manual: sekali jalan, objek Backup langsung dibuat. Dipakai untuk momen spesifik (sebelum upgrade cluster, migrasi, eksperimen berisiko).
  • Schedule: template permanen. Server membuat Backup baru setiap cron menembak, dengan parameter dan TTL yang sama.

Bukan "yang satu lebih baik" — keduanya saling melengkapi: schedule untuk rutinitas, manual untuk titik waktu tertentu (checkpoint sebelum migrasi di episode 11).

Penutup

Inti yang harus dibawa pulang:

  • velero schedule create + cron expression membuat backup otomatis; --ttl mengatur auto-expire.
  • TTL mengontrol biaya dan rotasi: 48h, 720h (30 hari), 8760h (1 tahun).
  • Pola retention bertingkat: hourly TTL pendek, daily/weekly/monthly TTL panjang.
  • TTL ≠ immutability — untuk wajib simpan, gunakan object lock (episode 15).
  • Schedule untuk rutinitas, backup manual untuk checkpoint titik-waktu.

Di episode 7 selanjutnya kita akan memperhalus kontrol backup: label, selector, dan annotations — memilih resource berdasarkan label, menandai include/exclude lewat annotation velero.io, serta mengatur --snapshot-volumes dan hooks pre/post.