答案 0 :(得分:7)
我建议你仔细看看vulcand,它是在coreos上运行的反向代理,用于在运行在coreos上的容器之间平衡http请求:
Vulcand是HTTP API管理和微服务的反向代理。 它的灵感来自Hystrix。
它使用Etcd作为配置后端,因此更改配置 在不重新启动服务的情况下立即生效。
https://coreos.com/blog/zero-downtime-frontend-deploys-vulcand/
一篇很好的博客文章,其中包括使用vulcand在docker容器之间实现负载平衡:
这个github repo有一些示例源代码,用于设置coreos,docker和vulcand:
答案 1 :(得分:1)
这有点晚了,但它与数字海洋教程教你在CoreOS入门教程中所做的非常类似:
您可以在一台计算机上运行HAProxy容器,并拥有运行后端服务器的任意数量的服务。然后你使用confd 在添加和删除后端服务器时动态构建配置文件。
这是我根据教程构建的HAProxy Service。我使用这些two service files将其与我的Webapp一起调用。
请注意我的webapp.service文件中的这一行:
ExecStartPost=/bin/bash -c 'etcdctl set /app/servers/%n "%n $(curl -sw "\n" http://169.254.169.254/metadata/v1/interfaces/private/0/ipv4/address):80"'
这会将要在HAProxy配置文件中使用的服务器位置添加到/app/servers/webapp.service。数字海洋教程通过“Sidekick”容器实现了这一目标,该容器可能更通用,但不易出错。