Назад | Перейти на главную страницу

Внутренний балансировщик нагрузки Azure игнорирует вторую виртуальную машину

у меня есть 2 виртуальные машины Ubuntu в Azure (классические виртуальные машины на старой панели управления). Я создал оба в одной облачной службе. Я также создал конечную точку с балансировкой нагрузки 80 (public) к 80 (private) с обеими машинами, имеющими эту конечную точку, протокол HTTP и путь зонда /probe.

Когда я просматриваю IP-адрес облачной службы с запущенными обеими виртуальными машинами, я получаю ожидаемый ответ.

Если я закрываю ВМ 2 и оставляю ВМ 1 работающей, она все равно работает, но когда я закрываю ВМ 1 и покидаю ВМ 2, я получаю сбой подключения в браузере.

Я играл, и VM2 никогда не получает трафик, направленный на нее. В моем приложении есть конечная точка /probe который возвращает некэшируемый ответ состояния 200 для зондов Load Balancer. Я попробовал протестировать их на виртуальных машинах, позвонив

wget localhost/probe

Я пробовал это на обеих машинах и получаю правильный результат только тогда, когда работает VM1. Когда ВМ 1 выключена, и я запускаю эту команду на ВМ 2, она не может подключиться к адресу. Я думаю, что это проблема, но не могу понять, как ее исправить.

Обновить:

Я добавил журналы в приложения, и кажется, что они проверяют только первую виртуальную машину.

Мне пришлось добавить конечную точку со сбалансированной нагрузкой на обе виртуальные машины в панели управления Azure. Очень глупая ошибка.

Также каждая виртуальная машина должна иметь действующую конечную точку, для меня это было <address>/healthcheck. Все, что нужно этой конечной точке, это всегда возвращать non-cache-able response with status 200. Больше ничего не нужно, все остальное сделает внутренний балансировщик нагрузки Azure.