5

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

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

  1. CoreOS + 舰队 + Docker;或者

  2. Mesos + 马拉松 + 码头工人

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

当运行 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

4

2 回答 2

5

发布问题后,我很幸运,遇到了一些已实现我所寻找的存储库:

雷迪斯

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

Percona/Galera 集群

开箱即用的 docker 镜像 - https://github.com/paulczar/docker-percona_galera

于 2014-12-16T13:07:40.683 回答
0

您可以使用 CoreOS(或任何其他可以运行 Docker 的平台)和 Kubernetes 与SkyDNS 集成,这样您就可以获取主服务器的 IP 地址。Kubernetes 还带有一个代理 (用于服务发现),它在你的 pod 中设置环境变量。您可以在运行时访问它们。我认为最好的方法(也是您需要采用的方法)是使用像 SkyDNS 或类似的服务发现工具。是一个简单的 Kubernetes 示例。

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

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

于 2014-12-16T10:10:54.713 回答