Backup and Restore Cluster Resources using KubeStash
This guide will show you how KubeStash backs up and restores manifests of cluster resources.
Before You Begin
- You should be familiar with the following
KubeStashconcepts:
How Backup Process Works
The following diagram shows how KubeStash takes backup of the manifests of cluster resources. Open the image in a new tab to see the enlarged version.
The backup process consists of the following steps:
At first, a user creates a
Secret. This secret holds the credentials to access the backend where the backed up data will be stored.Then, she creates a
BackupStoragecustom resource that specifies the backend information, along with theSecretcontaining the credentials needed to access the backend.KubeStash operator watches for
BackupStoragecustom resources. When it finds aBackupStorageobject, it initializes theBackupStorageby uploading themetadata.yamlfile into the target storage.Then, she creates a
BackupConfigurationcustom resource that specifies the targeted workload, the Addon info with a specified task, etc. It also provides information about one or more repositories, each indicating a path and aBackupStoragefor storing the backed-up data.KubeStash operator watches for
BackupConfigurationobjects.Once the KubeStash operator finds a
BackupConfigurationobject, it createsRepositorywith the information specified in theBackupConfiguration. For targeting backup cluster resources, the params section under theaddon.tasksprovides multiple filtering options.KubeStash operator watches for
Repositorycustom resources. When it finds theRepositoryobject, it InitializesRepositoryby uploadingrepository.yamlfile into thespec.sessions[*].repositories[*].directorypath specified inBackupConfiguration.Then, it creates a
CronJobfor each session with the schedule specified inBackupConfigurationto trigger backup periodically.On the next scheduled slot, the
CronJobtriggers a backup by creating aBackupSessioncustom resource.KubeStash operator watches for
BackupSessioncustom resources.When it finds a
BackupSessionobject, it creates aSnapshotcustom resource for eachRepositoryspecified in theBackupConfiguration.Then it resolves the respective
AddonandFunctionand prepares backupJob(s) definition.The backup
Job(s) collect and store the cluster resource’s manifests.After the backup process is completed, the backup
Job(s) updates thestatus.components[*]field of theSnapshotresources with backup information of the target manifest components.
How Restore Process Works
The following diagram shows how KubeStash restores cluster resources from backed up manifests. Open the image in a new tab to see the enlarged version.
The restore process consists of the following steps:
At first, user creates a
RestoreSessioncustom resource that specifies the target workload volume(s) where the backed-up data will be restored, theRepositoryobject that points to aBackupStoragethat holds backend information, and the targetSnapshot, which will be restored. It also specifies theAddoninfo with task to use to restore the volume.KubeStash operator watches for
RestoreSessioncustom resources.When it finds a
RestoreSessioncustom resource, it resolves the respectiveAddonandFunctionand prepares a restoreJob(s) definition.The restore
Job(s) apply the backed-up manifests to recreate the cluster resources.Finally, when the restore process is completed, the
Job(s) updates thestatus.components[*]field of theRestoreSessionwith restore information of the target manifest components.






