Возможно ли иметь централизованное хранилище / том, который можно разделить между двумя модулями / экземплярами приложения, которые существуют в разных рабочих узлах в Kubernetes?
Итак, чтобы объяснить мой случай:
У меня есть кластер Kubernetes с 2 рабочими узлами.В каждом из них у меня работает 1 экземпляр приложения X.Это означает, что у меня есть 2 экземпляра приложения X, запущенных одновременно.
Оба экземпляра подписаны на тему topicX, которая имеет 2 раздела и являются частью группы потребителей в ApacheКафка назвал groupX.
Насколько я понимаю, загрузка сообщений будет распределена между разделами, но также и среди потребителей в группе потребителей.Пока все хорошо, правда?
Итак, к моей проблеме:
Во всем моем решении у меня есть иерархическое разделение с уникальным ограничением по стране и идентификатору.Каждая комбинация страны и идентификатора имеет модель выбора (Модель машинного обучения Python), которая хранится в каталоге, к которому обращается приложение.Для каждой комбинации страны и идентификатора я получаю одно сообщение в минуту.
На данный момент у меня есть 2 страны, поэтому для правильного масштабирования я хотел разделить нагрузку между двумяэкземпляры приложения X, каждый из которых обрабатывает свою страну.
Проблема в том, что с Kafka сообщения могут быть сбалансированы между различными экземплярами, и для доступа к файлам маринованных файлов в каждом случае, не зная, к какой стране принадлежит сообщение, я долженсохраните файлы pickle в обоих случаях.
Есть ли способ решить эту проблему?Я бы предпочел сделать настройку как можно более простой, чтобы ее можно было легко масштабировать и добавить третью, четвертую и пятую страну позже.
Имейте в виду, что это слишком упрощенный способ объяснения проблемы.Количество экземпляров в реальности намного выше и т. Д.