我可以让Kubernetes关闭达到一定RAM百分比的pod吗



我正在处理一个特定的服务,它会不时导致(似乎无法解决(内存泄漏。容器/吊舱内的RAM内存会增长得很高,并保持这种状态。pod很快就变得不可用了,我非常想配置Kubernetes来标记这些pod以终止并停止路由到它们。

例如,如果pod内的RAM达到80%,我可以配置Kubernetes来关闭这样的pod吗?

你可以分享任何关于这个的链接都会很棒。

感谢

apiVersion: v1
kind: Pod
metadata:
name: memory-demo
namespace: mem-example
spec:
containers:
- name: memory-demo-ctr
image: polinux/stress
resources:
limits:
memory: "200Mi"

指定内存限制:resources:limits
当进程使用超过200Mi时,pod将被杀死,因为它的内存不足(OOM(

可以在pod的每个容器上设置两种不同类型的资源配置。

它们是请求限制

请求定义容器所需的最小资源量。

如果你认为你的应用程序至少需要256MB的内存才能运行,这就是请求值。

应用程序可以使用超过256MB的空间,但Kubernetes保证容器至少使用256MB。

另一方面,限制定义了容器可以消耗的最大资源量

您的应用程序可能需要至少256MB的内存,但您可能需要确保它消耗的内存不超过1GB。这是您的限制

您可以将请求增加到限制范围,即1GB内存。如果请求超过限制,Kubernetes会停止或限制pod。

例如:

resources:
limits:
memory: 1 GB
requests:
memory: 256 MB

最新更新