docker群模式覆盖networking包丢弃
情景如下
实现负载均衡的udp,syslog,跨两个服务
networking设备ip:192.168.10.1两个节点 – node-1 ip:192.168.20.245 – node-2 ip:192.168.20.246
CentOS内核4.14
群模式
在端口514(syslog)上运行有两个python应用程序的服务,没有端口转发,并在两个节点间使用“mode:global”和“endpoint_mode:dnsrr”集合和默认覆盖networking使用“可连接:真实“。
服务容器ip syslog-01.xxxx:10.0.9.2 syslog-02.xxxx:10.0.9.3
使用ipvs运行另一项服务,通过overlayNetwork跨上述两个服务来负载平衡syslog,使用docker-compose -f compose.yml up -d部署。 这附加到514上的端口转发上面的覆盖networking。
ipvs负载平衡如预期。 注意:udp的源ip不会改变,
问题:我可以看到使用tcpdump在容器NIC级别上收到的数据包,但应用程序无法看到它。 在容器syslog-01.xxxx上输出tcpdump
20:01:29.403268 IP 172.16.111.1.514 > 10.0.9.2.514: SYSLOG user.info, length: 60 Output of tcpdump on container syslog-01.xxxx 22:09:30.686667 IP 172.16.111.1.514 > 10.0.9.3.514: SYSLOG user.info, length: 66 Observation : No iptable filter table entry seen in container network name space and overlay name space and If generate syslog on ipvs container using python it get received on syslog-01 and syslog-02 containers
我认为数据包在运输途中的某个地方不能确定
请帮助请让我知道是否需要更多的信息先谢谢您