Azure, Контейнеры и горизонтальное масштабирование - PullRequest
0 голосов
/ 05 мая 2020

Я новичок в контейнерах и Kubernetes. Я провожу большую часть своих тестов в Azure.

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

Чтобы снизить затраты на запуск службы, мне интересно, можно ли уменьшить количество экземпляров контейнера до 0, сохраняя при этом возможность «разбудить» контейнер при запросах вот-вот войдут? Как я мог этого добиться?

Ответы [ 2 ]

0 голосов
/ 05 июля 2020

AKS внутренне использует горизонтальный автомат масштабирования модулей (HPA), который отслеживает потребность в ресурсах и автоматически масштабирует количество реплик. Кроме того, в зависимости от различных требований модулей, автоматическое масштабирование кластера kubernetes регулирует количество узлов в зависимости от требований к вычислительным ресурсам. для типичного развертывания микросервисов и ACI для обработки пакетных рабочих нагрузок, тем самым уменьшая проблемы в управлении масштабированием и обеспечивая эффективное использование модели посекундной стоимости использования.

Также, в случае, если требуется некоторое расширение В существующем приложении azure с сценариями использования на основе триггера события функции azure могут быть лучшим выбором. Здесь указанный c код (функция) должен вызываться только для указанного c события или триггера в соответствии с требованием, а экземпляры функции создаются, уничтожаются по запросу (вычисление по запросу - функция как услуга (FaaS)). Функция Azure позволяет избежать выделения дополнительных ресурсов (виртуальных машин), а также стоимость учитывается только тогда, когда функция обрабатывает работу. Решения могут объединять обе функции, так что функция Azure должна запускаться для минимальной обработки / принятия решений, а inturn может вызывать экземпляр контейнера Azure для определенной c пакетной обработки / полной обработки, что может иметь меньшую стоимость.

0 голосов
/ 05 мая 2020

Было много предложений, связанных с этой функциональностью, но ни одно из них не было включено в кубернеты.

Предложения бездействия / бездействия:

  1. https://github.com/kubernetes/kubernetes/pull/3247
  2. https://github.com/kubernetes/kubernetes/pull/29471
  3. https://github.com/kubernetes/kubernetes/issues/42255

Это сложная проблема, поскольку входящие запросы нужно будет поставить в очередь на время развертывания службы.

Если вы заинтересованы в реализации этой функции, похоже, что часть работы уже была сделана за вас, однако это не обязательно конец -to-end решение для вашего варианта использования: https://github.com/openshift/service-idler

Вот еще один проект, который обращается к аналогичным возможностям: https://github.com/deislabs/osiris

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...