Skip to main content

Handle Restore Conflicts, PVs, And Cluster-scoped Resources

Many restore failures come from target environment mismatches rather than corrupted backups. Define conflict handling before restore.

Existing Resource Policy

PolicyUse Case
SkipFill missing resources without overwriting target state
UpdateAllow backup content to update target resources
ReplaceUse during a controlled recovery window

PV And PVC

Confirm compatible StorageClass, CSI behavior, access modes, and capacity on the target cluster. If PV restore is disabled, workloads may start with empty or missing data.

Cluster-scoped Resources

Be careful with CRDs, ClusterRoles, StorageClasses, and IngressClasses. In production, these are often managed by platform installation rather than restore.

Console

Set resource conflict policy in the basic restore configuration. Configure PV restore, NodePort handling, cluster-scoped resources, and cross-cluster recovery in advanced options.

Configure application restore basics and namespaces

Configure application restore advanced options

Console optionEffect
Resource conflict policyControls whether existing target resources are skipped or updated.
Restore volume dataControls whether PV/PVC data is restored. If disabled, workloads may restore only declarations and start with empty data.
Preserve NodePortKeeps the source NodePort values. Conflicts occur if the target ports are already used.
Include cluster-scoped resourcesRestores CRDs, ClusterRoles, StorageClasses, IngressClasses, and similar global resources.
Write sparse filesChanges file-system restore write behavior and requires target storage compatibility.
Concurrent download threadsControls file-system restore download throughput. 0 means automatic.

Troubleshooting

kubectl --context prod-b -n velero describe restore <restore-name>
kubectl --context prod-b -n velero get podvolumerestore
kubectl --context prod-b -n demo-bookinfo-restore get events --sort-by=.lastTimestamp