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

Spring Boot 3.0.0升级后Kubernetes就绪探针404问题求助

Spring Boot 3.0.0 升级后Kubernetes就绪探针404问题

问题概况

  • 已将Spring Boot应用从2.7.7版本升级至3.0.0版本
  • 升级后本地运行正常,可访问所有Actuator健康端点
  • 部署至Kubernetes集群后出现Readiness probe failed. 404 not found错误
  • 健康端点调用返回404,但Pod日志显示应用已在8080端口正常启动

已验证操作

  • 新版本应用本地运行无异常
  • 旧版本(2.7.7)构建包重新部署至Kubernetes可正常运行
  • Minikube环境部署新版本Jar包运行正常

解决方案建议

1. 核对Actuator端点路径变更

Spring Boot 3.0对Actuator端点默认路径做了调整:

  • 2.x版本默认前缀为/actuator,健康端点路径为/actuator/health
  • 3.0版本默认移除/actuator前缀,健康端点直接为/health

若Kubernetes就绪探针仍配置旧路径,会直接返回404。可通过两种方式修复:

  • 修改Kubernetes探针配置,将路径改为/health
  • 在应用配置文件(application.properties/application.yml)中恢复旧前缀:
management.endpoints.web.base-path=/actuator

2. 确认端点暴露配置

Spring Boot 3.0默认暴露的Actuator端点范围有调整,需确保健康、就绪端点已正确暴露:

management.endpoints.web.exposure.include=health,readiness
management.health.readiness.enabled=true

3. 检查Kubernetes探针配置细节

  • 确认探针的path与应用配置的端点路径完全一致
  • 验证探针指定的port为8080(与应用启动端口匹配)
  • 检查探针是否需要额外请求头(例如Accept: application/json),避免因格式不匹配导致的404

4. 排查集群内部访问情况

在集群内其他Pod中执行curl命令,直接访问目标应用的健康端点,确认是否真的无法访问:

curl http://<目标PodIP>:8080/health

若能正常访问,说明问题出在探针配置;若仍返回404,需排查Pod的网络策略、Service或Ingress是否限制了内部访问。

5. 检查依赖版本一致性

确保spring-boot-starter-actuator依赖版本为3.0.x,避免混合引入2.x版本的Actuator相关依赖,防止因依赖冲突导致端点无法正常注册。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:05:14