【发布时间】:2019-11-29 11:57:24
【问题描述】:
我正在 Kubernetes 之上构建一个平台,除其他要求外,它应该:
- 与操作系统无关。任何具有健全内核和 cgroup 挂载的 Linux。
- 利用集群节点磁盘提供持久存储。
- 提供 ReadWriteMany 卷或实现共享存储的方法。
- 不应将 POD 绑定到特定节点(如本地持久卷)
- 迁移 POD 时会自动重新附加卷(例如,由于节点耗尽或节点丢失情况)
- 在存储级别提供数据复制
- 不假定每个节点都有专用的原始块设备。
我通过对 k8s 组件和容器引擎使用静态二进制文件来解决第一点。再加上最小的主机工具,也是静态二进制文件。
我仍在寻找持久存储的解决方案。
到目前为止我评估/使用的内容:
- Rook:虽然在功能上满足要求,但是有一个bug,卷没有和POD一起移动https://github.com/rook/rook/issues/1507
- OpenEBS:它不满足与操作系统无关的要求。每个节点上都需要 iSCSI 客户端和工具,这取决于主机操作系统 https://docs.openebs.io/docs/next/prerequisites.html
所以问题是在使用集群节点磁盘时,对于 Kubernetes 持久存储,我还有什么其他选择。
【问题讨论】:
-
您希望在本地还是在云端 (CGP/AWS) 中运行它?
-
本地。假定没有专用存储系统。只是本地磁盘。
-
你检查过 glusterfs 吗? topc 上的官方文档说 WriteMany 由 gcePersistentDisk (这里根本不是这种情况)、glusterfs、nfs 支持。我正在检查 glusterfs 是否符合您的要求
-
检查了 k8s 上的 glusterfs。它需要特定于操作系统的工具和附加在每个节点上的专用原始块设备。 github.com/gluster/gluster-kubernetes/blob/master/docs/…
-
“每个节点上连接的专用原始块设备”,我的印象是你可以在同一个 raid 上为 OS 安装 sda,为 glusterfs 安装 sdb。 “O/S 特定工具”他们说可以通过 NFS v3 docs.gluster.org/en/latest/Administrator%20Guide/… 访问它。另外,我在之前的评论中打错了字,提到了 gcePersistentDisk 而不是 CephFS
标签: kubernetes storage openebs rook-storage