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

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

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

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

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

wget localhost / probe

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

Обновление:

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

1
задан 11 November 2015 в 13:02
1 ответ

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

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

0
ответ дан 4 December 2019 в 06:53

Теги

Похожие вопросы