请教大家关于 K8S 使用 GlusterFS+Heketi 为后端存储方案的问题

2022-03-23 16:47:40 +08:00
 zhoudaiyu

  初步想打算采用的架构如下:Pod 通过挂载的 PVC 访问 StorageClass 中存储的集群的 VIP 或者域名(通过 Service+Endpoint 实现)的 Heketi (集群外),Heketi 再去访问 GlusterFS 服务集群上的数据。

  这样存储相关的服务都外置于 K8S 集群了。但是这样有个高可用的问题,这样部署的 Heketi 只能是个单点的应用,因为每个 Heketi 实例本身也有一个 DB 文件( boltdb )存储集群元数据。因此这个文件也要想办法共享出来让多个机器上的 Heketi 访问。我目前想到的方法就是每台机器再挂一块盘用来存这个 db 文件,这几块盘是被 Glusterfs 直接初始化组成的一个集群,而不是通过 Heketi 初始化。相当于图中的 db-vol-{1,2,3}存储 Heketi 的 db 文件,data-vol-{1,2,3}存储 PVC 的数据。

  现在的问题是:1 、这个架构本身是否合理; 2 、boltdb 是否支持多个 Heketi 实例并发修改数据,是不是要实现一个类似于单例模式的架构,同一时刻只有一个 Heketi 实例提供服务; 3 、如果需要单例模式,如何实现?是通过探活加上修改 Endpoint 保证只有一个 Heketi 提供服务,还是有别的方法呢?

  小弟第一次接触分布式存储,很多地方理解不到位,如果方案中有一些不合理的地方请各位大佬多提提意见,Thanks!

2030 次点击
所在节点    Kubernetes
12 条回复
liuhan907
2022-03-23 18:11:39 +08:00
Heketi 都快不维护了你选啥不好选这个。。。
zhoudaiyu
2022-03-23 18:42:55 +08:00
@liuhan907 还有一个就是 Kadalu 吧,那个还没细看,那个是要部署在 K8s 里面的,估计我们 K8s 版本太老,可能兼容会有问题
zhoudaiyu
2022-03-23 19:21:30 +08:00
@liuhan907 #1 刚试了一下,果然版本太低了,不支持( 1.13 )。
liuhan907
2022-03-23 22:52:25 +08:00
你这版本也太老了!
zhoudaiyu
2022-03-23 22:56:18 +08:00
@liuhan907 公司的,莫得办法💁🏻‍♀️
liuhan907
2022-03-24 00:20:28 +08:00
另外为什么不用更简单的比方说 longhorn ,为了存储和 k8s 分离?
zhoudaiyu
2022-03-24 07:44:29 +08:00
@liuhan907 还有就是我们 K8s 版本太低,好多这种新玩意搞不了
liuhan907
2022-03-24 10:14:02 +08:00
那为啥不用 ceph 呢,直接 rbd 不是更简单呐
zhoudaiyu
2022-03-24 10:27:37 +08:00
@liuhan907 #8 ceph 的 osi 插件接入 k8s 要求 k8s 版本最低 1.14 。。。
zhoudaiyu
2022-03-24 10:28:06 +08:00
@zhoudaiyu #9 cri
liuhan907
2022-03-24 12:00:24 +08:00
所以你们还是老老实实考虑升级吧,现在几乎没有 1.12 这么低版本的东西了。。。
rainfd
2022-03-24 15:28:29 +08:00
我也觉得有空研究这个还不如把精力放到怎么升级 k8s 集群上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/842396

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX