Cluster Backup, Restore & Upgrade Procedures¶
Backup Procedures¶
-
Relational Database Backup (PostgreSQL):
-
SurrealDB Graph Lineage Export:
-
Kubernetes Velero Cluster Backup: If Velero is installed, snapshot all PVs and manifests across the namespace:
Restore Procedure¶
# 1. Restore PostgreSQL
kubectl cp ./vda_k8s_backup.dump vda/postgresql-0:/tmp/vda_k8s.dump
kubectl exec -it statefulset/postgresql -n vda -- \
pg_restore -U vda -d vda --clean --if-exists /tmp/vda_k8s.dump
# 2. Restore SurrealDB Graph Lineage
kubectl cp ./surreal_lineage_backup.surql vda/surrealdb-0:/data/backup.surql
kubectl exec -it statefulset/surrealdb -n vda -- \
surreal import --conn http://localhost:8000 --user root --pass "$SURREAL_PASS" --ns vda --db vda /data/backup.surql
Zero-Downtime Rolling Upgrade Workflow¶
- Pre-Upgrade Backup: Execute the database backups listed above.
- Run Database Migrations Job: Execute schema migrations via a one-off Kubernetes Job before rolling out new application images:
- Perform Rolling Deployment Update:
Update container image tags in
k8s/apps/:kubectl set image deployment/metadata-api metadata-api=registry.corp.internal/vda/vda-metadata:v2.2.0 -n vda kubectl set image deployment/vda-server server=registry.corp.internal/vda/vda-server:v2.2.0 -n vda kubectl set image deployment/vda-ui client=registry.corp.internal/vda/vda-client:v2.2.0 -n vda - Monitor Rolling Update: