Ошибки Docker Swarm Networking: массовые ошибки синхронизации на динамических портах - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть несколько служб, которым динамически назначаются порты на моем рое (5 хостов Windows Server 2019, механизм докера 18.09.4, контейнеры Windows).Службы работают нормально, используя докеры динамически определяемые порты.Это c # dotnet core web apis.После некоторых проблем со стабильностью я заметил несколько записей журналов на хосте, напечатанных ниже:

1

массовая синхронизация с узлом # HASH # не удалось: не удалось отправить сообщение TCP во времяМассовая синхронизация: dial 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# я заметилследующее:

Службы с ** - publish # RANDOM_INT #: 80 * имеют запись PublishedPort в

Enpoint.Ports.PublishedPort #RANDOM_INT#
Enpoint.Spec.Ports.PublishedPort #RANDOM_INT#
Spec.EnpointSpec.Ports.PublishedPort #RANDOM_INT#

Службы с - publishАргумент 80 имеет запись ОпубликованоPort, определенную только в

Enpoint.Ports.PublishedPort  #Dynamic port entry here typically above 30000
Enpoint.Spec.Ports --? missing PublishedPort entry
Spec.EnpointSpec.Ports --? missing PublishedPort entry

Забыл ли DockerВы хотите установить свойство ОпубликованоPort в Enpoint.Spec.Ports и Spec.EnpointSpec.Ports?Или, скорее, я что-то не так делаю?Почему внешний порт не указывает на проблемы с массовой синхронизацией?

(я не думаю, что это проблемы с брандмауэром)

...