ReadWriteMany тома на кубернетах с терабайтами данных - PullRequest
3 голосов
/ 13 января 2020

Мы хотим развернуть кластер k8s, который будет одновременно запускать ~ 100 IO-тяжёлых модулей. Все они должны иметь доступ к одному и тому же тому.

То, что мы пробовали до сих пор:

  • CephFS
    • было очень сложно настроить. Трудно устранить неисправность. В конце концов, он много зависал, и причина была не совсем ясна.
  • Helm NFS Server Provisioner
    • работает довольно хорошо, но когда IO достигает пика, одна реплика недостаточно. Нам не удалось заставить работать несколько реплик.
  • MinIO
    • - отличный инструмент для создания хранилищ в k8s. Но наши операции требуют монтажа fs. Это теоретически возможно с s3fs, но, поскольку мы запускаем ~ 100 модулей, нам потребуется дополнительно запустить 100 s3fs колясок. Это кажется плохой идеей.

Должен быть какой-то способ получить 2 ТБ данных, смонтированных в кластере GKE, с относительно высокой доступностью?

Firestorage, кажется, работает, но это на порядок дороже, чем другие решения, и с большим количеством операций ввода-вывода это быстро становится невозможным.


Я думал о создании этого вопроса по вине сервера, но сообщество k8s намного меньше, чем SO.

1 Ответ

1 голос
/ 16 января 2020

Я думаю, что по состоянию на январь 2020 года у меня есть окончательный ответ, по крайней мере, для нашего сценария использования:

| 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, но я просто go с stringy05 ответ: другие испытывают трудности с получением действительно хорошей пропускной способности

Ceph мог бы быть намного проще, если бы его поддерживал Helm.

...