Episode ini memandu backup pertama dengan `velero backup create`, membaca detail backup lewat `velero backup describe`, dan memahami isi sebuah backup: manifest resource plus data volume. Kalian juga belajar mengontrol scope backup dengan `--include-resources` dan `--exclude-resources`.

Velero sudah terinstall dan BSL berstatus Available di episode 3. Sekarang momen yang ditunggu: backup pertama. Jangan langsung backup seluruh cluster — mulai dari satu namespace yang berisi workload sederhana, misalnya aplikasi nginx dengan satu PVC.
Di episode ini kalian akan mengerti apa sebenarnya yang dihasilkan sebuah backup: bukan sekadar "salinan file", melainkan dua lapis data — manifest resource dan isi volume — yang dikemas dan diunggah ke object storage.
Buat namespace app dengan Deployment nginx dan PVC yang menulis file:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: app-data
namespace: app
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
namespace: app
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
volumeMounts:
- mountPath: /usr/share/nginx/html
name: data
volumes:
- name: data
persistentVolumeClaim:
claimName: app-datakubectl apply -f workload.yaml
kubectl exec -n app deploy/nginx -- sh -c 'echo "hello velero" > /usr/share/nginx/html/index.html'velero backup create my-backup --include-namespaces appPerintah ini membuat objek Backup di cluster; server Velero langsung bekerja mengambil seluruh resource di namespace app, termasuk PVC — dan (karena kita install dengan --default-volumes-to-fs-backup) meng-backup isi volume lewat node-agent.
velero backup getStatus akan berubah New → InProgress → Completed. Completed berarti sukses; status lain (PartiallyFailed, Failed) kita bedah di episode 16.
velero backup describe my-backup --detailsPerhatikan bagian-bagian penting outputnya: scope (namespace apa saja), jumlah resource yang disimpan, dan daftar volume yang di-backup dengan status sukses. --details menampilkan juga daftar lengkap resource per jenis — berguna untuk memverifikasi bahwa yang kalian kira masuk ternyata benar-benar masuk.
Velero mengambil setiap resource dalam scope backup dan menyimpannya sebagai JSON di object storage — persis seperti kubectl get <resource> -o json untuk semua resource yang dipilih. Ini mencakup Deployment, PVC, ConfigMap, Secret, Service, dan lain-lain. Untuk resource yang dibuat aplikasi sendiri (misal CRD dari operator), CRD-nya ikut disertakan secara otomatis selama ada di scope.
Lapisan kedua adalah isi persistent volume. Di instalasi episode 3, ini ditangani node-agent + kopia: data di-copy file-per-file ke BSL. Di cluster cloud dengan VSL, Velero membuat snapshot block-level (EBS/PD/Disk) yang jauh lebih cepat. Detail perbandingan keduanya ada di episode 8; yang penting di sini — keduanya tersimpan lewat BSL yang sama, sehingga backup tetap portable.
mc ls local/velero/backups/my-backup/Struktur folder: velero-backup.json (metadata), resources/ (manifest), dan kopia/ (repositori data volume).
Tidak semua resource perlu dibackup. Resource yang bersifat ephemeral dan dibuat ulang otomatis (misal Pod, ReplicaSet) justru memboroskan ruang dan memperlambat restore.
velero backup create web-backup \
--include-namespaces app \
--include-resources deployment,statefulset,configmap,secret,pvc,serviceKebalikannya, kecualikan resource yang tidak perlu:
velero backup create no-events-backup \
--include-namespaces app \
--exclude-resources events,events.events.k8s.ioResource yang dikecualikan saat restore akan dibuat ulang dari dependensinya — misalnya Pod yang tidak dibackup tetap ter-create karena Deployment-nya dibackup.
Tip
Prinsip scope: backup apa yang "mendefinisikan" aplikasi, bukan apa yang "menjalankan" aplikasi. Manifest sumber (Deployment, ConfigMap, Secret, PVC) wajib; artefak runtime (Pod, ReplicaSet, Event) biasanya tidak. Ini membuat backup kecil, cepat, dan restore-nya bersih.
Jika cluster punya banyak BSL, pilih lokasi penyimpanan:
velero backup create archived-backup \
--include-namespaces app \
--storage-location backups-archiveInti yang harus dibawa pulang:
velero backup create my-backup --include-namespaces app; sukses bila status Completed.velero backup describe --details memperlihatkan scope dan volume yang dibackup.--include-resources/--exclude-resources mengontrol jenis resource; hindari membackup artefak runtime.Di episode 5 selanjutnya kita membahas arah sebaliknya: restore — memulihkan aplikasi dari backup, termasuk restore selektif per resource dan namespace, serta --namespace-mappings untuk mengembalikan data ke namespace berbeda.