Kubernetes中Consul服务TTL健康检查的替代方法

时间:2020-04-24 11:03:32

标签: kubernetes consul kubernetes-health-check

领事具有TTL健康检查,应通过HTTP接口定期更新其状态。 通过akka.net微服务,我们正在对已注册的Consul Service端点执行GET请求,以重置TTL计时器并在Consul Service仪表板上保持生命。

Kubernetes是否有类似的东西?不是执行对pod_ip:port的请求的活动/就绪探测器,而是等待正在运行的应用程序发出的请求。 例如,我们不仅要监视在某个端口上运行的AKKA应用程序,还要确保actor系统中的每个actor都健康。

谢谢!

1 个答案:

答案 0 :(得分:1)

Kubernetes希望对应用程序进行探测(通过活动性和就绪性探测),而应用程序则希望发送其TTL心跳以向例如领事代理发出活动性信号。

协调两种健康检查策略的一种方法可能是在应用程序的pod中运行特殊的sidecar health check server。这样的边车服务器将位于应用程序与kubelet之间,并会处理应用程序的TTL心跳以更新其内部状态,并指出应用程序是否仍在运行。只要是这种情况,它就会以200 OK答复HTTP probes of Kubernetes。否则,它将以200-300范围以外的代码答复Kubernetes,以表明该应用程序不健康。

Consul代理程序本身可以用作此类Sidecar健康检查服务器的一部分。其HTTP health check API以JSON对象的形式返回应用程序TTL活动的状态。所有需要做的就是将状态转换成适当的HTTP返回码。但是,使用Consul代理是完全可选的:Sidecar当然可以自行处理TTL心跳。