[英]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.