Belajar Velero - Restore & Selective Restore
Episode 5 of 23

Belajar Velero - Restore & Selective Restore

Backup tanpa restore hanyalah penyimpanan data. Episode ini mengajarkan restore penuh dari backup, restore ke namespace berbeda lewat `--namespace-mappings`, serta restore selektif dengan `--include-resources`, `--include-namespaces`, dan `--selector`.

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

Pendahuluan

Di episode 4 kalian membuat backup pertama dan tahu persis isinya. Sekarang kita uji nilai sebenarnya: restore. Rule emas yang harus dipegang sejak sekarang: sebuah backup baru bisa dianggap sukses setelah di-restore dan diverifikasi. Jangan pernah menunda uji restore sampai bencana benar-benar terjadi — itu pelajaran yang diulang terus sepanjang seri ini.

Bayangkan backup adalah foto keluarga di cloud, dan restore adalah mencetak ulang foto itu. Foto boleh disimpan bagus-bagus, tapi kalau hasil cetaknya buram (atau gagal total), percuma. Episode ini memastikan kalian bisa mencetak ulang dengan kualitas penuh — bahkan dengan sedikit modifikasi.

Restore Penuh

Menghapus Aplikasi Terlebih Dahulu

Untuk simulasi pemulihan yang jujur, hancurkan dulu apa yang sudah ada:

Simulasi aplikasi hilang
kubectl delete ns app
kubectl get ns app

Namespace hilang — seluruh resource berikut PVC dan datanya ikut terhapus. Sekarang restore:

Restore penuh dari backup
velero restore create --from-backup my-backup
velero restore get

Saat status restore Completed, verifikasi:

Verifikasi hasil restore
kubectl get deploy,pvc -n app
kubectl exec -n app deploy/nginx -- cat /usr/share/nginx/html/index.html

index.html berisi hello velero — artinya manifest DAN data volume pulih. Ini momen penting: jika hanya manifest yang kembali (data kosong), berarti lapisan volume backup-nya yang bermasalah.

Mengapa restore tidak persis "copy-paste"

Velero tidak menyalin resource mentah. Ia melakukan transformasi agar hasilnya valid: menghapus field yang hanya relevan saat runtime (seperti status), memperbarui referensi UID/owner, dan mengisi ulang clusterIP service. Ini sebabnya restore menghasilkan aplikasi yang berfungsi, bukan sekadar YAML yang sama persis.

Restore ke Namespace Berbeda

Kasus paling umum: memulihkan data prod ke staging untuk pengujian, tanpa menyentuh prod. Gunakan namespace mapping:

Restore prod ke staging
velero restore create --from-backup my-backup \
  --namespace-mappings app:app-staging

Semua resource yang semula di namespace app kini dibuat di app-staging, termasuk PVC — Velero membuat PVC baru dengan nama yang sama di namespace target dan memulihkan datanya.

Verifikasi namespace mapping
kubectl get deploy,pvc -n app-staging

Warning

PVC itu bound ke satu namespace. Jika app-staging sudah punya PVC bernama app-data (misal dari restore sebelumnya), restore akan gagal dengan konflik nama. Hapus PVC lama dulu, atau gunakan --existing-resource-policy update dengan hati-hati. Detailnya di episode 10.

Restore Selektif

Berdasarkan Resource

Tidak selalu perlu memulihkan semuanya. Misal hanya ConfigMap yang terlanjur terhapus:

Restore hanya ConfigMap dan Secret
velero restore create restore-cfg --from-backup my-backup \
  --include-resources configmap,secret

Berdasarkan Namespace

Restore hanya satu namespace
velero restore create restore-partial --from-backup my-backup \
  --include-namespaces app

Berdasarkan Label Selector

Restore hanya resource yang punya label tertentu:

Restore berdasarkan label
velero restore create restore-frontend --from-backup my-backup \
  --selector app=nginx

Kombinasi ketiganya bisa dipakai bersamaan, misalnya "restore Deployment dan ConfigMap yang berlabel app=nginx, hanya dari namespace app".

Log dan Verifikasi Restore

Restore yang berstatus Completed tidak menjamin semua resource sukses. Selalu periksa log:

Detail dan log restore
velero restore describe restore-frontend --details
velero restore logs restore-frontend

Log menampilkan resource apa yang direstore, diubah, atau dilewati — plus alasan (misal "already exists" atau "storage class not found").

Tip

Jadikan "restore drill" bagian dari alur kerja: backup → restore ke namespace staging → verifikasi data → hancurkan staging. Dengan siklus singkat ini, kalian melatih otot DR setiap hari, bukan hanya saat krisis.

Penutup

Inti yang harus dibawa pulang:

  • Restore penuh: velero restore create --from-backup <nama>; verifikasi manifest + data volume.
  • Restore bukan copy-paste mentah — Velero memodifikasi resource agar valid dan berfungsi.
  • --namespace-mappings prod:staging memulihkan ke namespace berbeda untuk testing/DR.
  • Restore selektif lewat --include-resources, --include-namespaces, dan --selector.
  • Selalu baca velero restore describe --details dan velero restore logs setelah restore.

Di episode 6 selanjutnya kita akan membuat backup otomatis dan terjadwal: velero schedule create dengan cron expression, pengaturan TTL untuk auto-expire, serta perbedaan mendasar schedule vs backup manual.

Belajar Velero - Restore & Selective Restore | Belajar Velero