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

OpenShift负载均衡异常求助:Pod请求分配严重不均

解决OpenShift长请求负载不均问题

排查方向1:确认Pod就绪状态

先检查所有5个Pod是否处于Ready状态,执行命令:
oc get pods
如果存在未就绪的Pod,重点排查就绪探针配置——若探针的超时时间短于30秒,或探针请求被长耗时的业务请求阻塞,会导致Pod被标记为不可用,流量自然不会转发过去。调整探针的timeoutSeconds和periodSeconds参数,确保探针能独立正常执行,不受业务请求干扰。

排查方向2:禁用HAProxy连接复用

由于你的请求是30秒级的长连接,HAProxy默认会复用客户端与后端Pod的连接,后续请求会直接走同一个Pod,造成流量倾斜。给路由添加以下注解,强制关闭连接复用:

haproxy.router.openshift.io/server-close: 'true'
haproxy.router.openshift.io/client-close: 'true'

这两个配置会让HAProxy在每次请求完成后关闭客户端和后端的连接,避免因连接复用导致的流量集中。

排查方向3:清除源IP绑定影响

部分场景下,HAProxy会默认以源IP作为负载均衡的哈希依据(类似balance source模式),如果大部分请求来自同一客户端IP,就会集中到单个Pod。明确指定负载均衡算法的同时,清空源IP关联配置:

haproxy.router.openshift.io/balance: roundrobin
haproxy.router.openshift.io/disable_cookies: 'true'
haproxy.router.openshift.io/balance-source-range: ''

清空balance-source-range可避免源IP哈希带来的流量倾斜。

排查方向4:检查Node.js连接限制

查看Express服务的server.maxConnections配置,如果该值设置过低,会导致单个Pod无法承接更多请求。在启动代码中确认或调整该参数:

const server = app.listen(3000);
server.maxConnections = 100; // 根据业务并发需求调整

验证操作

修改路由配置后重新部署:
oc apply -f your-route.yaml
用并发工具(如循环调用curl)模拟多请求,通过Pod日志查看流量分配情况:
oc logs <pod-name> -f
对比5个Pod的日志输出,确认流量是否均匀分配。

内容的提问来源于stack exchange,提问作者Tomer Cahal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:22:10