Velero is an open-source solution that specializes in working with Kubernetes applications and/or clusters including backup operations, as well as restoration and migration operations. There are two main components that Velero consists of as a system:
There are a substantial number of use cases that Velero can be used for, including, but not limited to the following:
You can find detailed documentation about customization, community contributions, supported storage providers, and more on Velero’s official site here.
An important part of Velero is its plugin system, allowing the program to store backups via different storage providers, where the correct plugin exists. There are two different types of providers that Velero is capable of working with: officially supported ones and community supported ones.
The official list of Velero-supported providers includes AWS, Google, Azure, VMware and CSI (container storage interface). The unofficial community plugin list also enables the possibility to work with:
One important thing about AWS plugin for Velero is that it utilizes Amazon's Go SDK to gain access to AWS S3 API. According to user reports, the following S3 API-compatible storage providers are capable of working with Velero in general:
Aside from the regular backup capabilities, Velero is also capable of performing backups with volume snapshots via another open-source tool called restic. While Velero itself allowed the snapshot capabilities when using one of the storage providers’ block storage offerings, implementing restic was necessary to give users an additional method of performing snapshot backups outside of the normal Velero capabilities. An out-of-the-box solution, so to speak.
All in all, Velero is a qualified solution for specific Kubernetes-related cases where companies prefer an open-source solution. Regarding backup providers, it’s clear that the need for a Kubernetes backup solution is actively growing, as DevOps teams ready solutions for production deployment. Nevertheless, the number of truly high-end enterprise backup solutions that can adequately recover Kuberbetes clusters is, at the time of writing, extremely limited.
One example of a Velero competitor is Bacula Enterprise and its Kubernetes module. The similarities between the two are clear – backup and recovery of Kubernetes However, there are quite a number of differences between Velero and Bacula Enterprise. For one, Velero is open-source and free, while Bacula Enterprise is a premium product (although there is also a free trial available, as well as an open source version). There’s also more flexibility with Bacula’s module, allowing for greater configuration of backups, pods and services backups. Restore capabilities are also greater too, with Bacula providing both the ability to restore to a cluster and to a regular local directory. Of course, users of Bacula to back up Kubernetes clusters also have the inherent capability to exploit Bacula’s other countless features, including a vast range of storage destinations, management interface choices, and compatibility with an especially large range of virtual machine types, database types and cloud connectivity interfaces. There is also, of course, Bacula’s features and options for high security. Therefore, besides Bacula’s comprehensive capabilities with Docker and Kubernetes, it’s ability to backup and restore an entire organizations’ IT environment - all from one platform - becomes a significant advantage in itself.
Bacula Enterprise with its Kubernetes module might well be a good choice for medium and large companies that are developing with Kubernetes and have plans to deploy into mission-critical environments now or in the future.