尝试进行一些负载测试时,我有一个奇怪的行为。
环境 :
- NGINX 入口控制器版本:0.44.0
- Kubernetes 版本:1.17.8
- openidc.lua 版本:1.7.4
情况如下:
- nginx 入口控制器部署为守护程序集,并且由于 openidc 模块,我将 sessionAffinity 激活到 ClientIP。
- 我有一个简单的无状态休息服务部署了一个基本入口,该入口已经过负载测试(那个没有 sessionAffinity)。
在没有 sessionAffinity ClientIP 的情况下对其余服务启动负载测试时,我的速度远远超过 25 个请求/秒(大约 130 个请求/秒,服务资源开始崩溃,这是另一回事)。但是激活 sessionAffinity 后,我只能达到 25 req/s。
经过一番研究,我发现了一些有趣的东西,如下所示:https ://medium.com/titansoft-engineering/rate-limiting-for-your-kubernetes-applications-with-nginx-ingress-2e32721f7f57
因此,由于负载测试应始终由同一个 nginx pod 提供服务,因此公式应为:成功请求 = 周期 * 速率 + 突发
所以我确实尝试在我的入口添加注释 nginx.ingress.kubernetes.io/limit-rps: "100",但没有运气,仍然是相同的 25 req/s。
我还尝试了以下注释的不同组合:https ://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#rate-limiting ,但也没有运气。
我错过了什么吗?