首页 文章

在核心集群上通过HAProxy进行负载均衡

提问于
浏览
1

尝试在CoreOS(容错集群)上使用HAProxy进行简单的负载 balancer . 下面是场景1)两个CoreOs实例是集群的2)一个CoreOS实例(比如41.100.51.011)有1个HA代理和2个NodeJ容器..所以总共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服务器设置已关闭且服务开始运行到另一个实例,如何将DNS服务器设置更改为第二个CoreOS实例? 7)我们是否有其他解决方案或我没有做对

1 回答

  • 1

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

    您可以使用etcdskydnsregistrator的组合为容器提供dns . 基本概念是,当容器诞生并死亡时,数据库(etcd)由registrator更新,包括ip地址和服务类型 . skydns使用etcd中的信息来服务dns .

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

    当然,如果要为入口点冗余启动多个haproxies,并为服务冗余启动多个容器,则需要两种技术的组合 .

    -G

相关问题