8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Pod 状态显示 OOMKilled,但没有终止迹象

chaos 2月前

42 0

我有一个 Kubernetes cronjob,它每天午夜启动一个 pod。里面只有一个容器。它获取一些数据,进行一些计算,上传几个文件并退出(它是一个 python 3.10-...

我有一个 Kubernetes cronjob,它每天午夜启动一个 pod。里面只有 1 个容器。它获取一些数据,进行一些计算,上传几个文件并退出(这是一个 python 3.10-slim 容器,主要执行 git 操作:获取和拉取,这可能会占用大量内存)。容器定义了资源限制,即:

Limits:
    cpu:     300m
    memory:  2Gi
Requests:
    cpu:     300m
    memory:  1Gi

kubectl get pods 检查 pod 时 ,我得到以下信息:

NAME                             READY   STATUS      RESTARTS   AGE
my-scheduled-pod                 0/1     OOMKilled   0          11h

kubectl describe pod 查看 pod ,它显示 pod 的状态为“成功”,但对于容器,我看到以下内容:

State:            Terminated
    Reason:       OOMKilled
    Exit Code:    0
    Started:      Thu, 08 Aug 2024 00:09:03 +0200
    Finished:     Thu, 08 Aug 2024 01:04:57 +0200
Ready:          False
Restart Count:  0

然而,一切都按计划进行,容器确实在大约一小时内完成了所有工作,并设法上传了结果文件并成功退出。没有任何迹象表明它已被终止、重新启动或任何不正常的现象。我用 kubectl logs ,在此期间它一直处于正常运行状态。

在下图中,您可以看到 黄色的 container_memory_usage_bytes 绿色的 container_memory_cache

容器内存使用情况随时间变化

您可以看到它在运行一段时间后内存使用量达到最大值,在某个时刻,缓存降至 0,此后不久又开始增加。

查看时,pod 被标记为 'OOMKilled', kubectl get pods 因为从我的角度来看一切正常并且容器没有重新启动或终止。

帖子版权声明 1、本帖标题:Pod 状态显示 OOMKilled,但没有终止迹象
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由chaos在本站《kubernetes》版块原创发布, 转载请注明出处!
最新回复 (0)
  • Don 2月前 0 只看Ta
    引用 2

    如果进程超出定义的内存限制,为什么还要继续运行呢?我认为当 Kubernetes 检测到容器的内存使用量超过指定限制时,它会立即终止进程。这个问题与您链接的问题完全不同。我不是想了解什么会导致 OOMKilled,而是想了解为什么我的容器没有被终止,即使它显示为 OOMKilled。

  • 我明白了 - 谢谢你的澄清。我不确定你的 pod 为何会 OOMKilled,所以这个问题留给其他人来回答。

返回
作者最近主题: