Существует ли политика балансировки нагрузки, которая перенаправляет запросы в одну и ту же конечную точку путем распознавания IP-адресов в kubernetes?

Моя фактическая конфигурация следующая: я использую RKE для создания своего кластера. Я использую серверы AWS в качестве узлов в своих кластерах. У меня есть кластер из 3 узлов и 3 модулей (1 на узел), развернутый как statefulSet, и балансировщик нагрузки с этими 3 модулями в качестве конечных точек. Этот StatefulSet выполняет проверку готовности, и тогда иногда модули не готовы.

Я пытаюсь создать балансировщик нагрузки со следующей политикой:

Балансировщик нагрузки получает запрос от IP-адреса A, он перенаправляет его на конечную точку X.

Балансировщик нагрузки получает новый запрос от IP-адреса A, он перенаправляет его на ту же конечную точку X.

Балансировщик нагрузки получает запрос от IP-адреса B, он перенаправляет его на конечную точку Y.

Балансировщик нагрузки получает запрос от IP-адреса A, но конечная точка X не готова из-за сбоя теста готовности, поэтому он перенаправляет запрос в конечную точку Y.

1 ответ

Решение

Я думаю, что большинство балансировщиков нагрузки должно быть в состоянии выполнить эту задачу. Например, в AWS ELB есть атрибут group, который разрешает липкие сеансы (сеанс, который связывает IP-адрес с конкретным сервером).

Если вы используете alb-ingress-controller (например) для создания балансировщика нагрузки из Kubernetes на основе входа в Kubernetes, вы можете прикрепить следующую метку к alb-ingress-controller для определения липких сессий: alb.ingress.kubernetes.io/target-group-attributes: stickiness.enabled=true,stickiness.lb_cookie.duration_seconds=60,

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

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