【发布时间】:2018-02-11 08:14:18
【问题描述】:
我正在使用 Spring 开发一项服务并将其部署在 OpenShift 上。目前我正在使用 Spring Actuator 健康端点作为 Kubernetes 的活跃度和就绪性探测。
但是,我将在 Actuator 健康端点中添加对另一个服务的调用,在我看来,在这种情况下,我需要为我的服务实施新的活动探测。如果我不这样做,那么第二个服务的失败将导致活动探测失败,Kubernetes 将在没有任何实际需要的情况下重新启动我的服务。
对于活性探测来说,实现一些总是返回 HTTP 状态 200 的简单 REST 控制器是否可以?如果它有效,该服务总是可以被认为是活着的吗?或者有没有更好的方法来做到这一点?
【问题讨论】:
-
“我将在执行器健康端点中添加对另一个服务的调用”是什么意思?每个健康端点应该只提供关于自身的信息,而不是关于其他服务的信息。
-
情况是,如果第一个依赖的第二个服务不起作用,那么第一个也不起作用。
-
这不是 Kubernetes 的本意。正如我所说,健康/活跃度探测应该只检查特定服务。我同意这么随机的家伙在这里的回答,总是返回 200 可能会掩盖服务的真正错误。
-
Liveness 只会检查 http 状态码,不会检查执行器的
status: "up"。
标签: spring kubernetes openshift