|NO.Z.00357|——————————|CloudNative|——|KuberNetes&运维.V73|——|IngressNginx.v09|速率限制|

一、IngressNginx速率限制概述
### --- 限制单个IP

~~~     限制单个IP的连接数或者每秒的并发数
### --- 官网地址:

~~~     https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#whitelist-source-range
### --- 定义连接和传输速率的限制

nginx.ingress.kubernetes.io/limit-connections:      // 单个 IP 地址允许的并发连接数。超过此限制时将返回 503 错误。
nginx.ingress.kubernetes.io/limit-rps:              // 每秒从给定 IP 接受的请求数。突发限制设置为此限制乘以突发倍数,默认倍数为5。当客户端超过此限制时,返回limit-req-status-code default: 503。
nginx.ingress.kubernetes.io/limit-rpm:              // 每分钟从给定 IP 接受的请求数。突发限制设置为此限制乘以突发倍数,默认倍数为5。当客户端超过此限制时,返回limit-req-status-code default: 503。
nginx.ingress.kubernetes.io/limit-burst-multiplier: // 突发大小限制速率的乘数。默认突发乘数为 5,此注释覆盖默认乘数。当客户端超过此限制时,将 返回limit-req-status-code default: 503。
nginx.ingress.kubernetes.io/limit-rate-after:        // 初始千字节数,之后对给定连接的响应的进一步传输将受到速率限制。此功能必须在启用代理缓冲的情况下使用。
nginx.ingress.kubernetes.io/limit-rate:             // 每秒允许发送到给定连接的千字节数。零值禁用速率限制。此功能必须在启用代理缓冲的情况下使用。
nginx.ingress.kubernetes.io/limit-whitelist:        // 要从速率限制中排除的客户端 IP 源范围。该值是逗号分隔的 CIDR 列表。
二、速率限制
### --- nginx.ingress.kubernetes.io/limit-connections:单个 IP 地址允许的并发连接数。
~~~     超过此限制时将返回 503 错误

[root@k8s-master01 ~]# vim prom-ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:                       # 此行下添加如下参数
  annotations:                                          
    nginx.ingress.kubernetes.io/limit-connections: "1"
  name: prom-ingresses          # 此行上添加如下参数
三、访问请求:prom.test.com        :报错503
四、nginx.ingress.kubernetes.io/limit-rps:每秒从给定 IP 接受的请求数。
### --- nginx.ingress.kubernetes.io/limit-rps:每秒从给定 IP 接受的请求数。
~~~     突发限制设置为此限制乘以突发倍数,默认倍数为5。
~~~     当客户端超过此限制时,返回limit-req-status-code default: 503

[root@k8s-master01 ~]# vim prom-ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:                   # 此行下添加如下参数
  annotations:                                          
    nginx.ingress.kubernetes.io/limit-rps: "1"
  name: prom-ingresses      # 此行上添加如下参数
五、访问请求:prom.test.com:报错503:    
### --- 访问请求:prom.test.com:报错503:   

~~~     当每秒请求数设置为1时,连续刷新报错503
~~~     ——>当每秒请求数设置为5时,刷新正常
六、白名单配置:nginx.ingress.kubernetes.io/limit-whitelist
### --- 白名单配置:nginx.ingress.kubernetes.io/limit-whitelist:

~~~     要从速率限制中排除的客户端 IP 源范围。
~~~     该值是逗号分隔的 CIDR 列表
~~~     ——>通过本地访问http://prom.test.com/graph:报错503
~~~     ——>通过白名单主机访问
[root@k8s-master01 ~]# vim prom-ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:                       # 此行下添加如下参数
  annotations:                                          
    nginx.ingress.kubernetes.io/limit-connections: "1"
    nginx.ingress.kubernetes.io/limit-whitelist: 192.168.1.11
  creationTimestamp: null
  name: prom-ingresses          # 此行上添加如下参数

### --- 通过192.168.1.11访问
~~~     注:显示405,说明正常

[root@k8s-master01 ~]# curl http://prom.test.com/graph -I
HTTP/1.1 405 Method Not Allowed 
### --- 并发请求

[root@k8s-master01 ~]# for i in `seq 1 100`; do curl http://prom.test.com -I ;done
HTTP/1.1 405 Method Not Allowed
X-Content-Type-Options: nosniff

HTTP/1.1 405 Method Not Allowed
X-Content-Type-Options: nosniff

HTTP/1.1 405 Method Not Allowed
X-Content-Type-Options: nosniff

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(104)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示