Perform a manual backup
What you’ll accomplish
Section titled “What you’ll accomplish”You’ll verify your scheduled backups are running and trigger a manual backup on demand.
Prerequisites
Section titled “Prerequisites”- UDS CLI installed
- Access to a Kubernetes cluster with UDS Core deployed
- Velero storage backend configured (see Configure Velero storage backends)
Before you begin
Section titled “Before you begin”UDS Core runs a daily backup at 03:00 UTC by default (schedule name: velero-udsbackup). Backups exclude the kube-system and velero namespaces and include cluster-scoped resources.
-
Verify scheduled backups are running
List recent backups:
Terminal window uds zarf tools kubectl get backup -n velero --sort-by=.status.startTimestampCheck the status of the most recent backup:
Terminal window uds zarf tools kubectl get backup -n velero <backup-name> -o jsonpath='{.status.phase}'The expected status is
Completed. If no backups exist yet, the schedule may not have triggered — proceed to step 2 to create a manual backup. -
Trigger a manual backup
Create a backup that mirrors the default schedule configuration:
Terminal window uds zarf tools kubectl apply -f - <<EOFapiVersion: velero.io/v1kind: Backupmetadata:name: manual-backup-$(date +%s)namespace: velerospec:csiSnapshotTimeout: 0sexcludedNamespaces:- kube-system- veleroincludeClusterResources: truesnapshotVolumes: falsettl: 240h0m0sEOFAlternatively, if you have the Velero CLI installed:
Terminal window velero backup create --from-schedule velero-udsbackup -n velero -
Wait for the backup to complete
Monitor the backup status:
Terminal window uds zarf tools kubectl get backup -n velero <backup-name> -wOnce the phase shows
Completed, the backup is ready for use.If volume snapshots are enabled, verify the snapshot count matches your PVC count. The check differs by provider:
CSI-based snapshots (vSphere):
Terminal window uds zarf tools kubectl get volumesnapshot -ANative AWS EBS plugin:
Terminal window uds zarf tools kubectl get backup -n velero <backup-name> -o jsonpath='{.status.volumeSnapshotsCompleted}'
Verification
Section titled “Verification”Success criteria:
- Backup phase is
Completedwith no errors - If using the native AWS EBS plugin,
volumeSnapshotsCompletedmatches the number of PVCs in backed-up namespaces - If using CSI-based snapshots (vSphere), VolumeSnapshot resources exist for each PVC in backed-up namespaces
To restore from a completed backup, see Restore from a backup.
Troubleshooting
Section titled “Troubleshooting”Problem: Backup stuck in “InProgress”
Section titled “Problem: Backup stuck in “InProgress””Symptoms: The backup phase remains InProgress indefinitely.
Solution: Check Velero logs for errors:
uds zarf tools kubectl logs -n velero deploy/velero --tail=50Common causes include storage connectivity issues and volume snapshot timeouts. If volume snapshots are timing out, check the CSI driver logs and snapshot limit configuration.
Problem: Hitting snapshot limits after many backups
Section titled “Problem: Hitting snapshot limits after many backups”Symptoms: Backups begin failing after running for several days, with errors about reaching the configured snapshot maximum.
Solution: Velero’s garbage collection runs hourly and removes expired backups based on TTL. Ensure your snapshot limit is high enough to accommodate the number of retained backups. For the default 10-day retention with daily backups, a minimum of 10 snapshots per volume is required (12 recommended). For vSphere environments, see Enable volume snapshots (vSphere CSI) for snapshot limit configuration.
Related documentation
Section titled “Related documentation”- Velero: Backup Reference — backup configuration options and API
- Velero: How Velero Works — backup lifecycle and garbage collection
- Backup & restore concepts — how Velero fits into UDS Core
Next steps
Section titled “Next steps”These guides and concepts may be useful to explore next: