在大多数教程、演示和演示中,只提供无状态服务,这些服务通过dns(skydns、skydock等)或反向代理(如haproxy或vulcand)进行负载平衡,后者配置了etcd或zookeeper。
部署mariadb和redis集群的最佳实践是:
科雷奥斯+舰队+ Docker ;或
迈索斯+马拉松+ 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
2条答案
按热度按时间efzxgjgh1#
在发布了这个问题之后,我很幸运,遇到了一些实现了我所寻找的目标的存储库:
redis公司
https://github.com/mdevilliers/docker-rediscluster -具有两个redis示例和三个redis sentinel监视器的redis集群。如果主人失败了,哨兵会把奴隶提升为主人。mark还创建了一个项目,将haproxy配置为使用升级的主控形状-https://github.com/mdevilliers/redishappy
percona/galera群
开箱即用的 Docker 形象-https://github.com/paulczar/docker-percona_galera
pcww981p2#
您可以使用coreos(或者docker可以运行的任何其他平台)和kubernetes与skydns集成这将允许您获取主机的ip地址。kubernetes还提供了一个代理(用于服务发现),用于在pods中设置环境变量。您可以在运行时访问它们。我认为最好的方法(你也需要这样做)是使用一个服务发现工具,比如skydns或者类似的东西。下面是一个简单的kubernetes示例。
你也可以用快速和侧踢来做到这一点,但我认为库贝伦特斯做一些事情对你来说更容易一点,使用起来更好。只是设置起来有点棘手:)
到目前为止,我还没有使用mesos和marathon,但我认为他们也应该这样做。他们(https://github.com/mesosphere/marathon#features)拥有设置集群所需的所有工具。