我正在处理一个特定的服务,它会不时导致(似乎无法解决(内存泄漏。容器/吊舱内的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