V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leiuu
V2EX  ›  Kubernetes

用于 k8s 的最佳分布式存储框架是什么

  •  
  •   leiuu · 2024-01-27 11:03:26 +08:00 · 4616 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT

    没有分布式存储

    k8s 部署有状态服务时将面临繁琐和困难

    请问各位大佬

    哪些方案实践过比较好用

    有个前提是:团队较小,可能特别重量级的组件不适用

    34 条回复    2024-03-05 15:03:43 +08:00
    igeeky
        1
    igeeky  
       2024-01-27 11:41:32 +08:00
    不想折腾,可以看看阿里云的共享存储方案.
    自己折腾,可以看看 MinIO, MinIO 是兼容 S3 的接口, 很成熟.
    xcai
        2
    xcai  
       2024-01-27 11:55:37 +08:00
    rook
    BugCry
        3
    BugCry  
       2024-01-27 11:59:44 +08:00 via Android
    Longhorn
    Kumo31
        4
    Kumo31  
       2024-01-27 12:02:07 +08:00   ❤️ 1
    Longhorn 比较简单,也宣传是 k8s native 。小团队就不要上 rook 之类的 ceph 方案了,没有能力运维
    kuituosi
        5
    kuituosi  
       2024-01-27 12:03:12 +08:00
    k8s 就不是为分布式存储设计的
    fuis
        6
    fuis  
       2024-01-27 12:45:25 +08:00
    Kubernetes Storage Capabilities & Performance Analysis: Longhorn, Rook, OpenEBS, Portworx, and IOMesh Compared

    https://www.iomesh.com/blog/kubernetes_persistent_storage_comparison
    jigege2019
        7
    jigege2019  
       2024-01-27 12:54:37 +08:00 via iPhone
    rook-ceph 挺好的,挺稳的,存储主要靠稳定
    dayeye2006199
        8
    dayeye2006199  
       2024-01-27 13:28:27 +08:00
    简单点就 longhorn 好了,但是性能拉跨
    defunct9
        9
    defunct9  
       2024-01-27 16:21:50 +08:00
    nfs
    iiusky
        10
    iiusky  
       2024-01-27 17:04:48 +08:00
    nfs 简单直接,别搞那些乱七八糟的,小团队用不上
    DefoliationM
        11
    DefoliationM  
       2024-01-27 19:19:24 +08:00 via Android
    nfs ,minio 真的是太乱了,不好管理,没直接 nfs 能看到文件直观。
    twl007
        12
    twl007  
       2024-01-27 19:50:18 +08:00 via iPhone
    @jigege2019 ceph 运维太重了
    jigege2019
        13
    jigege2019  
       2024-01-27 20:05:05 +08:00 via iPhone   ❤️ 1
    @twl007 还好吧,我都业余的。根据 rook 说明文档,很轻松就上手了。主要用了 longhorn/nfs 这些都不稳定,rook-ceph 跟到操作就对了,可能我们要求不高,也不怎么运维,就 10 块硬盘。三个副本保证数据不丢就对了,有次挂了二个硬盘数据都在
    jigege2019
        14
    jigege2019  
       2024-01-27 20:14:33 +08:00 via iPhone
    首先考虑存储软件的成熟度,存储必须要稳定,然后在考虑运维这些
    xinmans
        15
    xinmans  
       2024-01-27 20:37:49 +08:00 via iPhone
    nfs 够用了,性能比较强,比 smb 强
    idblife
        16
    idblife  
       2024-01-27 21:28:45 +08:00
    rook-ceph
    根据官方文档配置即可
    Blank10030
        17
    Blank10030  
       2024-01-27 23:02:06 +08:00
    longhorn 比较简单,性能也还行。
    clickhouse
        18
    clickhouse  
       2024-01-27 23:23:34 +08:00
    推荐 nfs 。longhorn 基本不需要运维,有多副本灾备,但是在节点外处理里面的文件比较麻烦,也可以。
    leiuu
        19
    leiuu  
    OP
       2024-01-28 00:35:37 +08:00
    @iiusky nfs 有个坑 高可用不好做啊 我看一般是绑定到具体单个节点的
    leiuu
        20
    leiuu  
    OP
       2024-01-28 00:40:06 +08:00
    minio 本来这个方案我是看好的,但细致看了下,说不适合用于数据库之类的存储,有些场景还是得配合块存储的方案...
    twl007
        21
    twl007  
       2024-01-28 00:45:39 +08:00 via iPhone
    @jigege2019 你这个只是最基本的 后面 Ceph 自己出了问题才是最麻烦的

    rook-ceph 的坑不在 Rook 而在 Ceph 而且因为 rook-ceph 藏住了很多细节 真到 Ceph 出问题的时候就是两眼一黑

    而且还有很多细节 rook-ceph 部署的时候配置 rack awarness 了么 k8s 升级的时候怎么配合一起重启 Ceph docker 升级的时候怎么逐步重启 全是坑 甚至 k8s 出问题的时候你想要恢复 Ceph 也是个挑战
    twl007
        22
    twl007  
       2024-01-28 00:52:54 +08:00 via iPhone
    当然如果最后需求很多 那还是上 Ceph 不过建议独立部署 遵循 KISS

    k8s 挂了你还能重新部署 存储挂了可是你数据就没了
    jigege2019
        23
    jigege2019  
       2024-01-28 08:36:33 +08:00 via iPhone
    @twl007 ceph 官方推荐在 k8s 中使用 rook ,我们要求也不高,服务器也就三台,也没遇到什么坑,主要感觉 ceph 挺稳的。根据 rook 文档从 ceph15 版本升级到 17 ,也没问题,服务也没中断。担心 k8s ,把 k8s 做成高可用/多主节点,kube-vip
    twl007
        24
    twl007  
       2024-01-28 11:58:29 +08:00 via iPhone
    @jigege2019 个人建议慎重吧 另外现在 Ceph 官方也推荐他们自己的 Cephadm 建院尝试下这个 对于存储这种基础中的基础 还是建议遵循 KISS Ceph 已经足够复杂了

    另外版本升级的话最好加一下邮件组看看 Ceph 15 出现过升级中 OSD 格式转换错误导致数据丢失的问题 你看一下版本历史就知道了

    只能说没出问题一切安好 一旦出了问题就是两眼一黑
    eephee
        25
    eephee  
       2024-01-28 16:59:39 +08:00
    @leiuu 楼主打算将 MySQL 部署中 k8s 中吗
    nrtEBH
        26
    nrtEBH  
       2024-01-28 17:07:07 +08:00
    看存什么数据 用云盘 pvc 直接挂也没什么问题吧
    生产环境别搞太重
    leiuu
        27
    leiuu  
    OP
       2024-01-28 21:14:59 +08:00
    @eephee 是的 想将很多有状态组件部署在 k8s 中 所以需要一个稳定的存储解决方案
    jigege2019
        28
    jigege2019  
       2024-01-28 22:19:21 +08:00 via iPhone
    @twl007 也是。longhorn 我遇到丢过数据,nfs 有时要掉线。不管用啥还是得多备份,有啥其他稳定的推荐?
    twl007
        29
    twl007  
       2024-01-28 23:16:39 +08:00 via iPhone
    @jigege2019 整体来说 开源基本都这样

    相比其他而言 Ceph 算是最成熟的了 毕竟 Linode 和 Digital Ocean 也在用 看邮件组也有很多别的大公司不断的贡献代码 但是想用好要付出巨大的成本就是了 用好难

    真的推荐的话 如果负担得起 直接找成熟的商业存储吧 商业有 bug 可以快速修 Ceph 一个 bug 修好几年都很常见 至少我遇到的问题在最新的 Reef 才算彻底修好

    毕竟数据无价
    Desdemor
        30
    Desdemor  
       364 天前
    我们不是 k8s , 日常业务中用的 Seaweed , 这是项目地址: https://github.com/seaweedfs/seaweedfs
    hezhiming1993
        31
    hezhiming1993  
       345 天前
    @BugCry
    踩坑的告诉你: Longhorn 这个东西很坑.

    情商低的说法是: 这东西就是垃圾
    BugCry
        32
    BugCry  
       345 天前 via Android
    @hezhiming1993 展开说说
    hezhiming1993
        33
    hezhiming1993  
       344 天前
    @BugCry

    都是血泪,
    建议只看 CNCF 里面已经毕业的项目
    ExplodingFKL
        34
    ExplodingFKL  
       328 天前
    单独搞机器使用 cephadm 部署 ceph, 然后再在 rook 下接入,也不怕数据丢失,就是 ceph 运维复杂 ....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1783 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:54 · PVG 09:54 · LAX 17:54 · JFK 20:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.