Мы наблюдаем очень странную проблему при использовании Azure Loadbancer с AKS.
У нас есть веб-сайт, который принимает соединения WebSocket. это идет от клиента к AZ Loadbalancer и к самому веб-сайту внутри AKS.
В нашем приложении для стресс-тестирования мы создаем 10 000 подключений к веб-сокетам. они все соединяются.
Если мы затем не изящно остановим соединения, то мы увидим первоначальный разрыв соединений между балансировщиком нагрузки и веб-сайтом.
Но ... затем он остается со случайным количеством подключений примерно на 15-20 минут, прежде чем все подключения исчезнут.
вот так:
(График представляет собой входящий поток Loadbalancer с нарисованными на нем событиями тестового приложения)
Если вместо этого мы запустим нагрузочное тестовое приложение для самого веб-сайта, минуя AZ Loadbalancer, все будет работать, как и ожидалось. уничтожение тестового приложения мгновенно обрывает все соединения на веб-сайте.
У Azure Loadbalancer не так много настроек, мы пробовали и с Sticky-sessions: None, и с IP-адресом клиента, такое же поведение.
Мы также проверили отсутствие скрытых клиентских подключений к тестовому компьютеру с приложением. полностью отключить сеть, так что это не проблема.
В этом смысле нам не нужно повторно подключать сокеты. Клиент может просто выполнить полное переподключение, если он отключен.
У нас сложилось впечатление, что балансировщик нагрузки пытается каким-то образом схитрить на случай, если подключение может быть восстановлено позже.
Если это так, то можно ли это как-то отключить?
Любые советы о том, что мы должны попробовать, приветствуются