Kasten K10 Demo: Kubernetes-Native Backup and Recovery

Transcription is available below video player.

This video shows how Kasten’s K10 data management platform can be used to backup and restore a complex cloud native application.

We begin by using the online boutique application where we add items to our shopping cart. As we select more items for purchase, this micro service-based application will store the contents of our cart in a database, that, in turn, is backed by a persistent volume being managed by Kubernetes. Notice that, at this point, we have added items worth slightly less than two hundred dollars to our cart.

Let’s now go over to the K10 dashboard that shows all the applications we have automatically and transparently discovered in the Kubernetes cluster. When we examine the online store application, we can see the data volumes in use, its container workloads, and all other Kubernetes resources and configuration, such as services. 

We will now create a policy to protect the state of this application and our in-progress shopping cart. The policy has an auto-populated name. We select our desired capture action, how often we want to perform the application snapshot -- in this case, twice an hour, and how many application snapshots we want to retain. To protect against catastrophic failure, we will also store backups in an object storage system we had configured earlier. We will retain each snapshot in the object store with the same retention scheme as snapshots.

Next, we have the option of either selecting the application by name, or we could have also chosen labels that allow us to create ‘wild card’ or multi-application policies. For this demo, we will only capture the online store application. At this point, we could have also chosen to filter resources, either in or out of this backup. Resource filters, a very powerful construct, can be applied using any combination of Kubernetes API groups, versions, resources, names, or even labels. However, in this case, we will not be applying any filters, but will be protecting the entire application. 

Once the policy is created, it is validated by K10 and then displayed on the dashboard. All of these actions are API-driven under the hood, and, as you will notice, there are breadcrumbs throughout the dashboard that demonstrate how to perform the same actions from the command line. In fact, as can be seen, the policy itself is a custom resource definition, a Kubernetes-native object that makes it very easy to manipulate or apply RBAC rules to.

We will now invoke the policy to run once before its scheduled time. Once the policy run is started, we will go back to the main dashboard to view the resulting activity. On the dashboard, we see the first job completing that, in a few seconds, captures all Kubernetes resources linked to the application, and stores it in the K10 catalog, and also snapshots the underlying disk volumes. These snapshots and spec artifacts are visible ina side panel on the dashboard. As soon as the first job completes, we also see an export job that transfers the application state and volume contents to object storage. 

We will now go back to the actual application and model an accidental data outage by emptying our cart. As this is not what we wanted, we will go back to K10 to restore this application. We go back to the applications page from the main dashboard, select “restore” for the online store application, and pick one of the restore points available to us. While we will be restoring the application in place, we could have also cloned the application in another namespace for testing or debugging purposes. There are a number of optional restore settings to support any complex workflows you might have, but we won’t be using them today.

We could have also excluded backup artifacts, either complete volumes or Kubernetes resources on restore, but for this demo we will simply bring back the entire application. Let’s now return to the main K10 dashboard where we will shortly see a restore job that, in a couple of minutes, repaves all storage and application infrastructure to bring back our lost data. 

Once the restore completes successfully, we can go back to the online store application, refresh our browser window, and discover that the shopping cart we had lost is now back where it belongs. 

We hope you enjoyed this demo of our Kubernetes-native data management platform. 

We encourage you to go download it and see how it can help with all your backup and disaster recovery requirements. Please do not hesitate to reach out if you have any questions.