Chúng tôi đang gặp sự cố rất lạ khi sử dụng Azure Loadbancer với AKS.
Chúng tôi có một trang web chấp nhận các kết nối WebSocket. điều này đi từ máy khách đến AZ Loadbalancer và vào chính trang web bên trong AKS.
Trong ứng dụng thử nghiệm căng thẳng của chúng tôi, chúng tôi tạo ra 10 nghìn kết nối websocket. tất cả chúng đều kết nối.
Nếu sau đó chúng tôi dừng các kết nối một cách không duyên dáng, thì chúng tôi sẽ thấy sự sụt giảm kết nối ban đầu giữa bộ cân bằng tải và trang web.
Nhưng .. sau đó nó sẽ tồn tại với một số kết nối ngẫu nhiên trong khoảng 15-20 phút trước khi tất cả các kết nối biến mất.
như vậy:
(Biểu đồ là luồng vào Loadbalancer với các sự kiện ứng dụng thử nghiệm được vẽ trên đó)
Thay vào đó, nếu chúng tôi chạy ứng dụng kiểm tra tải trên chính trang web, bỏ qua AZ Loadbalancer, thì tất cả sẽ hoạt động như mong đợi. tắt ứng dụng thử nghiệm sẽ làm mất tất cả các kết nối trong trang web ngay lập tức.
Azure Loadbalancer không có nhiều cài đặt như vậy, chúng tôi đã thử cả hai với Sticky-sessions: None và Client IP, cùng một hành vi
Chúng tôi cũng đã xác minh rằng không có kết nối máy khách ẩn nào từ máy ứng dụng thử nghiệm. vô hiệu hóa hoàn toàn mạng, vì vậy đó không phải là vấn đề.
Theo nghĩa đó, chúng tôi không cần kết nối lại các ổ cắm. Máy khách chỉ có thể thực hiện kết nối lại đầy đủ nếu bị ngắt kết nối.
Ấn tượng của chúng tôi là bộ cân bằng tải cố gắng thông minh bằng cách nào đó, trong trường hợp một kết nối có thể kết nối lại sau đó.
Nếu đó là trường hợp, nó có thể bị vô hiệu hóa bằng cách nào đó?
Mọi lời khuyên về những gì chúng ta nên thử đều được hoan nghênh