使用 Marathon 在 Mesos 上部署 Mysql

Deploying Mysql on Mesos using Marathon

我有一个 mesos 集群,其中包含 marathon 和 docker 中的所有内容 运行。我想部署生产 mysql 和 mongodb 服务器,并且正在尝试找出进行服务发现的最佳方法。

选项 1 是使用现有设置,它通过位于其中一个主服务器上的 haproxy 服务器代理所有内容。我对此的问题是每个查询都必须进行两次跳跃,从应用程序机器到主计算机再到数据库机器,即使查询起源于数据库所在的机器。这真的很重要还是我学究气?

选项 2 是使用我已经设置但从未使用过的 mesos dns。这将需要 运行 主机网络模式下的 mysql docker 映像,或者将 3306 添加到 mesos 从站可以提供的端口,然后立即声明 3306。然后我将能够使用 mysql.marathon.mesos 作为任何连接的主机。

选项 3 是在每台机器上部署相同的 haproxy 服务器,并使用应用程序的本地 haproxy 将查询发送到正确的位置。这似乎比选项 1 好一点,因为第一个跃点总是在同一台机器上,但需要做更多的工作来设置。

以前有人做过吗?这些类型的服务的正确模式是什么?

您的选项 2,使用具有静态端口预留的 Mesos-DNS,可能是最安全(也是最保守)的选项。

展望未来,我建议也关注 Mysos(Mesos 上的 MySQL)。

我会和 consul 一起去发现服务,你也有 marathon-consul 效果很好。

一旦服务健康,它将在 consul DNS 中作为服务公开。

你的困难是如果你想做一个galera/percona集群。