Velero Backup Introduction
Velero is an open source tool for backing up and restoring resources in a Kubernetes cluster, performing disaster recovery, and migrating resources and persistent volumes to another Kubernetes cluster. Velero backup helps many organizations protect data stored in persistent volumes and makes your entire Kubernetes cluster more resilient.
Velero has been pulled over 50M times from DockerHub! It is the most popular data protection choice for the Kubernetes community. The Velero community has over 200 contributors and active maintainers from VMware, RedHat, Microsoft, Dell, CloudCasa, and others.
In the post we look into what Velero can do, the architecture at a high level, how Velero works and some of the useful Velero resources that are available for you to utilize to make your Velero experience as blissful as possible.
What can Velero Do?
So why should you care about Velero, what can it do? Velero can be an enabler for the following use cases:
- Backing up your Kubernetes cluster and enabling recovery in the event of data loss.
- Recovering a cluster in the event of a disaster.
- Copying cluster resources to other clusters.
- Replicating your cluster environment to create development and testing clusters.
- Taking a snapshot of your applications state before upgrading a cluster.
Velero Backup Architecture
A Velero backup consists of two core components: a server and a comment-line utility that runs locally. Velero supports many different plug-ins to enable it to work with different storage systems, cloud providers and Kubernetes platforms. You can run Velero in clusters on a cloud provider or on premises.
Given Velero supports the CSI snapshot API, it can support any storage volume provider that has a CSI driver, which over 110 vendors support. Be warned though not all vendors’ CSI implementations are equal, so look at the fine print and do your own testing.
How Velero Works
Each Velero operation, whether on-demand backup, scheduled backup, or restoration, is a custom Velero resource that is defined with a Kubernetes custom resource definition, or CRD, and stored in etcd. Velero includes controllers that process the CRDs to back up and restore Velero resources. You can back up or restore all objects in your cluster, or you can filter objects by type, namespace, or label.
Data protection is a chief concern for application owners who want to make sure that they can restore a cluster to a known good state, recover from a crashed cluster, or migrate to a new environment. Velero backup provides those capabilities.
Where do I Start?
Knowledge is power. The best advice we can offer to get started with Velero backup is to read the available documentation from Velero and VMware and check out the “Good first issue” and “Help wanted” labels in the Velero repository.
Still in need of help to get started? Get in contact with us as we have a range of Velero fast start services you can utilize to help you get up and running.
The Velero community is continuing to grow and with over 3,000 users on the Velero slack channel you can be sure you can ask questions and quickly get opinions and answers from industry experts.
Velero Plugins and Projects
Velero uses plug-ins to integrate with a variety of storage systems and Kubernetes platforms to support Kubernetes backup, restore and snapshot operations.
Velero backup currently supports the following kinds of plugins:
- Object Store – persists and retrieves backups, backup log files, restore warning/error files, restore logs.
- Volume Snapshotter – creates snapshots from volumes (during a backup) and volumes from snapshots (during a restore).
- Backup Item Action – performs arbitrary logic on individual items prior to storing them in the backup file.
- Restore Item Action – performs arbitrary logic on individual items prior to restoring them in the Kubernetes cluster.
- Delete Item Action – performs arbitrary logic on individual items prior to deleting them from the backup file.
There are also some very useful projects the Velero community contribute to make your lives that little bit easier. Some of the more useful projects include:
- Velero Notifications – This is a simple Kubernetes controller written in Ruby that sends email/Slack/webhook notifications when backups or restores are performed by Velero in a Kubernetes cluster.
- Velero Terraform Module – A Terraform module designed to create all necessary cloud resources to make Velero backup work in AWS
Why Do We Care?
At CloudCasa we openly contribute to and utilize Velero. CloudCasa has been integrating with Velero for over 3 years and has utilized and adapted Velero resources to protect over a thousand environments during this period. The market is embracing open-source technologies that are well adopted by many companies. CloudCasa has plans to leverage the open-source technology, Velero and contribute to it and solve real customer challenges, while embracing that ecosystem going forward.
CloudCasa offers centralized management, advanced, guided recovery to On-Premises and Cloud environments hosted in EKS, AKS and GKE – the Big3 Cloud Kubernetes Engines.
Want To Learn More?
Learn more about CloudCasa and sign up now at CloudCasa.io
Thanks for reading, I hope you found the blog insightful. Please do feel free to get in touch with any comments or feedback in relation to Kubernetes backup and recovery, Velero and CloudCasa.