Архитектура Docker Swarm с постоянным хранилищем

У меня небольшие проблемы с определением того, как именно я хочу построить свой кластер Docker Swarm. В настоящее время он состоит из:

  • 1 MariaDB, которая должна иметь постоянное хранилище, подходящее для базы данных.

  • 2 x серверов MediaWiki, которым потребуется постоянное хранилище, подходящее для хранения изображений, видео и других медиафайлов.

  • Какой-то вход, который сопоставит доменное имя с каждым из серверов MediaWiki на основе доменного имени.

Я мог бы сделать некоторые отзывы о возможных способах построения архитектуры. В идеале я бы хотел, чтобы все три сервера содержали экземпляры приложения MediaWiki или, возможно, 2 сервера и 1 выделенный хост-сервер для базы данных. Одно приложение MediaWiki получает примерно в 20 раз больше трафика, чем другое, поэтому будет лучше работать на нескольких машинах.

Моя проблема заключается в попытке сохранить данные между развертываниями. В настоящее время я рассматриваю что-то вроде CephFS с блочным хранилищем, смонтированным на одном главном хосте, и двух подчиненных экземплярах, реплицирующихся с него.

Я также еще не исследовал входной компонент, но предполагаю, что могу настроить какой-то сервер Nginx, в идеале с включенным Lets Encrypt, который будет проксировать трафик на любое из имен хостов MediaWiki в зависимости от имени входящего домена, однако это может быть наивным предположением.

2
задан 14 October 2017 в 06:33
1 ответ

Вы переборщили с ceph для хранения изображений. Вы обречены на провал.

Запустите все это в роуминге, но храните свои носители в блочном хранилище, например AWS S3. Если вы не используете поставщика с чем-то вроде S3, посмотрите

https://minio.io/

Его API, совместимый с S3. Преимущество состоит в том, что большинство основных программ имеют опции для S3.

1
ответ дан 3 December 2019 в 12:34