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

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

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

  1. CoreOS +机群+ Docker; 要么

  2. Mesos + Marathon + Docker

  3. 任何其他集群pipe理解决scheme

当运行Master的主机可能更改时,如何configurationRedis群集和MariaDB群集(Galera)?

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

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

发布这个问题后,我很幸运,遇到了一些已经达到我所期望的存储库:

Redis的

https://github.com/mdevilliers/docker-rediscluster – 具有两个Redis实例和三个Redis Sentinel监视器的Redis群集。 如果师父失败了,哨兵就把奴隶作为一个主人。 Mark还创build了一个项目,将HAProxyconfiguration为使用升级的主站 – https://github.com/mdevilliers/redishappy

Percona / Galera集群

一个开箱即用的docker工人图片 – https://github.com/paulczar/docker-percona_galera

你可以使用CoreOS(或Docker可以运行的任何其他平台)和Kubernetes与SkyDNS集成,这将允许您获取主站的IP地址。 此外,Kubernetes还提供了一个代理服务(用于服务发现),用于在您的容器中设置环境variables。 你可以在运行时访问它们。 我认为最好的方式(和你需要去的方法)是使用像SkyDNS或类似的服务发现工具。 这是一个简单的Kubernetes例子。

你也可以通过舰队和侧踢来做到这一点,但是我认为Kuberentes对你来说有些轻松些,而且更好用。 设置它只是有点棘手:)

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