ReadWriteWriteKubernetes 上的许多卷,包含数 TB 的数据



我们希望部署一个 k8s 集群,该集群将同时运行 ~100 个 IO 密集型 Pod。它们都应该能够访问同一卷。

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

  • CephFS
    • 设置非常复杂。难以排除故障。最后,它崩溃了很多,原因并不完全清楚。
  • Helm NFS Server Provisioning er
    • 运行良好,但是当 IO 达到峰值时,单个副本是不够的。我们根本无法让多个副本工作。
  • 最小IO
    • 是在 K8s 中创建存储桶的绝佳工具。但是我们的操作需要 fs 安装。这在理论上是可能的,但是由于我们运行~100个pod,因此我们需要另外运行100个s3fs边车。这似乎是一个坏主意。

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

防火似乎有效,但它比其他解决方案贵一个数量级,而且对于大量的IO操作,它很快就会变得不可行。


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

我想截至 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 可能会容易得多。

最新更新