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

存活探针失败但端点可跨Pod访问的技术求助

Troubleshooting Liveness Probe Connection Refusal for Spring Boot Actuator

看起来你遇到了个挺头疼的问题——明明容器内部能正常访问/actuator/health拿到200响应,但Kubernetes的存活探针就是报连接拒绝。结合你提供的配置和测试信息,我整理了几个高概率的排查方向和解决办法:

1. 检查Spring Boot的监听地址

这是最常见的原因之一:很多Spring Boot应用默认只监听127.0.0.1(本地回环地址)。这种情况下,你在容器内部用curl访问容器IP或者localhost能通,但Kubernetes的存活探针是由节点上的kubelet发起请求,而如果应用只绑定了127.0.0.1,外部请求(包括kubelet的探针)根本无法连接到应用端口。

解决办法:

修改Spring Boot的启动配置,让它监听所有网卡地址:

  • 在启动命令中添加参数:--server.address=0.0.0.0
  • 或者在application.properties/application.yaml中配置:
    server.address=0.0.0.0
    
  • 也可以检查是否设置了management.server.address(如果Actuator用了单独端口),确保这个值也是0.0.0.0

验证方式:

进入Pod执行以下命令,查看8080端口的监听地址:

netstat -tulpn | grep 8080

如果输出中的地址是127.0.0.1:8080,那就是这个问题导致的。

2. 排查Actuator端点的访问限制

虽然你在容器内可以正常访问/actuator/health,但还是要确认Actuator的配置有没有隐含的访问限制:

  • 检查是否配置了management.endpoints.web.exposure.include=health(确保健康端点被暴露)
  • 检查是否设置了IP白名单或者安全拦截规则,阻止了kubelet的IP访问端点
  • 如果使用了Spring Security,确认有没有为/actuator/health配置允许匿名访问的规则

3. 调整探针配置的细节

你当前的存活探针配置看起来没问题,但可以尝试几个小调整:

  • 在livenessProbe.httpGet中添加host: localhost,强制探针从容器内部的localhost发起请求:
    livenessProbe:
      httpGet:
        path: /actuator/health
        port: 8080
        host: localhost
      failureThreshold: 5
      periodSeconds: 10
      initialDelaySeconds: 30
      timeoutSeconds: 25
    
  • 优化startupProbe的参数,给应用足够的启动缓冲时间(比如允许30次重试,每次间隔10秒,总共300秒):
    startupProbe:
      httpGet:
        path: /actuator/health
        port: 8080
      failureThreshold: 30
      periodSeconds: 10
    
    注意:startupProbe成功后,存活探针才会接管健康检查,所以要确保startupProbe的参数足够覆盖应用的最长启动时间。

4. 检查容器网络栈的异常

虽然Nginx的探针正常工作,但还是可以排查下Spring Boot容器的网络配置:

  • 查看Pod的网络状态:kubectl describe pod <your-pod-name>,确认容器的端口映射、IP地址是否正常
  • 在节点上尝试直接访问容器的IP和8080端口:curl http://<container-ip>:8080/actuator/health,看看节点层面能不能访问
  • 检查节点上的iptables规则,确认没有阻止kubelet访问容器端口的规则

总结

从你的测试结果来看,Spring Boot监听地址限制是最可能的原因,建议优先排查这个方向。如果调整监听地址后问题解决,那就是这个原因导致的;如果还不行,再依次排查其他方向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 13:43:11