繁体   English   中英

Nginx-Ingress-Controller 限制部署的 rps 数量

[英]Nginx-Ingress-Controller limit number of rps to deployment

我在高负载下提供数据时遇到问题,如果特定部署的总 rps 超过一定数量,我想返回 503。 我正在玩他们的速率限制,但每个客户端都有限制。

谢谢!

我会尝试更简单的方法是限制该部署的资源(CPU 和内存)。 您还可以为该服务分离入口 controller 并限制该服务的资源。

或者,服务网格提供更多自定义,例如istio为可以服务于类似目的的DestinationRule对象提供ConnectionPoolSettings

此外,还有一个流量整形的实验性功能可能会有所帮助,但需要更新您的 CNI 配置。


供参考:@Dylan 发现limit_req_zone Nginx 配置也可以与$host一起使用来实现此目的。 为此,(1) 更新您的 nginx 入口 controller 配置 map 并添加http-snippet

data:
  http-snippet: |
    limit_req_zone $host zone=queue:10m rate=1r/s;

您可能需要重新启动 controller pod 以获取新配置。 (2) 使用configuration-snippet将配置应用到 Ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
      limit_req zone=queue burst=12 delay=8;
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM