Я использую службу контейнеров Azure с оркестратором Kubernetes, и у меня развернуто приложение в кластере с 3 узлами. Имеет 5 реплик. Как я могу проверить балансировку нагрузки в действии, например Я хочу видеть, что каждый раз, когда я попадаю на внешний IP-адрес, меня перенаправляют, возможно, на другой узел. Спасибо.
Проверка балансировки нагрузки службы контейнеров Azure
Ответы (1)
Самое простое решение - подключиться (например, по ssh) к 3 узлам и запустить там WinDump. Чтобы все работало правильно, вы сможете увидеть, что происходит на каждом узле.
Также здесь представлена документация Microsoft по тестированию балансировщика нагрузки: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/tutorial-load-balancer#test-load-balancer
Балансировщик нагрузки по умолчанию, доступный для ваших ролей Windows Azure Web и Worker, является программным балансировщиком нагрузки, и его не так много настраивать, однако они работают в настройке циклического перебора. Если вы хотите проверить это поведение, вам нужно сделать следующее:
- Создайте два (или более) экземпляра вашей службы с включенным доступом RDP, чтобы вы могли использовать RDP для обоих экземпляров.
- RDP к вашим обоим экземплярам и запускать в нем NETMON или любое решение для мониторинга сети.
- Теперь получите доступ к веб-приложению Windows Azure со своего рабочего стола. Вы должны понимать, что когда сетевое соединение выполняется с вашего рабочего стола, соединение все еще активно в зависимости от сетевых настроек (по умолчанию 60 секунд), поэтому вам нужно подождать, пока для доступа не пройдет тайм-аут по умолчанию. ваше веб-приложение Windows Azure снова.
- Когда вы снова получите доступ к своему веб-приложению Windows Azure, вы можете проверить, сколько секунд запрос перешел к следующему экземпляру. Обязательно передайте тайм-аут соединения, иначе ваш запрос будет обрабатываться тем же экземпляром.
Примечание. Если вы не хотите использовать RDP, вы также можете создать тестовую страницу ASP.NET, чтобы написать специальный код на основе вашего конкретного экземпляра, который покажет вам, что эта страница относится к определенному экземпляру. Лучше всего прочитать идентификатор экземпляра, как показано ниже:
int instanceID = RoleEnvironment.CurrentRoleInstance.Id;
Если вы хотите иметь больший контроль над балансировкой нагрузки Windows Azure, я бы предложил использовать диспетчер трафика Windows Azure, который поможет вам направлять трафик на ваш сайт с помощью циклического перебора, сценария производительности или резервного копирования. Дополнительную информацию об использовании Traffis Manager можно найти в этой статье.