A complete Kubernetes native disaster recovery solution for backup Kubernetes resources on various public and private clouds.
1apiVersion: stash.appscode.com/v1beta1 2kind: BackupConfiguration 3metadata: 4 name: cluster-resource-backup 5 namespace: demo 6spec: 7 repository: 8 name: cluster-resource-storage 9 retentionPolicy: 10 keepLast: 5 11 name: keep-last-5 12 prune: true 13 schedule: '*/5 * * * *' 14 task: 15 name: kubedump-backup-0.1.0 16 params: 17 - name: labelSelector 18 value: k8s-app=front-end
Kubernetes is becoming a vital aspect of enterprise IT environments as businesses increasingly rely on containerized applications. And a large amount of data is generated by business applications and microservices everyday, which must be protected with a reliable backup and recovery solution.
But the problem is traditional backup and restore solutions were not designed for Kubernetes. If you want to copy a Kubernetes cluster over platforms, you have to face so many difficulties during the process. And when the application grows in size, you need to create a lot of new custom scripts to take snapshots of your pods, services, volumes, configmaps, secrets, and have to continuously maintain those scripts. Stash is a complete Kubernetes native disaster recovery solution for backup and restore Kubernetes workloads, volumes and databases on various public and private clouds.
As we already know, traditional tools are too complex to setup and maintain in a dynamic compute environment like Kubernetes. Stash is a Kubernetes operator that uses restic or Kubernetes CSI Driver VolumeSnapshotter functionality to address these issues. Using Stash, you can backup Kubernetes volumes mounted in workloads, stand-alone volumes and databases. Users may even extend Stash via addons for any custom workload.
Backup the YAML representation of the resources of your entire cluster or a particular namespace. You can also use label selector to selectively backup particular resources.
Backup the YAML definition of your application along with it's dependants. Stash recursively backup the dependant objects using the owner reference chain.
Backup your data in Kubernetes native way. Stash uses Custom Resource Definition (CRD) to specify targets and behaviors of the backup and restore process. Schedule a backup for your workloads in the same way you deployed them into Kubernetes.
Stash will upload only the diff since the last backup. It splits the targeted files into smaller blobs using Content Defined Chunking (CDC) and uploads only the modified blobs.
To provide data security, your data needs to be encrypted during the whole process. Stash keeps all the backed up data encrypted using AES-256. So, your data is protected even if it leaks from the backend. And it will not make any sense until they are decrypted.
Stash comes with native support for monitoring via Prometheus. You can use builtin Prometheus scrapper or CoreOS Prometheus Operator to monitor your database in Kubernetes. You can use the Grafana to view key operational metrics, including compute/memory/storage capacity utilization, I/O activity, and instance connections.
Define a common template to backup all similar types of workloads. Then, just add some annotations to your targeted workload to enable backup for it. You can use a single template to backup all the Deployments, StatefulSets, DaemonSets, ReplicationControllers and ReplicaSets of your entire cluster
You can store your backed up data into various storage services. Stash supports AWS S3, Minio, Rook, Google Cloud Storage, Azure Blob Storage, OpenStack Swift, DigitalOcean Spaces, Blackbaze B2 and REST server as backend. You can also use Kubernetes persistent volumes as backend.
Trusted by top engineers at the most ambitious companies
InterSystems was delighted to engage with AppsCode in the delicate, yet fundamental task of supporting durable, non-ephemeral workloads with Kubernetes. We needed the best-prepared, most-proficient database operator consulting in the industry. Given AppsCode's pedigree of database building operators, the decision was easy. No time was wasted and all objectives reached in an amazingly short period of time. I would recommend AppsCode consulting for any Kubernetes related work.
Voyager made it simple and efficient for us to protect and initiate our bare metal Kubernetes workload. Its underlying technology and extensive L4 support along with seamless SSL integration is what made us choose Voyager over others. Voyager team is also very responsive when it comes to support. Great product!
Voyager is the easiest way to use the fast and reliable HAProxy as our ingress controller. At PriceHubble, it is the corner-stone of our blue/green deployments.
I work with a few Kubernetes clusters and we use Voyager as our preferred ingress controller. We really like the ease of configuration. Documentation is pretty good. Also the use of HaProxy is important for us because it works really well with both L4 and L7 load balancing. One of our TCP services, Wayk Now, is able to withstand thousands of persistent connections very smoothly at the same time.
We really like using Voyager. Its straightforward and well-documented config and SSL (especially Let's Encrypt) has made our migration of services to Kubernetes a breeze. Each major version has been a very welcome update!
Stash community edition is FREE to use on any supported Kubernetes engines. You can Backup & Restore your volumes and databases on Kubernetes using Stash. There is no up-front investment required. We offer a 30 days license FREE of cost to try Stash Enterprise edition.