【发布时间】:2018-01-03 14:24:54
【问题描述】:
我在运行 Raspbian 的 2 个 Raspberry Pi 3 Model 3 B 堆栈上配置了一个 2 节点 docker swarm,其中一个管理器节点 pi-manager 和一个工作器节点 pi-worker。我创建了一个图像,该图像在本地主机上运行 helloworld 类型的网页,该网页还标识了运行该页面的容器。示例:
我可以从 docker manager 节点创建服务“flairhello”,然后将其扩展为 2 个 continer(我们将它们称为 A 和 B)。
预期行为:
我期望得到的行为是,当我访问每个本地主机时,我会得到显示在该主机上运行的容器 ID 的网页。例如,如果pi-manager 有容器A 并且pi-worker 有容器B。当我访问pi-manager 的本地主机地址时,我希望看到A 的容器ID,当我访问pi-worker 的本地主机地址时,我希望看到B 的容器ID。这不是正在发生的事情。
当前行为:
我遇到的行为是,在一段时间内,如果我在pi-manager 或pi-worker 访问本地主机,我将被定向到容器A 的网页,然后在下一段时间没有无论我访问哪个本地主机(pi-manager 或pi-worker),我总是被定向到容器B。我猜这是 Docker swarm 内置的负载均衡?
问题:
如何使用负载均衡器从我的集群中获得我想要的行为?
我必须使用哪些工具?码头工人组成?代理图像? (在阅读本文时看到这些?
这个过程有什么好的教程吗?
更新:
在下面我的回答中使用 HAProxy 创建网络负载均衡器的步骤!
【问题讨论】:
标签: docker docker-compose load-balancing haproxy docker-swarm