繁体   English   中英

Kubernetes中基于资源利用的活动检查

[英]Resource-utilization based liveness checks in Kubernetes

在Kubernetes中,我们有一个活动探测器,该探测器会定期检查容器是否可访问,是否杀死并产生一个新容器。

我们有一个Java webapp,在大多数情况下,我发现由于内存压力,该应用程序变得不可用。 我们有一个活动探针,但是由于运行状况检查服务调用不会占用太多内存,因此即使许多其​​他需要更多内存的请求仍然存在,它也会成功。

GC继续连续运行以回收内存,但无济于事。 该实例永不恢复。 在这种状态下,我希望Kubernetes杀死Pod,但是鉴于活动性探测仍然成功,所以不会成功。 解决此问题的一种方法可能是使活动性探针的资源消耗更多,但是这样会消耗更多的周期,并给系统带来额外的负载。

因此,我想进行某种活动检查,以监视Java进程的垃圾回收计数图的斜率。 另一种说法是,我希望我的活动探针依赖遥测数据。 有什么办法可以实现?

健康状况探测通常以HTTP请求的形式使用,该请求检查HTTP端点返回的状态代码。 但是,您也可以执行脚本作为运行状况检查,并且kubernetes文档提供了一个在文件上做些事的示例 您可以运行自定义脚本命令来检查所需的统计信息(例如, java堆大小 ),而不是对文件进行处理。 如果脚本很复杂,则可能需要将该脚本包含在映像中,或者将其从configmap安装到容器中。 除了运行bash命令外,还有其他获取指标的方法,您可以使用k8s 指标API 或者,您可以让您的Java应用程序直接报告您可以调用的其余端点(例如,诸如Spring Boot致动器)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM