如何让kubernetes不杀死消耗过多内存的pod

n3h0vuf2  于 2023-06-28  发布在  Kubernetes
关注(0)|答案(2)|浏览(242)

我有一个Kubernetes作业,有容器内存限制。例如:

apiVersion: v1
kind: Job
metadata:
 name: example-job
spec:
 containers:
 - name: example-container-name
   image: someimage
   resources:
     limits:
       memory: "1Gi"

但是,如果容器消耗的内存超过1GB,则会得到OOMKILLED。我无法控制我的应用程序占用多少内存,有没有一种方法可以防止Kubernetes杀死pod并限制其内存使用?我希望行为类似于个人电脑-如果你使用太多的内存,一切都变得更慢(由于交换,例如),但该进程不会被杀死的操作系统正常。

0qx6xfy6

0qx6xfy61#

这是因为你的应用程序占用了超过1 GB的内存,你确实限制了你的pod最大1 GB,所以当你的应用程序占用超过1 GB内存时,你的应用程序将被Kubernetes杀死,所以最好的措施是让你的应用程序资源使用更有效或增加你的限制。

附加提示:如果你有一个以上的容器在你的pod你需要考虑其他容器的内存使用。如果你有一个sidecar容器或变异的webhook,就会发生这种情况。

hxzsmxv2

hxzsmxv22#

通过在描述符中指定资源限制,您将告诉Kubernetes,如果您超过该限制,则会终止您的pod。所以就像其他人说的,去掉限制,提高限制,或者让你的代码更高效。这是你唯一的选择

相关问题