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

AKS环境中ingress-nginx持续对业务Pod建立断开TCP连接问题求助

现象原因
  • 该规律性的TCP连接建连/断连行为来自ingress-nginx控制器默认开启的TCP后端健康检查机制:ingress-nginx会定期对所有配置的TCP转发后端Pod发起TCP连接探测,验证后端服务可用性,探测完成后立即断开连接,对应你观测到的日志特征。
  • 日志中出现的两个客户端IP 10.244.0.47、10.244.1.83 刚好匹配你配置的2个ingress-controller副本的Pod IP,进一步验证了请求来源为控制器自身的健康检查。
  • 默认配置下TCP健康检查间隔为5秒,与你日志中4~6秒的断连/建连周期完全吻合。
解决方案

你可以根据业务需求选择以下任意一种方案调整:

方案1:调整健康检查频率(推荐)

无需关闭健康检查,仅调大探测间隔降低探测量,修改ingress-nginx的helm values配置如下:

ingress-nginx:
  controller:
    config:
      # 调整健康检查间隔为30秒,可根据业务需求自定义
      proxy-healthcheck-interval: "30s"
      # 健康检查超时时间
      proxy-healthcheck-timeout: "10s"
      # 连续3次探测失败才标记后端不可用
      proxy-healthcheck-max-fails: "3"

升级helm release后即可生效,健康检查频率会明显降低,同时保留可用性探测能力。

方案2:关闭指定TCP端口的健康检查

如果业务对探测流量完全不能容忍,可单独关闭该6203端口的TCP健康检查,修改tcp配置如下:

ingress-nginx:
  tcp:
    # 末尾新增的:::false代表关闭该端口的健康检查
    6203: "storage-he10/lb-plc-in-scale-service:6203:::false"

注意:关闭健康检查后,ingress-nginx无法感知后端Pod异常,可能会将流量转发到不可用的Pod,引发业务故障,非特殊场景不推荐使用。

方案3:调整空闲连接超时(适用于长连接业务)

如果你的业务使用长连接,观测到的断连是空闲连接被主动回收导致,可调整TCP连接空闲超时时间:

ingress-nginx:
  controller:
    config:
      # 调整空闲TCP连接超时为1小时,可根据业务场景自定义
      proxy-stream-timeout: "3600s"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:24:03