在大多数教程,演示文稿和演示中,只提供通过DNS(SkyDNS,skydock等)或通过反向代理(例如HAproxy或Vulcand,使用etcd或ZooKeeper配置)进行负载平衡的无状态服务。
使用以下方法部署MariaDB和Redis群集是否有最佳做法:
CoreOS + fleet + Docker;或
Mesos + Marathon + Docker
任何其他群集管理解决方案
当运行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
答案 0 :(得分:5)
发布问题后,我很幸运,遇到了一些已经达到我要求的存储库:
https://github.com/mdevilliers/docker-rediscluster - 具有两个Redis实例和三个Redis Sentinel监视器的Redis群集。如果大师失败,哨兵会将奴隶推广为大师。 Mark还创建了一个项目,用于配置HAProxy以使用提升的Master - https://github.com/mdevilliers/redishappy
开箱即用的工作泊坞窗图片 - 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)拥有您设置群集所需的所有工具。