【发布时间】:2021-06-07 15:56:43
【问题描述】:
我将全局 http(s) 负载平衡器用于在 Kubernetes 集群上运行的后端服务。我没有找到任何关于如何限制一个时间窗口内来自一个 IP 的请求数量的信息。有Cloud Armor,但也可以执行简单的IP, region, and header based 访问。您能否分享一下我如何在谷歌云上对全局 http 负载均衡器执行基于 IP 的速率限制,以防御 DoS 攻击。
编辑:
在 Kubernetes 集群上运行的后端服务是一个带有 Web 界面的 symfony 服务器。我想为服务器使用 Cloud CDN,因此我必须使用 gce ingress 而不是 ingress-nginx。在谷歌云上,gce ingress 创建一个global HTTP(s) load balancer,ingress-nginx 创建一个TCP load balancer。
在 nginx-ingress 中,我可以简单地使用 nginx.ingress.kubernetes.io/limit-rps 注释,这有助于限制 http 请求的泛滥。我想在我的全局 HTTP(s) 负载均衡器上进行类似的配置。在当前设置中,我观察到大量的 http 请求被发送到负载均衡器,这些请求被转发到symfony 服务器,并且在某一时刻请求的延迟增加了。这使得liveness 探测对pod 失败。
【问题讨论】:
标签: google-cloud-platform google-compute-engine google-kubernetes-engine google-cloud-networking