【问题标题】:What are the possible causes for a pod container to be restarted due to Out of Memory Killed?由于 Out of Memory Killed 导致 Pod 容器重启的可能原因有哪些?
【发布时间】:2021-01-01 12:21:44
【问题描述】:

我在系统的 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 次。

【问题讨论】:

    标签: kubernetes kubernetes-pod


    【解决方案1】:

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

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

    【讨论】:

    • 好的,我知道我的集群中有LimitRange 对象。但在我的问题中,我表明该特定容器没有超出此限制
    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 2018-03-25
    • 2022-12-03
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多