У меня есть несколько служб, которым динамически назначаются порты на моем рое (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
?Или, скорее, я что-то не так делаю?Почему внешний порт не указывает на проблемы с массовой синхронизацией?
(я не думаю, что это проблемы с брандмауэром)