2015-07-03 116 views
1

尝试在CoreOS(容错群集)上使用HAProxy进行简单的负载平衡。这里是场景 1)两个CoreOs实例聚集在一起 2)一个CoreOS实例(比如41.100.51.011)有1个HA代理和2个NodeJs容器。因此总共3个Docker容器 3)这是容错方案,所以如果一个(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)我们是否有其他解决方案或者我没有正确理解通过coreos群集上的HAProxy进行负载平衡

回答

1

您需要的基本事件是容器产卵或终止。这些信息位于coreos使用的etcd数据库中。有一种叫做'watch'的机制,它可以让你根据etcd中的信息变化做些事情。下面有两个例子。

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

虽然haproxy有一个不同的问题,但是...您必须在静态配置文件中将服务器配置为haproxy.cfg文件。所以,当容器改变haproxy.cfg文件被更新并重新加载时。有关如何做到这一点的好书写Between reality and cyberspace

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

-g