Как Azure VMSS обрабатывает существующий запрос при уменьшении или увеличении масштаба?

У меня есть VMSS с количеством экземпляров, скажем 3. Допустим, я указал, что если загрузка ЦП составляет <20%, то уменьшите экземпляр с 3 до 1. Предположим, что эти 3 экземпляра обслуживали некоторый запрос, и скажем, каждый запрос занимает 60 секунд. .

Предположим, что в этот момент загрузка ЦП достигла 15%, поэтому количество экземпляров должно уменьшиться на 2. Итак, в этот момент что произойдет с существующим запросом, который обслуживается двумя другими экземплярами. Переносят ли эти экземпляры свой текущий процесс на другой, или счетчик не будет уменьшаться до тех пор, пока они не завершат текущий запрос?

Я уже подключил масштабируемый набор к шлюзу приложений и включил слив соединения, чтобы текущий процесс не прерывался. Но он падает. Поскольку это не удается, я пытаюсь что-то сделать, используя версию и версию управления API.

Ожидание: после того, как происходит уменьшение / масштабирование, текущие запросы не должны падать.


person Roushan    schedule 04.02.2019    source источник
comment
Как вы решили проблему? Не могли бы вы также рассказать мне, как подключить VMSS к шлюзу приложений. У меня здесь упоминаются проблемы (reddit.com/r/AZURE/comments/ cfjnn6 /)   -  person lambad    schedule 21.07.2019


Ответы (1)


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

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

person Sam Cogan    schedule 04.02.2019
comment
Большое спасибо, мистер Сэм, за ваш ценный комментарий. Не могли бы вы помочь мне найти любой другой обходной путь / идею для достижения нулевого времени простоя приложения, кроме реализации Kubernetes (контейнеризация). - person Roushan; 05.02.2019
comment
Создайте свое приложение, чтобы повторять запросы, если они терпят неудачу. - person Sam Cogan; 05.02.2019
comment
Есть уведомление о завершении, которое может быть получено с помощью метаданных экземпляра localhost curl. Это новая функция: azure.microsoft.com/en-us/blog/ - person Dmitry Shmakov; 08.07.2020