Docker swarm forawrd请求只有一个节点

数字海洋云中有2台机器。 188.226.167.12,146.185.135.232。 我的应用程序显示主机的名称。

每个节点都包含我的服务的一个副本。 当我多次访问: http : //188.226.167.12 : 8080/或http://146.185.135.232:8080/时 ,主机名不会更改。

这意味着这些请求没有负载平衡。

泊坞窗,compose.yml:

version: "3" services: web: image: stavalfi/projecty:latest deploy: replicas: 2 restart_policy: condition: on-failure ports: - "8080:8080" networks: - webnet networks: webnet: 

我怎样才能为我的请求做一个负载平衡器?

RR负载均衡在作为覆盖networking的入口networking上运行。 对于覆盖networking,您需要打开三个端口:

  • 7946 / tcp(控制)
  • 7946 / udp(控制)
  • 4789 / udp(数据)

在封面上,这是Linux上的VXLAN。 如果在覆盖networking上启用IPSec,则还需要协议50.在iptables CLI中,如下所示:

 iptables -A INPUT -p tcp -m tcp --dport 7946 -j ACCEPT iptables -A INPUT -p tcp -m udp --dport 7946 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 4789 -j ACCEPT iptables -A INPUT -p 50 -j ACCEPT 

您可以进一步限制这些规则,只允许docker节点之间的连接。