由于内存不足被杀死,重新启动Pod容器的可能原因是什么?

时间:2020-09-14 18:37:16

标签: kubernetes kubernetes-pod

我的系统中的Pod中正在运行以下部署:

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 1Gi
    defaultRequest:
      memory: 256Mi
    type: Container

Kubernetes有时会重新启动此容器,并显示以下错误代码:

Last State:     Terminated
      Reason:       OOMKilled
      Exit Code:    137

根据系统监视(Grafana),在Kubernetes发送终止信号时,该容器仅消耗约500Mb的内存。

此外,运行Pod的节点有很多可用内存(重新启动容器时,它使用的容量约为其容量的15%)。

那么Kubernetes是否有任何可能的原因来重新启动此容器?在过去的一周中,这已经发生了5-7次。

1 个答案:

答案 0 :(得分:2)

LimitRange k8s对象用于“限制范围是一种通过名称空间中的Pod或Container约束资源的策略”。因此,创建对象LimitRange的名称空间中的对象消耗的资源超过了LimitRange对象中指定的限制。要测试是否为真,请暂时删除LimitRange,以检查您所有命名空间资源的实际使用情况,而不仅仅是一个吊舱。之后,将能够找到适合名称空间的最佳限制配置。

k8s docs中,您可以找到很好的解释,以及很多有关如何限制名称空间限制的示例。