Почему эта аннотация ewma отличается?

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

Annotations:       nginx.ingress.kubernetes.io/load-balance: ewma

В то время, когда клиент запросил услугу у главного узла, он получил запрос идеально, что означает, что клиент получил разные ответы от разных модулей и от разных узлов агента внутри моего кластера.

но когда я изменил аннотацию на эту аннотацию

nginx.ingress.kubernetes.io/upstream-hash-by: "ewma"

клиент каждый раз получал один и тот же ответ от одного и того же модуля и от одного и того же узла, даже если я запрашиваю услугу 5 раз в секунду в течение более 30 минут. они правильно реализованы? а почему они разные?

Можете ли вы улучшить свой вопрос? "клиент получил запрос", "клиент получил тот же ответ" - вы уверены, что это клиент в обоих случаях? «но когда я перейду на эту аннотацию» - это не та же аннотация. Они разные. Пожалуйста, предоставьте все аннотации для первого случая с ожидаемым результатом, затем то же самое для второго случая. Сейчас трудно понять проблему, с которой вы столкнулись.

Andrew Skorkin 28.03.2022 17:59

пожалуйста, проверьте мое обновление

rthamrin 30.03.2022 02:33

Привет @rthamrin На основе документы: load-balance используйте метод Peak EWMA для маршрутизации, а upstream-hash-by баланс нагрузки с использованием последовательного хеширования IP или других переменных. Таким образом, это ожидаемое поведение. Вы можете посмотреть эту статью Kubernetes Nginx Ingress: балансировщик нагрузки с согласованным подмножеством хэшей, чтобы получить больше информации. Еще раз укажите ожидаемый результат.

Andrew Skorkin 31.03.2022 14:07

Спасибо чувак! Я прочитаю это. Мои ожидаемые результаты — узлы, получающие одинаковые запросы от клиентов (балансировка нагрузки), в то же время сохраняя ресурсы машины.

rthamrin 31.03.2022 14:43

Хорошо, а для этой цели, я думаю, вам подойдет только первая аннотация nginx.ingress.kubernetes.io/load-balance: ewma.

Andrew Skorkin 01.04.2022 10:52

Привет @rthamrin Есть новости с твоей стороны?

Andrew Skorkin 06.04.2022 17:07

Вместо этого я использую пик ewma с этой аннотацией nginx.ingress.kubernetes.io/load-balance: ewma.

rthamrin 08.04.2022 03:37
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
0
7
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это вики-ответ сообщества, опубликованный для лучшей видимости. Не стесняйтесь расширять его.

Первопричина:

Узлы должны получать равные запросы от клиентов (балансировка нагрузки) и при этом экономить ресурсы машины.

В связи с этим необходимо найти лучшее решение между приведенными ниже аннотациями (на основе вопроса):

nginx.ingress.kubernetes.io/load-balance: ewma

и

nginx.ingress.kubernetes.io/upstream-hash-by: ewma

Решение:

Использование аннотации nginx.ingress.kubernetes.io/load-balance: ewma является предпочтительным решением для указанной цели.

На основе документы: load-balance используйте метод Peak EWMA для маршрутизации. В отличие от upstream-hash-by, который балансирует нагрузку с использованием последовательного хеширования IP или других переменных и обеспечивает подключение к одному и тому же модулю.

Дополнительные сведения см. в этой статье Kubernetes Nginx Ingress: балансировщик нагрузки с согласованным подмножеством хэшей.

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

rthamrin 09.04.2022 02:29

Другие вопросы по теме