【问题标题】:Load balancing by HAProxy on coreos cluster通过 HAProxy 在 coreos 集群上进行负载平衡
【发布时间】:2015-09-21 18:38:14
【问题描述】:

尝试在 CoreOS(容错集群)上使用 HAProxy 进行简单的负载平衡。这是场景 1)两个CoreOs实例集群 2) 一个 CoreOS 实例(比如 41.100.51.011)有 1 个 HA 代理和 2 个 NodeJs 容器。所以总共 3 个 Docker 容器 3) 这是容错方案,因此如果一个实例发生故障,服务将在集群 CoreOs 实例 (41.100.51.001) 中启动 4) 现在在 DNS 服务器上,如果 abc.com 映射到 41.100.51.011 或 41.100.51.001,那么正确的映射会是什么 5)假设 abc.com 映射到第一个,这会发生故障并且服务开始在第二个实例上运行,用户将如何访问该站点。由于 DNS 服务器仍将指向旧 IP 6)如何将DNS服务器设置更改为第二个CoreOS实例,以防它关闭并且服务开始运行到另一个实例? 7)我们是否有其他解决方案,或者我没有做对

【问题讨论】:

    标签: load containers haproxy coreos


    【解决方案1】:

    您需要的基本事件是容器生成或终止。此信息位于 coreos 使用的 etcd 数据库中。有一种称为“watch”的机制,它可以让你根据 etcd 中的信息变化来做一些事情。下面是两个例子。

    您可以结合使用etcdskydnsregistrator 来为容器提供dns。基本概念是,随着容器的诞生和消亡,数据库(etcd)由注册器更新,包括 IP 地址和服务类型。 etcd中的信息被skydns用来服务dns。

    haproxy 有一个不同的问题,但是...您必须在静态配置文件中配置带有服务器的 haproxy.cfg 文件。因此,当容器更改时,haproxy.cfg 文件会更新并重新加载。关于如何做到这一点有一篇很好的文章Between reality and cyberspace

    当然,如果您想为入口点冗余启动多个 haproxy 并为服务冗余启动多个容器,则需要将这两种技术结合起来。

    -g

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多