我在确定如何构建 Docker Swarm 集群时遇到了一些麻烦。目前它包括:
1 MariaDB 需要具有适合数据库的持久存储。
2 个 MediaWiki 服务器需要具有适合存储图像、视频和其他媒体文件的持久存储。
某种入口将根据域名将域名映射到每个 MediaWiki 服务器。
我可以就可能的架构方式提供一些反馈。理想情况下,我希望所有三台服务器都包含 MediaWiki 应用程序的实例,或者可能是 2 台服务器和 1 台专用数据库主机服务器。一个 MediaWiki 应用程序接收的流量是另一个的 20 倍左右,因此在多台机器上运行会很有利。
我遇到的问题是尝试在部署之间保留数据。我目前正在考虑使用 CephFS 之类的东西,将块存储安装到一个掌握主机和两个从该主机复制的从属实例。
我还没有探索过入口组件,但我假设我可以配置某种 Nginx 服务器,最好启用 Lets Encrypt,它将根据传入的域名将流量代理到任一 MediaWiki 主机名,但这可能是一个天真的假设。
答案1
您使用 ceph 存储图像的方式已经超出了极限。您注定会失败。
在 Swarm 中运行所有内容,但将媒体存储在块存储(例如 AWS S3)上。如果您不使用 S3 之类的提供商,那么请查看
它的 API 与 S3 兼容。好处是大多数主流软件都有适用于 S3 的选项。