Docker Swarm网络错误:动态端口上的批量同步错误

时间:2019-04-02 10:54:34

标签: c# windows docker networking docker-swarm

我有几个服务是在我的集群上动态分配的端口(5个Windows Server 2019主机,Docker引擎18.09.4,Windows容器)。 使用docker动态定义的端口,服务运行良好。它们是c#dotnet核心Web API。遇到一些稳定性问题后,我注意到主机上打印了许多日志条目,如下所示:

1

  

批量同步到节点#HASH#失败:在以下期间无法发送TCP消息   批量同步:拨打tcp IPADDRESS:7946:输入/输出超时

2

  网络jgwdawmic573os5oxggov的

定期批量同步失败:批量   同步到节点#HASH#失败:批量期间无法发送TCP消息   同步:拨打tcp IPADDRESS:7946:输入/输出超时

3

  

批量同步到节点#NODEHASH#超时

当我在集群上为这些服务定义端口时,看不到这些错误。

docker service create --name=#servicename# --network=#overlay# `
   --publish #RANDOM_INT#:80 #imagename# ect....

在检查了这些服务的docker service inspect #SERVICE_NAME#服务定义之后,我注意到了以下几点:

带有**-发布#RANDOM_INT#:80 *参数的服务在

上有一个PublishedPort条目
Enpoint.Ports.PublishedPort #RANDOM_INT#
Enpoint.Spec.Ports.PublishedPort #RANDOM_INT#
Spec.EnpointSpec.Ports.PublishedPort #RANDOM_INT#

带有-publish 80 参数的服务仅在

中定义了PublishedPort条目
Enpoint.Ports.PublishedPort  #Dynamic port entry here typically above 30000
Enpoint.Spec.Ports --? missing PublishedPort entry
Spec.EnpointSpec.Ports --? missing PublishedPort entry

码头工人是否忘记在Enpoint.Spec.PortsSpec.EnpointSpec.Ports中设置 PublishedPort 属性? 或更可能是我做错了什么?为什么不指定外部端口会导致批量同步问题?

(我不认为这是防火墙问题)

0 个答案:

没有答案