我的Spring Boot应用程序使用执行器进行健康检查。我使用以下配置:
management.server.port = 9093
management.endpoints.web.exposure.include = healthk8s集群尝试http get to host:9093/acutator/k8s来执行健康检查。它在本地机器上运行得很好,我尝试使用相同的Dockerfile在我自己的本地机器上构建一个docker容器也是可以的。但是,当我将其推送到prod env中的健康集群时,健康检查keep失败,因为连接到9093/ k8s /k8s失败。
我观察了prod env上的日志,发现Netty服务器没有监听9093端口。我只能看到
o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8080但是在我的本地机器上,我可以看到Netty在端口9093上启动的日志。
o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 9093问题是,在什么情况下,Spring Boot不会启动执行器?它似乎与k8s环境有关。
发布于 2021-08-02 03:36:36
确实可能与您的k8s设置有关。
Spring Application不做任何假设,无论它是在k8s环境中运行,还是根本没有任何容器化。
您可以尝试通过WGET从pod本身执行对执行器的调用(假设WGET/CURL在那里可用),并确保端点可访问。
如果确实可以访问,请查看详细解释如何设置k8s探测器的Actuator Documentation。
还要检查拼写错误,在问题中您使用了两次单词acutator,而它可能应该是一个actuator ;)
https://stackoverflow.com/questions/68615984
复制相似问题