我在高负载下提供数据时遇到问题,如果特定部署的总rps超过一定数量,我想返回503。我在玩他们的速率限制,但每个客户的限制。
谢谢!
我会尝试更简单的方法是限制该部署的资源(CPU和内存)。您还可以为该服务分离入口控制器,并为其限制资源。
可替换地服务目提供更多的自定义,例如istio
提供ConnectionPoolSettings为DestinationRule
可充当类似目的的对象。
此外,流量整形还有一个实验功能,该功能可能会有所帮助,但需要更新您的CNI配置。
供参考:@Dylan指出limit_req_zone Nginx配置也可以用于$host
实现此目的。为了做到这一点,(1)更新您的nginx入口控制器配置映射并添加http-snippet
data:
http-snippet: |
limit_req_zone $host zone=queue:10m rate=1r/s;
您可能必须重新启动控制器容器才能采用新配置。(2)使用以下命令将配置应用于Ingress configuration-snippet
:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
limit_req zone=queue burst=12 delay=8;
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句