You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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的请求数柱状图,更直观

四、执行测试并验证

  1. 先手动请求一次LoadBalancer的外部IP,确认能正常返回Pod名称,避免测试白做
  2. 点击JMeter工具栏的“启动”按钮开始测试
  3. 测试结束后看统计报告:如果5个Pod的请求数大致均匀(比如500个请求的话,每个Pod大概90-110个),说明LoadBalancer的负载均衡正常工作;如果某个Pod请求数明显偏多/偏少,可能需要检查Kubernetes的负载均衡配置或者Pod健康状态

注意事项

  • 不要设置过高的并发数,避免压垮你的测试集群(毕竟每个请求会休眠1秒,并发50的话就占了50个Pod的连接)
  • 如果是HTTPS接口,记得添加“HTTP请求默认值”并配置SSL管理器
  • 测试前确保所有Pod都是Running状态,没有不健康的Pod影响调度

内容的提问来源于stack exchange,提问作者C.S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 16:37:35