- MongoDB 8 в виде набора реплик (используются транзакции). Три участника, распределённые по трём узлам, переживают потерю одного узла; один участник тоже работает.
- Redis 7 — один сервер с AOF-персистентностью. Redis хранит правки, ещё не записанные в MongoDB, сеансы и сообщения между сервисами Overleaf. Overleaf подключается к одному серверу Redis: Sentinel и Redis Cluster не поддерживаются.
Вместо этого можно использовать управляемые сервисы, например MongoDB Atlas или Redis вашего облака. Пропустите эту страницу и укажите их в
OVERLEAF_MONGO_URL и OVERLEAF_REDIS_HOST на шаге 4.1
MongoDB
10-mongo.yaml
PRIMARY, а остальные — SECONDARY. Job повторяет попытки, пока все участники не ответят, поэтому несколько неудачных подов Job — это нормально.- Headless Service требует
publishNotReadyAddresses: true: участники должны находить друг друга по имени ещё до того, как набор реплик будет создан. - Участники добавляются по своим стабильным именам (
mongo-0.mongo.overleaf.svc.cluster.local), а не по IP-адресам подов, которые меняются при каждом перезапуске. - Для одного участника задайте
replicas: 1и оставьте в Job толькоmongo-0.
2
Redis
20-redis.yaml
Вопросы и ответы
MongoDB 8 падает при запуске на новом ядре. Почему?
MongoDB 8 падает при запуске на новом ядре. Почему?
Ответ: MongoDB 8 не работает на ядре Linux 6.19 и новее (SERVER-121912). Раскомментируйте переменную окружения
GLIBC_TUNABLES в 10-mongo.yaml.Сколько памяти нужно MongoDB?
Сколько памяти нужно MongoDB?
Ответ: По умолчанию MongoDB использует для кэша половину памяти узла минус 1 ГБ, причём видит память узла, а не лимит пода. Задайте
--wiredTigerCacheSizeGB в соответствии с вашими узлами; значение 0.25 удерживало каждого участника на уровне примерно 200–260 МиБ на наших тестовых узлах с 4 ГБ.
