中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

k8s~ingress限(xian)流機(ji)制

Ingress限流

限速的注解定義了對連接和傳輸速率的限制。這些可以用來減輕DDoS攻擊。它采用了 “漏斗” 算法實現限制。

主要參數

  • nginx.ingress.kubernetes.io/limit-connections
    單個IP地址允許的并(bing)發連接(jie)數。超出此(ci)限制時(shi),將返(fan)回503錯(cuo)誤(wu)。

  • nginx.ingress.kubernetes.io/limit-rps
    每秒(miao)從給(gei)定IP接(jie)受(shou)的(de)請求(qiu)數。突發限制設置為此(ci)限制乘以突發乘數,默認乘數為5。當客戶端超過此(ci)限制時,將 返(fan)回limit-req-status-code默認值: 503,如(ru)果修改其(qi)它(ta)響應碼,需要重(zhong)寫nginx.ingress.kubernetes.io/configuration-snippet配置,如(ru)下

  annotations:
    kubernetes.io/ingress.class: nginxnginx.ingress.kubernetes.io/limit-burst-multiplier: "3"
    nginx.ingress.kubernetes.io/limit-rpm: "1"
    nginx.ingress.kubernetes.io/configuration-snippet: |
        limit_req_status 429;

rancher中的顯示

  • nginx.ingress.kubernetes.io/limit-rpm:每分鐘從給定IP接受的請求數(shu)。突(tu)發限制設(she)置為(wei)此(ci)限制乘以突(tu)發乘數(shu),默認乘數(shu)為(wei)5。當客戶端超過(guo)此(ci)限制時,將(jiang) 返回(hui)limit-req-status-code默認值: 503。

  • nginx.ingress.kubernetes.io/limit-burst-multiplier:
    突發大小(xiao)限(xian)制(zhi)速率的(de)倍數(shu)。默認(ren)的(de)脈沖串(chuan)乘(cheng)數(shu)為5,此(ci)注釋(shi)將覆(fu)蓋默認(ren)的(de)乘(cheng)數(shu)。當客戶端超過此(ci)限(xian)制(zhi)時,將 返(fan)回limit-req-status-code默認(ren)值: 503。

  • nginx.ingress.kubernetes.io/limit-rate-after:最初(chu)的(de)(de)(de)千字節數,在此(ci)之(zhi)后,對給定連接的(de)(de)(de)響應(ying)的(de)(de)(de)進一步傳(chuan)輸將(jiang)受到速率的(de)(de)(de)限制。必須在啟(qi)用代理(li)緩沖的(de)(de)(de)情況下(xia)使用此(ci)功能。

  • nginx.ingress.kubernetes.io/limit-rate:每秒允(yun)許(xu)發送(song)到給定連接的千字節數(shu)。零值禁(jin)用速率限制(zhi)。必(bi)須在啟用代理(li)緩沖的情況下使用此功能(neng)。

  • nginx.ingress.kubernetes.io/limit-whitelist:客戶端IP源(yuan)范圍要從速率限制中排除。該值是(shi)逗(dou)號(hao)分隔(ge)的CIDR列表。

解析

nginx的限流是一個隊列模型。所以限流連接數為 隊列長度+隊列處理能力。
對應下(xia)面的配(pei)置即(ji),rate為隊(dui)列處理能(neng)力。burst為隊(dui)列長度。

ingress配置

ingress控(kong)制(zhi)器會把注解修改成如下nginx配(pei)置,此例子之修改了limit-rps=5或者(zhe)limit-rpm=300,limit-burst-multiplier(放大系數)為默認值(zhi)5。

?實例

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-example-host
  annotations:
    # 每個 IP 每秒可以訪問 5 次
    nginx.ingress.kubernetes.io/limit-rps: 5
    # 為計算限速漏桶算法的 burst size,和 limit-rps 的相乘系數
    nginx.ingress.kubernetes.io/limit-burst-multiplier: 5
    # 配合 limit-window 表示全局限速 100 次每秒(需要依賴 memcached)
    nginx.ingress.kubernetes.io/global-rate-limit: 100
    nginx.ingress.kubernetes.io/global-rate-limit-window: 1s
    # 限制發送給后端服務的發送速率為 1MB 每秒
    nginx.ingress.kubernetes.io/limit-rate: 1024
    # 發送給后端服務的前 10MB 數據不進行限速
    nginx.ingress.kubernetes.io/limit-rate-after: 10240
    # 超出后的響應碼
    nginx.ingress.kubernetes.io/configuration-snippet: |
        limit_req_status 429;
spec:
  rules:
  - host: "www.test.com"
    http:
      paths:
      - path: "/"
        backend:
          service:
            name: test
            port:
              number: 80
posted @ 2023-02-23 17:03  張占嶺  閱讀(4317)  評論(0)    收藏  舉報