【问题标题】:ReadWriteMany volumes on kubernetes with terabytes of data具有 TB 数据的 kubernetes 上的 ReadWriteMany 卷
【发布时间】:2020-01-13 19:59:58
【问题描述】:

我们想要部署一个 k8s 集群,该集群将同时运行约 100 个 IO 密集型 Pod。他们都应该能够访问同一个卷。

到目前为止我们尝试了什么:

  • CephFS
    • 设置起来非常复杂。很难排除故障。最后崩溃了很多,原因还不完全清楚。
  • Helm NFS 服务器配置程序
    • 运行良好,但是当 IO 达到峰值时,单个副本是不够的。我们根本无法让多个副本工作。
  • MinIO
    • 是在 k8s 中创建存储桶的好工具。但是我们的操作需要 fs 挂载。这在理论上是可以用 s3fs 实现的,但是由于我们运行大约 100 个 pod,我们需要额外运行 100 个 s3fs 边车。这似乎是个坏主意。

是否必须通过某种方法将 2TB 的数据装载到具有相对高可用性的 GKE 集群中?

Firestorage 似乎可以工作,但它比其他解决方案贵一个数量级,而且由于大量 IO 操作,它很快变得不可行。


我曾考虑在服务器故障上提出这个问题,但 k8s 社区比 SO 的要小很多。

【问题讨论】:

  • 您使用的是 Google Kubernetes Engine 吗?您是否尝试过在 PersistentVolumeClaim 中使用非默认存储类?
  • 这是一篇关于存储性能的精彩博客vitobotta.com/2019/08/06/…
  • 您是否尝试过 Cloud Filestore - cloud.google.com/filestore?这将支持您的用例,但我听说其他人很难从中获得真正好的吞吐量

标签: kubernetes google-kubernetes-engine kubernetes-helm kubernetes-pvc


【解决方案1】:

我认为截至 2020 年 1 月我有一个明确的答案,至少对于我们的用例而言:

| Solution        | Complexity | Performance | Cost           |
|-----------------|------------|-------------|----------------|
| NFS             | Low        | Low         | Low            |
| Cloud Filestore | Low        | Mediocre?   | Per Read/Write |
| CephFS          | High*      | High        | Low            |

* You need to add an additional step for GKE: Change the base image to ubuntu

我自己还没有对 Filestore 进行基准测试,但我会接受 stringy05 的回复:其他人很难从中获得真正好的吞吐量

如果 Helm 支持 Ceph,它可能会容易得多。

【讨论】:

  • 您为什么完全放弃使用带有动态配置 PersistentVolume 的 SSD 存储?您的用例是否有某些原因完全放弃了这一点? cloud.google.com/kubernetes-engine/docs/how-to/…
  • 标题中写着ReadWriteMany。直接连接磁盘只允许 RWOnce。
  • 谢谢,我不知道这个事实。
  • 在定价页面上,Cloud Filestore 似乎将至少运行 200 美元/月。它们的最小卷大小为 1TB,成本至少为 0.20 美元/GB/月。
  • @ckeeney 好点。如果您对 HDD 没问题,普通 gcp 磁盘只需 40 美元/TB/月,而且在大小方面更加灵活。运营成本也很低。
猜你喜欢
  • 2018-12-15
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
  • 1970-01-01
  • 2019-12-01
  • 2021-11-06
  • 1970-01-01
  • 2013-01-05
相关资源
最近更新 更多