Observăm o problemă foarte ciudată folosind Azure Loadbancer cu AKS.
Avem un site web care acceptă conexiuni WebSocket. aceasta trece de la client la AZ Loadbalancer și în site-ul propriu-zis din AKS.
În aplicația noastră de test de stres, generăm 10.000 conexiuni websocket. toate se conectează.
Dacă apoi oprim conexiunile fără grație, atunci vedem o scădere inițială a conexiunilor între loadbalancer și site-ul web.
Dar... apoi rămâne cu un număr aleator de conexiuni timp de aproximativ 15-20 de minute înainte ca toate conexiunile să dispară.
ca astfel:
(Graficul este fluxul de intrare Loadbalancer cu evenimentele aplicației de testare desenate pe acesta)
Dacă, în schimb, rulăm aplicația de testare a încărcării pe site-ul propriu-zis, ocolind AZ Loadbalancer, totul funcționează conform așteptărilor. uciderea aplicației de testare elimină instantaneu toate conexiunile de pe site.
Azure Loadbalancer nu are atât de multe setări, le-am încercat pe ambele cu Sticky-sessions: None și Client IP, același comportament
De asemenea, am verificat că nu există conexiuni client ascunse de la mașina aplicației de testare. dezactivarea completă a rețelei, deci nu aceasta este problema.
Nu avem nevoie de reconectarea prizelor în acest sens. Clientul poate face doar o reconectare completă dacă este deconectat.
Impresia noastră este că echilibratorul de încărcare încearcă să fie inteligent cumva, în cazul în care o conexiune s-ar putea reconecta mai târziu.
Dacă acesta este cazul, poate fi dezactivat cumva?
Orice sfat despre ceea ce ar trebui să încercăm este binevenit