在Kubernetes持久卷中适当存储数据库(以及如何备份?)

问题描述 投票:0回答:2

我有一个在Google Kubernetes集群上运行的Web应用程序。我的Web应用程序还使用多个MongoDB数据库的持久卷来存储用户和应用程序数据。

((1)因此,从长远来看,我想知道将所有数据存储在那些持久卷中是否可行?

((2)是否有用于安全备份持久卷的方法,例如每周一次(自动)?

((3)我还计划将某种文件上传集成到应用程序中。持久卷是否能够存储许多GB / TB的数据,或者在这种情况下我应该选择类似Google云存储的功能吗?

kubernetes google-kubernetes-engine persistent-volumes
2个回答
2
投票

在K8s中部署有状态的应用程序有点痛苦,这在K8s社区中众所周知。通常,如果我们需要HA用于应该以群集模式部署的数据库。但是在K8s中,如果要以群集模式进行部署,则需要检查StatefulSets概念。无论如何,我都会粘贴您的问题链接,以便您可以从那里开始。

(1)因此,我想知道将所有数据存储在内部是否可行从长远来看那些持久的卷?

((2)是否有用于安全备份持久卷的方法?例如每周一次(自动)?

  1. Persistent Volume Snapshots
  2. Volume Snapshot(来自K8s文档的测试版)您可以搜索更多文档。

((3)我还计划将某种文件上传集成到应用。持久卷是否能够存储许多GB / TB的数据,还是我应该在此选择像Google云存储这样的数据情况?

  • 不确定,它可以容纳TB!但是可以肯定的是,如果您有云,请考虑使用它

1
投票

是的,您可以在Kubernetes中使用PVC来存储数据。但是,这取决于您的应用程序用例和大小。

在kubernetes中,您可以将Mongo DB部署为集群并运行,它将数据存储在PVC中。可用于HA的MongoDB掌舵图也可以查找。

头盔图表:https://github.com/helm/charts/tree/master/stable/mongodb

建议在Kubernetes上对MongoDB的单个pod或有状态集进行设置。

备份

对于MongoDB数据库的备份,您可以选择每周拍摄磁盘存储(PVC)快照,但同时也可以不使用Mongo快照。

[大多数人选择管理服务,但仍然取决于您的组织。

备份方法

  • MongoDB快照
  • 磁盘存储快照

文件系统:

是的,它可以处理TB的数据,因为它最终是磁盘卷或文件系统。

是的,您可以将PVC用作文件系统,但是以后可能会遇到扩展问题,因为PVC是ReadWriteOnce,如果要与PVC一起扩展应用程序,则必须实现ReadWriteMany

也有一些通用的方法,您也可以像AWS EFS一样直接将文件系统挂载到pod,但是您可能会发现文件操作速度很慢。

对于文件系统,Kubernetes中有各种可用选项,例如csi驱动程序gluster FSminioEFS

© www.soinside.com 2019 - 2024. All rights reserved.