我已经配置了一个2节点的docker swarm,管理节点pi-manager
和一个工作节点pi-worker
在2个运行Raspbian的Raspberry Pi 3 Model 3 B的堆栈上。我创建了一个图像,在本地主机上运行helloworld类型的网页,该网页还标识运行页面的容器。例如:docker swarm的负载均衡
从我可以创建服务“flairhello”,然后将其扩展到2个continers泊坞窗管理器节点(我们称他们为A和B)。
预期的行为:
我希望得到的行为是,当我访问的每个本地主机,我会得到的网页显示该主机上运行的容器ID。例如,如果pi-manager
具有容器A
和pi-worker
具有容器B
。当我访问localhost地址pi-manager
我期望看到的容器ID为A
,当我访问本地主机地址pi-worker
我期望看到的B
的容器ID。这不是正在发生的事情。
当前的行为:
我遇到的问题是,对于一定的时间,如果我去拜访在任pi-manager
或pi-worker
本地主机,我引导到容器A
的网页,然后在接下来的部分时间无论哪个本地主机(pi-manager
或pi-worker
)我访问我总是定向到Container B
。我想这是Docker swarm的内置负载平衡?
问题:
如何使用负载平衡器来得到我的群我想要的行为?
我必须使用哪些工具? Docker组合? Haproxy图像? (看到这些从阅读此提到
是否有这个过程的任何好的教程
更新:?!
步骤,我的回答如下,以创建HAProxy的网络负载平衡器
林开发这个项目作为一个类的实例,以显示负载平衡,这样,当我去到主网页的流量重定向到两个不同的容器在'pi-manager'和'pi-worker'上运行。因此,如果刷新页面,则容器地址不同,您可以说明负载平衡功能。 Nginx或HaProxy可能吗? Thakk你为我的例子,我看到它是一个粘性连接它究竟是如何工作? – ob1
你认为我可以将这个码头文件转换为ARM架构吗? – ob1
如果容器上没有正在运行的Web服务,我仍然会被重定向到运行该服务的节点? – ob1