доступ к одному и тому же файлу с несколькими монго дБ - PullRequest
0 голосов
/ 15 сентября 2018

Проблема

У меня есть проект, который должен состоять в следующем: Мне нужна контейнерная база данных.Когда нагрузка на базу данных возрастает и база данных перегружается, мне нужно подтянуть другой контейнер (модуль) с базой данных.Проблема заключается в том, что в новом модуле должны быть предварительно загружены некоторые данные (для целей чтения для пользователей), и когда нагрузка будет снижена, новый модуль будет прерван, а данные, хранящиеся в нем, должны быть сохранены в центральной базе данных (дляне теряйте его).

Я использую кластер Kubernetes (Google Kubernetes Engine) для pods и Mongo db.Это выглядит примерно так:

Диаграмма БД

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

Теперь проблема в том, что MongoDB не позволяет этого делать (объединяет содержимое из нескольких баз данных в одну базу данных).Сценарий, который управляет модулями (которые должны обрабатываться динамически), извлекает данные из них и передает их в центральную базу данных, сложен, и необходимо позаботиться о таких вещах, как контроль над уже извлеченными данными.

Моя идея решения

Итак, моя идея заключалась в том, что все контейнеры указывают на один и тот же объем.Это означает, что файлы в каталоге '/ data / db' (где mongo хранит эти файлы) каждого модуля одинаковы для всех модулей, поскольку для всех модулей смонтирован одинаковый том.Это выглядит примерно так:

Одинаковый объем, установленный для каждого Pod

Kubernetes позволяет использовать несколько томов.Среди них ReadWriteMany - NFS и Cephfs .Я попробовал пример этой ссылки NFS , но это не сработало.Первый модуль успешно стартовал, но остальные застряли в «Стартовом контейнере».Я предполагаю, что том не может быть смонтирован для других модулей, потому что WriteMany не был разрешен.

Я попытался создать кластер Cephfs вручную, но у меня возникли некоторые проблемы при использовании кластера из кластера Kubernetes.Мой вопрос: будут ли делать работу cephfs?Может ли cephfs обрабатывать несколько писателей в одном файле?Если это возможно, удастся ли подняться монго?NFS должен был работать, но это не так.

...