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节点之间的连接。