Every holistic backup system does one thing that I want, 20 things that I don't, and the complexity ultimately breaks over time. So I set up my own simple solution that uses restic to back up my persistent data.
It currently supports persistent volume claims, postgresql database dumps, and prometheus snapshots. Why not more? Because I haven't needed it to.
I run a backup instance per namespace, and it attaches to the necessary volume claims in that namespace. Note that to attach to the same ReadWriteOnce claims, the backup instance needs to run on the same node as the server that uses these claims.
To see how I use it, look through several of the applications in my GitOps repository. I created my own helm chart for it and add them as dependencies to my ArgoCD helm charts. You can look at the values.yaml file in there for documentation on how to use the variables.