如何在Mesos或CoreOS中配置MariaDB和Redis的高可用性集群

时间:2014-12-16 09:44:34

标签: docker mariadb coreos mesos marathon

在大多数教程,演示文稿和演示中,只提供通过DNS(SkyDNS,skydock等)或通过反向代理(例如HAproxy或Vulcand,使用etcd或ZooKeeper配置)进行负载平衡的无状态服务。

使用以下方法部署MariaDB和Redis群集是否有最佳做法:

  1. CoreOS + fleet + Docker;或

  2. Mesos + Marathon + Docker

  3. 任何其他群集管理解决方案

  4. 当运行Master的主机可能发生变化时,如何配置Redis群集和MariaDB群集(Galera)?

    https://github.com/sheldonh/coreos-vagrant/tree/master/redis

    http://www.severalnines.com/blog/how-deploy-galera-cluster-mysql-using-docker-containers

2 个答案:

答案 0 :(得分:5)

发布问题后,我很幸运,遇到了一些已经达到我要求的存储库:

Redis的

https://github.com/mdevilliers/docker-rediscluster - 具有两个Redis实例和三个Redis Sentinel监视器的Redis群集。如果大师失败,哨兵会将奴隶推广为大师。 Mark还创建了一个项目,用于配置HAProxy以使用提升的Master - https://github.com/mdevilliers/redishappy

Percona / Galera集群

开箱即用的工作泊坞窗图片 - https://github.com/paulczar/docker-percona_galera

答案 1 :(得分:0)

您可以使用CoreOS(或Docker可以运行的任何其他平台)和Kubernetes SkyDNS integration这将允许您获取主服务器的IP地址。此外,Kubernetes附带proxy(用于服务发现),可在您的pod中设置环境变量。您可以在运行时访问它们。我认为最好的方式(以及你需要的方式)是使用SkyDNS之类的服务发现工具。 Here是一个简单的Kubernetes示例。

你也可以用舰队和侧踢来做到这一点,但我认为Kuberentes对你来说有点容易,并且更好用。设置起来有点棘手:)

到目前为止,我没有使用过Mesos和Marathon,但我认为他们也应该这样做。他们(https://github.com/mesosphere/marathon#features)拥有您设置群集所需的所有工具。