Моя компания запускает установку kubernetes с 6 узлами и traefik 1.6, развернутым как DaemonSet на каждом узле в производстве. Каждый экземпляр traefik принимает входящие (ssl-завершенные) запросы на порт 80 от AWS ALB и перенаправляет их на отдельные модули.
После довольно тяжелой DDoS-атаки на наш бэкэнд мы включили функцию ограничения скорости traefiks, чтобы предотвратить поступление запросов к действительным модулям.
Поскольку мы запускаем несколько экземпляров traefik, которые не знают друг друга, воспринимаемые пользователем пределы скорости в 1-6 раз выше, чем те, которые установлены в конфигурации traefik, поскольку запросы случайно попадают в один из 6 экземпляров traefik. , Из-за этого невозможно установить точные ограничения, и мы не можем полагаться на настройку закрепленного сеанса AWS ALB, чтобы клиенты каждый раз включали один и тот же ящик, поскольку злоумышленники могут просто пропустить cookie.
Использование одного экземпляра traefik с развертыванием вместо набора демонов не является хорошим решением. Для каждого запроса потребуется дополнительный переход между узлами, чтобы перейти от узла, принимающего запрос к экземпляру traefik. В 5 из 6 запросов этот экземпляр будет работать на другом узле.
Есть ли способ поделиться состоянием ограничения скорости между демонами traefik на каждом узле?