簡體   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