如何在traefik实例之间共享速率限制状态?

时间:2018-05-03 01:28:08

标签: kubernetes ddos traefik

我的公司运行带有6个节点的kubernetes设置,并将traefik 1.6作为DaemonSet部署到生产中的每个节点。每个traefik实例从AWS ALB接收端口80上的传入(ssl终止)请求,并将它们转发到各个pod。

在我们的后端发生了相当严重的DDoS攻击之后,我们启用了traefiks速率限制功能,以防止请求进入实际的pod。

由于我们运行了多个不相互识别的traefik实例,因此用户感知的速率限制比在traefik配置中设置的速率限制高1到6倍,因为请求随机命中6个traefik实例中的一个。这使得无法设置精确限制,我们无法依赖AWS ALB粘性会话设置来确保客户端每次都在同一个框中,因为攻击者可以省略cookie。

使用部署而不是守护进程的单个traefik实例不是一个很好的解决方案。对于每个请求,从接受请求的节点到traefik实例,需要在节点之间进行额外的跳转。实例将在不同节点上运行的6个请求中的5个。

有没有办法在每个节点上的traefik守护进程之间共享速率限制状态?

0 个答案:

没有答案