如何用JMeter测试Kubernetes LoadBalancer服务的负载均衡效果
用JMeter验证Kubernetes LoadBalancer负载均衡的实操指南
没问题,你的场景简直是为负载均衡测试量身定做的——应用返回处理请求的Pod名称,能直接直观验证调度逻辑!下面一步步教你实现JMeter测试:
一、搭建基础测试计划
- 打开JMeter,新建一个测试计划
- 添加线程组(右键测试计划 → 添加 → 线程(用户) → 线程组):
- 线程数:设置成你想要的并发数,比如
50(比Pod数多,更能看出均衡效果) - Ramp-Up时间:设为
0(瞬间启动所有线程,模拟高并发场景;如果想逐步加压可以设成5-10秒) - 循环次数:可以设为
10(总请求数=50×10=500),或者选“永远”直到手动停止
- 线程数:设置成你想要的并发数,比如
- 添加HTTP请求(右键线程组 → 添加 → 取样器 → HTTP请求):
- 服务器名称或IP:填写你的LoadBalancer外部IP
- 端口号:填写服务暴露的端口
- 请求方法:GET(根据你的应用接口调整)
- 路径:填写应用的接口路径(比如
/或者/api/test)
二、提取响应中的Pod名称(核心步骤)
要统计每个Pod的请求量,得先把响应里的Pod名称提取出来:
- 右键HTTP请求 → 添加 → 后置处理器 → 正则表达式提取器
- 配置参数:
- 引用名称:
podName(自定义名称,后续统计要用) - 正则表达式:根据你的响应格式写,比如如果是JSON返回
{"podName":"my-pod-abc-123"},就用"podName":"(.*?)";如果是纯文本直接返回Pod名称,就用(.*) - 模板:
$1$ - 匹配数字:
1(取第一个匹配结果)
- 引用名称:
三、添加监听器分析结果
这些监听器能帮你直观看到负载均衡效果:
- 查看结果树:右键线程组 → 添加 → 监听器 → 查看结果树,可逐个查看每个请求的响应内容,确认Pod名称是否正确返回
- 聚合报告:查看整体的响应时间、错误率等指标,确保应用运行正常
- 统计报告:右键线程组 → 添加 → 监听器 → 统计报告,在“标签”栏选择我们提取的
${podName},这样就能看到每个Pod被分配到的请求数、占比,直接判断负载是否均衡 - (可选)图表结果:把
${podName}作为分组,能生成每个Pod的请求数柱状图,更直观
四、执行测试并验证
- 先手动请求一次LoadBalancer的外部IP,确认能正常返回Pod名称,避免测试白做
- 点击JMeter工具栏的“启动”按钮开始测试
- 测试结束后看统计报告:如果5个Pod的请求数大致均匀(比如500个请求的话,每个Pod大概90-110个),说明LoadBalancer的负载均衡正常工作;如果某个Pod请求数明显偏多/偏少,可能需要检查Kubernetes的负载均衡配置或者Pod健康状态
注意事项
- 不要设置过高的并发数,避免压垮你的测试集群(毕竟每个请求会休眠1秒,并发50的话就占了50个Pod的连接)
- 如果是HTTPS接口,记得添加“HTTP请求默认值”并配置SSL管理器
- 测试前确保所有Pod都是Running状态,没有不健康的Pod影响调度
内容的提问来源于stack exchange,提问作者C.S.
相关产品推荐
相关产品推荐

