Совместное использование хранилища / тома между рабочими узлами в Kubernetes? - PullRequest
0 голосов
/ 09 октября 2018

Возможно ли иметь централизованное хранилище / том, который можно разделить между двумя модулями / экземплярами приложения, которые существуют в разных рабочих узлах в Kubernetes?

Итак, чтобы объяснить мой случай:

  • У меня есть кластер Kubernetes с 2 рабочими узлами.В каждом из них у меня работает 1 экземпляр приложения X.Это означает, что у меня есть 2 экземпляра приложения X, запущенных одновременно.

  • Оба экземпляра подписаны на тему topicX, которая имеет 2 раздела и являются частью группы потребителей в ApacheКафка назвал groupX.

Насколько я понимаю, загрузка сообщений будет распределена между разделами, но также и среди потребителей в группе потребителей.Пока все хорошо, правда?

Итак, к моей проблеме:

  • Во всем моем решении у меня есть иерархическое разделение с уникальным ограничением по стране и идентификатору.Каждая комбинация страны и идентификатора имеет модель выбора (Модель машинного обучения Python), которая хранится в каталоге, к которому обращается приложение.Для каждой комбинации страны и идентификатора я получаю одно сообщение в минуту.

  • На данный момент у меня есть 2 страны, поэтому для правильного масштабирования я хотел разделить нагрузку между двумяэкземпляры приложения X, каждый из которых обрабатывает свою страну.

  • Проблема в том, что с Kafka сообщения могут быть сбалансированы между различными экземплярами, и для доступа к файлам маринованных файлов в каждом случае, не зная, к какой стране принадлежит сообщение, я долженсохраните файлы pickle в обоих случаях.

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

Имейте в виду, что это слишком упрощенный способ объяснения проблемы.Количество экземпляров в реальности намного выше и т. Д.

1 Ответ

0 голосов
/ 09 октября 2018

Да.Возможно, если вы посмотрите на эту таблицу любой PV (физический том), который поддерживает ReadWriteMany, вы сможете добиться того же хранилища данных для ваших работников Kafka.Итак, в итоге это:

  • AzureFile
  • CephFS
  • Glusterfs
  • Quobyte
  • NFS
  • VsphereVolume- (работает, когда блоки расположены)
  • PortworxVolume

На мой взгляд, NFS проще всего реализовать.Обратите внимание, что Azurefile, Quobyte и Portworx являются платными решениями.

...