Kubernetes 我的吊舱获得OOM死亡状态,但没有';不要被杀。为什么?

Kubernetes 我的吊舱获得OOM死亡状态,但没有';不要被杀。为什么?,kubernetes,yaml,containers,Kubernetes,Yaml,Containers,我已经用带有资源请求和限制的YAML文件(apiVersion:batch/v1beta1)配置了一个CronJob,pod被成功实例化并一直工作到它的自然结束,但是当终止时,我看到它被标记为OOMKilled 我的pod使用的是Docker容器,该容器由调用一些Java工具(如maven)的bash脚本启动。我试着像这样设置MAVEN_OPTS和JAVAOPTS: env: - name: JAVA_OPTS value: "-Xms

我已经用带有资源请求和限制的YAML文件(apiVersion:batch/v1beta1)配置了一个CronJob,pod被成功实例化并一直工作到它的自然结束,但是当终止时,我看到它被标记为OOMKilled

我的pod使用的是Docker容器,该容器由调用一些Java工具(如maven)的bash脚本启动。我试着像这样设置MAVEN_OPTS和JAVAOPTS:

        env:
          - name: JAVA_OPTS
            value: "-Xms256M -Xmx1280M"
          - name: MAVEN_OPTS
            value: "-Xms256M -Xmx1280M"
这些值低于YAML中配置的限制值


我希望pod在完成状态下停止,因为pod的日志中显示了我的入口点bash脚本的最后一个回音,但我得到了OOMKilled。

当容器指定了资源请求时,调度程序可以更好地决定将pod放置在哪些节点上。但请记住:计算资源(CPU/内存)是为容器配置的,而不是为POD配置的

如果吊舱容器被杀死。基础容器由
kubelet
根据其属性重新启动

OOMKill提供的容器并不意味着pod处于
已完成/错误
状态(除非您使用的是
重新启动策略:从不

如果您在pod上执行
kubectl description
,容器将处于
运行
状态,但您可以在
最后状态
中找到上次重启原因。此外,您还可以检查它重新启动了多少次:

State:          Running
  Started:      Wed, 27 Feb 2019 10:29:09 +0000
Last State:     Terminated
  Reason:       OOMKilled
  Exit Code:    137
  Started:      Wed, 27 Feb 2019 06:27:39 +0000
  Finished:     Wed, 27 Feb 2019 10:29:08 +0000
Restart Count:  5

当容器指定了资源请求时,调度器可以更好地决定在哪些节点上放置吊舱。但请记住:计算资源(CPU/内存)是为容器配置的,而不是为POD配置的

如果吊舱容器被杀死。基础容器由
kubelet
根据其属性重新启动

OOMKill提供的容器并不意味着pod处于
已完成/错误
状态(除非您使用的是
重新启动策略:从不

如果您在pod上执行
kubectl description
,容器将处于
运行
状态,但您可以在
最后状态
中找到上次重启原因。此外,您还可以检查它重新启动了多少次:

State:          Running
  Started:      Wed, 27 Feb 2019 10:29:09 +0000
Last State:     Terminated
  Reason:       OOMKilled
  Exit Code:    137
  Started:      Wed, 27 Feb 2019 06:27:39 +0000
  Finished:     Wed, 27 Feb 2019 10:29:08 +0000
Restart Count:  5

看起来程序在达到k8s资源限制之前被容器操作系统杀死了oom,容器终止了自己,所以k8s认为它已经完成了看起来程序在达到k8s资源限制之前被容器操作系统杀死了oom,conainer终止了它自己,所以k8s认为它已经完成了我已经写了pod,但我说的是容器是的。无论如何,我的容器没有重新启动,也没有被杀死,描述它有0个重新启动计数,容器的STDOUT不表示任何杀死我的重新启动策略是:restartPolicy:OnFailureI我已经写过pod,但我说的是容器是。无论如何,我的容器没有重新启动,也没有被杀死,说明它有0个重新启动计数,并且容器的STDOUT不建议任何杀死我的重新启动策略是:restartPolicy:OnFailure