0

I have a web application running on a Google Kubernetes cluster. My web app also uses persistent volumes for multiple MongoDB databases to store user and application data.

(1) Thus I am wondering if it is practical to store all data inside those persistent volumes in the long-run?

(2) Are there any methods for safely backing up the persistent volumes e.g. on a weekly basis (automatically)?

(3) I am also planning to integrate some kind of file upload into the application. Are persistent volumes capable of storing many GB/TB of data, or should I opt for something like Google cloud storage in this case?

Florian Ludewig
  • 4,338
  • 11
  • 71
  • 137
  • Use can explore [Volume Snapshot](https://kubernetes.io/docs/concepts/storage/volume-snapshots/) option for backup – DT. Feb 13 '20 at 13:14

2 Answers2

2

Deploying statefull apps on K8s is bit painfull which is well known in K8s community. Usually, if we need HA for DBs supposed to deploy as cluster mode. But in K8s, if you want to deploy in cluster mode, you need to check StatefulSets concept. Anyways, I'm pasting links for your questions, so that you can start from there.

(1) Thus I am wondering if it is practical to store all data inside those persistent volumes in the long-run?

(2) Are there any methods for safely backing up the persistent volumes e.g. on a weekly basis (automatically)?

  1. Persistent Volume Snapshots
  2. Volume Snapshot (Beta from K8s docs) You can google even more docs.

(3) I am also planning to integrate some kind of file upload into the application. Are persistent volumes capable of storing many GB/TB of data, or should I opt for something like Google cloud storage in this case?

  • Not sure, it can hold TBs!?? but definitely, if you have cloud, consider to use it
Veerendra K
  • 2,145
  • 7
  • 32
  • 61
1

Yes you can use the PVC in Kubernetes to store the data. However it's depends on your application usecase and size.

In kubernetes you can deploy Mongo DB as cluster and run it which is storing data inside PVC.MongoDB helm chart available for HA you can also look for that.

Helm chart : https://github.com/helm/charts/tree/master/stable/mongodb

It's suggested to single pod or statefulset of MongoDB on Kubernetes.

Backup:

For backup of MongoDB database, you can choose taking a snapshot of disk storage (PVC) weekly however along with that you can alos use Mongo snapshot.

Most people choose to manage service but still, it depends on your organization also.

Backup method

  • MongoDB snapshot
  • Disk storage snapshot

Filesystem :

Yes it can handle TB of data as it's ultimately disk volume or file system.

Yes you can use PVC as file system but later in future you may get issue for scaling as PVC is ReadWriteOnce if you want to scale application along with PVC you have to implement ReadWriteMany.

There is sevral method also to achive this you can also directly mount file system to pod like AWS EFS but you may find it slow for file operations.

For file system there are various options available in Kubernetes like csi driver, gluster FS, minio, EFS.

Harsh Manvar
  • 27,020
  • 6
  • 48
  • 102