у меня есть 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.