The Kubernetes world has exploded! Its all you hear about now, Kubernetes, Kubernetes, Kubernetes! VMware acquired Heptio, launched Project Pacific (see Anthony Spiteri’s blog), NetApp announced Application Lifecycle Management for Kubernetes, AWS has EKS, Azure has AKS, Google Cloud Platform has GKE (they invented the thing!) everyone is announcing something somewhere. As this demand grows, the need for backing up and protecting these workloads is ever increasing. More and more Kubernetes workloads are becoming stateful, in-fact I wrote a blog article during my day job about just this – Stateful containers in production, is this a thing? Recently I came across a great company called Kasten. They offer native integration with Kubernetes to backup and restore any Kubernetes workloads. They have some really cool features including cross platform migrations. I thought it would be great to dig into this and take a look:
First, let’s take a look at the flexibility of the Kasten K10 platform. Within Kasten K10, you have the ability to import and export Kubernetes workloads across clusters and different platforms. We can take a workload running on Google Kubernetes Engine (GKE) and easily import it into Amazon Elastic Container Service (EKS).
Let’s start by looking at the GKE platform:
We can see we have two applications running in our GKE cluster (plus the Kasten K10 workload).
Our goal here is to export the nginx-1 application and import it into Amazon EKS. We need to create a policy in Kasten K10 to export the application based on the backup schedule we create.
We can see that Kasten shows we have three unmanaged applications and zero policies. We need to create a policy to back up the workload and export it to an object storage platform.
First, we give the policy a name and pick the action type. We can either select taking a snapshot or import. As this is the application we want to backup and export, we select snapshot.
The Export for portability after snapshot option needs to be enabled.
We select an export profile (created separately). This enables the exporting of the snapshot to an object storage platform. In this case, we have configured Amazon S3.
We pick which application or applications we want to include in this policy.
The policy is created and we can see the options that we configured. By clicking the Show import detailsoption, we are given the details needed to configure the import in a separate cluster.
Copy the text to the clipboard for use when creating an import policy on the receiving cluster. We have no configured backups on the Kubernetes cluster and configured the snapshots to be exported. The job status shows this has been completed.
Let’s switch to the receiving cluster Kasten deployment. We will now need to create an import policy.
It’s a very similar process to how we created the policy for exports.
We select Import. We have the option to Restore after import,which actually deploys the workload after import to the cluster.
Paste the configuration data we copied to the clipboard from the export policy.
Once we have the policy created, the restore job will start automatically.
We can check the job status to see.
The import and restore has been completed. We can look at the applications to see if this application exists.
I would recommend reading more about the Kasten K10 Platform. It really does have nice integration into Kubernetes and providing migration and mobility across platforms and service (GCP, AWS, Azure, On-Prem etc) is a really nice capability.
No comments yet.