Documentation

Disaster recovery

Using Schedules and Read-Only Backup Storage Locations

If you periodically back up your cluster’s resources, you are able to return to a previous state in case of some unexpected mishap, such as a service outage. Doing so with Velero looks like the following:

  1. After you first run the Velero server on your cluster, set up a daily backup (replacing <SCHEDULE NAME> in the command as desired):

    velero schedule create <SCHEDULE NAME> --schedule "0 7 * * *"
    

    This creates a Backup object with the name <SCHEDULE NAME>-<TIMESTAMP>. The default backup retention period, expressed as TTL (time to live), is 30 days (720 hours); you can use the --ttl <DURATION> flag to change this as necessary. See how velero works for more information about backup expiry.

  2. A disaster happens and you need to recreate your resources.

  3. Update your backup storage location to read-only mode (this prevents backup objects from being created or deleted in the backup storage location during the restore process):

    kubectl patch backupstoragelocation <STORAGE LOCATION NAME> \
        --namespace velero \
        --type merge \
        --patch '{"spec":{"accessMode":"ReadOnly"}}'
    
  4. Create a restore with your most recent Velero Backup:

    velero restore create --from-backup <SCHEDULE NAME>-<TIMESTAMP>
    
  5. When ready, revert your backup storage location to read-write mode:

    kubectl patch backupstoragelocation <STORAGE LOCATION NAME> \
       --namespace velero \
       --type merge \
       --patch '{"spec":{"accessMode":"ReadWrite"}}'
    
Getting Started

To help you get started, see the documentation.