[Velero](https://velero.io /) – this is a backup tool for Kubernetes resources and volumes. There is also a plugin to Microk8s.

The main problem with Velero is that it panders to admins trying to transfer the practices of working with virtual machines to the cube.

There’s nothing wrong with the idea itself, it just doesn’t work:

  • in a distributed system, it is impossible to take snapshots of all volumes at once, even in theory
  • even if you take such pictures, it is not a fact that the applications will start with such data, because at that moment the application could only record part of the data
  • backups of kubernetes resources (what we usually see in yaml files) also don’t make much sense: it will probably not start automatically anyway without manual edits on the new cluster

In principle, Velero can be used as a tool for monitoring changes in a cluster for the poor (if you only backup resources and then look at different backups of what changes occurred manually), but it’s still worse than a normal CI/CD and some kind of audit tools (I wasn’t interested in this question).

The right approach:

  • automatic deployment of the entire cluster, for example, via ArgoCD
  • backup of each stateful application individually to S3-compatible external storage

In this case, all the goals stated on the site will be fulfilled (Disaster Recovery, Data Migration, Data protection). Only, unlike Velero, they will be really executed, and not for show.