对3个基于NGINX的IC测试每种 Ingress Controller 产生的延迟。:
1. Github版,nginx-ingress-controller:v1.3.0
2. NGINX社区版,nginx/nginx-ingress:latest Dockhub上的2.3.0
3. NGINX官方版,NGINX-PLUS, nginx-plus-ingress:2.3.0
参照文档:NGINX Ingress Controller 在动态 Kubernetes 云环境中的性能测试 - NGINX (nginx-cn.net)
测试方式:
1. 对同一后端做wrk2访问测试。同node,同个VM
2.不同Ingress使用相同证书
3.证书为自签名
4.频繁对后端做scale,通过wrk2查看不同IC的处理性能
while [ 1 -eq 1 ]
do
kubectl scale deployment nginx --replicas=1
sleep 10
kubectl scale deployment nginx --replicas=7
sleep 10
done
其中:
-t
—— 设置线程数(2)-c
—— 设置 TCP 连接数(1000)-d
—— 设置每轮测试的持续时间,单位为秒(180 秒,即 3 分钟)-L
—— 生成详细的延迟百分位信息,以便导出到分析工具-R
—— 设置 RPS 的数量(30,000)
先上个结果图, 目前基本无负载。对IC资源默认配置的情况下。
这是后端静态,单个pod的情况下
这是后端用脚本不断scale变化的情况下, 用上面的shell 1-7变化
以上是完全默认配置的情况下。
然后我们把一些配置统一,后端传输的数据稍微加一点点
首先把IC的资源统一
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "100m"
memory: "128Mi"
然后对 N+ 和 N社区 取消custom-resources
-enable-custom-resources=false
再进行测试