如何从春季启动到Kubernetes发出“不良”而不是“致命”健康检查信号?

问题描述 投票:0回答:1

[我们正在寻找一种执行器健康检查的方式,以发出某种意图,例如“我在行但没有死亡。如果有X个声称健康的其他吊舱,则应重新启动我,否则,让我li行。“

我们在集群式Kubernetes容器中托管了一个休息服务,该容器会定期调出以从外部资源中获取新数据。有时,我们无法访问这些外部资源,有时但并非每次都可以,但重新启动Pod可以解决问题。

这些服务可以在可能过时的数据上正常运行。尽管我们不想继续对过时的数据进行操作,但最好还是完全关闭。

在此期间,我们计划让一个节点单方面决定在自上次成功同步以来经过X的时间后才通过执行器报告任何问题,但这实际上只是延迟了所有节点仍会报告的时间失败。

kubernetes spring-boot-actuator kubernetes-health-check
1个回答
1
投票

在Kubernetes中,您可以使用LivenessProbe和ReadinessProbe来让控制器heal您的服务,但是在某些情况下,最好使用HTTP响应代码或替代的[[degraded服务来处理。

LivenessPobe

使用LivenessProbe解决

解决僵局情况。如果您的Pod在LivenessProbe上没有响应,它将被杀死,而新的Pod将替换它。

ReadinessProbe

例如,如果您的广告连播<。如果您的pod需要读取一些文件或需要在连接请求之前连接到外部服务。

影响所有副本的故障

如果您有所有副本都依赖的问题,例如外部服务已关闭,则无法通过重新启动Pod来解决它。在这种情况下,您可以使用OpsToogle或断路器,并通知其他服务您降级或显示有关临时错误的消息。

针对您的情况

如果有其他X个声称健康的豆荚,则应重新启动我,否则,请让我li行。

您不能

委托

该逻辑到Kubernetes。您的应用程序需要了解每种故障情况,例如如果错误是暂时性网络错误,或者您的错误将影响所有副本。
© www.soinside.com 2019 - 2024. All rights reserved.