Quarkus存活探针在Minikube中无法访问问题求助
排查要点
- 检查Quarkus配置文件(
application.properties或application.yml):- 确认
quarkus.smallrye-health.enabled=true,且没有针对Kubernetes/prod环境单独禁用该配置(比如%prod.quarkus.smallrye-health.enabled=false这类错误设置) - 核对健康端点路径配置:你提到预期是
/r/health/live,但当前测试用的是/q/health,要确认是否误修改了quarkus.smallrye-health.root-path参数,导致路径不匹配
- 确认
- 验证依赖完整性:确保
pom.xml中已引入quarkus-smallrye-health依赖,且Minikube使用的镜像构建时没有遗漏该依赖(虽然Docker中能访问,但如果Minikube的镜像是后续重新构建的,可能存在依赖丢失的情况) - 检查Kubernetes部署配置:
- 确认Deployment的容器端口与Quarkus监听端口一致(默认8080),没有写错端口号
- 查看存活探针配置:路径是否正确?比如是不是把探针路径写成了
/r/health/live但Quarkus实际配置的是/q/health/live,或者端口配置与容器端口不匹配? - 如果通过Ingress访问,检查Ingress规则是否包含
/q/**路径的转发——若只配置了/的转发规则,/q/health会被Ingress拦截返回404
- 查看Pod日志:执行
kubectl logs <你的Pod名称>,检查启动日志中是否有健康端点初始化失败、端口监听异常的提示 - 容器内直接测试:进入Pod内部执行
curl localhost:8080/q/health,如果容器内可以正常访问,说明是外部网络(Service/Ingress)的问题;如果容器内也返回404,说明应用在Kubernetes环境下的配置存在问题
内容的提问来源于stack exchange,提问作者Steven Lewis
相关产品推荐
相关产品推荐

