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