У меня небольшие проблемы с определением того, как именно я хочу спроектировать свой кластер Docker Swarm. В настоящее время он состоит из:
1 MariaDB, для которой потребуется постоянное хранилище, подходящее для базы данных.
2 сервера MediaWiki, которые должны иметь постоянное хранилище, подходящее для хранения изображений, видео и других медиафайлов.
Какой-то вход, который будет отображать доменное имя на каждый из серверов MediaWiki на основе доменного имени.
Я мог бы поделиться некоторыми отзывами о возможных способах решения этой проблемы. В идеале я бы хотел, чтобы все три сервера содержали экземпляры приложения MediaWiki или, возможно, 2 сервера и 1 выделенный хост-сервер для базы данных. Одно приложение MediaWiki получает примерно в 20 раз больше трафика, чем другое, поэтому будет лучше работать на нескольких машинах.
Проблема, с которой я столкнулся, заключается в попытке сохранить данные между развертываниями. В настоящее время я рассматриваю что-то вроде CephFS с блочным хранилищем, смонтированным в одном мастер хост и два подчиненных экземпляра реплицируются с него.
Я также еще не исследовал входящий компонент, но предполагаю, что могу настроить какой-то сервер Nginx, в идеале с включенным Lets Encrypt, который будет проксировать трафик на любое из имен хостов MediaWiki в зависимости от имени входящего домена, однако это может быть наивное предположение.
Вы переборщили с ceph для хранения изображений. Вы обречены на провал в этом.
Запустите все это в рое, но храните мультимедиа в блочном хранилище, например, в AWS S3. Если вы не используете поставщика с чем-то вроде S3, изучите
Его API совместим с S3. Преимущество состоит в том, что у большинства основных программ есть опции для S3.