如何在Mesos或CoreOS中configurationMariaDB和Redis的高可用性群集
在大多数教程,演示和演示中,只提供通过DNS(SkyDNS,skydock等)或通过反向代理(例如configuration了etcd或ZooKeeper的HAproxy或Vulcand)进行负载平衡的无状态服务。
是否有使用以下方法部署MariaDB和Redis集群的最佳做法:
-
CoreOS +机群+ Docker; 要么
-
Mesos + Marathon + Docker
-
任何其他集群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 )有你需要设置你的群集的所有工具。
- docker上的马拉松容器没有完成
- 马拉松在摧毁工作后不会删除docker集装箱
- put_archive与python马拉松docker应用程序?
- 如何configurationMarathon-lb负载均衡在HOSTnetworking中启动的服务?
- 如何在Marathon Docker参数中使用variables
- Docker部署在Marathon上失败,否则工作正常
- Mesos-Marathondocker工人
- 在Mesos群集上设置Mesos-DNS dockerized
- 当使用mesos,marathon和zookeeper时,我使用“docker,mesos”指定“containerizers”文件时,我的mesos-slave不会启动?