Существует ли политика балансировки нагрузки, которая перенаправляет запросы в одну и ту же конечную точку путем распознавания 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
,
Я бы подтвердил ваши другие требования в отношении балансировщика нагрузки, так как я думаю, что большинство известных балансировщиков нагрузки должны иметь эту возможность.