3

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

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

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

必须有某种方法可以将 2TB 的数据挂载到具有相对高可用性的 GKE 集群中吗?

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


我考虑在服务器故障上创建这个问题,但 k8s 社区比 SO 小得多。

4

1 回答 1

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,它可能会容易得多。

于 2020-01-16T17:01:44.610 回答