【问题标题】:Docker Inside Docker oom_score_adj: invalid argumentDocker Inside Docker oom_score_adj:参数无效
【发布时间】:2020-05-11 09:31:00
【问题描述】:

在 Kubernetes 上,为了构建 docker 镜像,我们使用 Docker Inside Docker (dind),其中 docker 守护进程将以特权用户身份运行

但有时我们观察到 docker 映像创建会失败并出现以下错误,我无法指出确切的原因,

ERROR: Error writing header for "scripts": io: read/write on closed pipe
ERROR: Error writing tar: io: read/write on closed pipe
Removing temporary directory /tmp/s2i834345991
Removing directory '/tmp/s2i834345991'
Build failed ERROR: An error occurred: Error response from daemon: set shim OOM score: write /proc/9092/oom_score_adj: invalid argument: unknown

根据 docker 文档,默认情况下 oom_score_adj 设置为 -500,即容器可以消耗 50% 的内存,所以我假设当内存使用量超过 50% 时 OS/Kernel 正在杀死容器,但我我不确定,因为异常显示“无效参数”

之前有没有人遇到过这个问题,如果是,请告诉我们确切的原因,我浏览了很多文章,但无法得出任何结论。

【问题讨论】:

  • 你能不能多说一些,你是在批量一个一个地创建图像吗?你用的是什么版本的s2i?你看过这篇文章吗? bugzilla.redhat.com/show_bug.cgi?id=1642350
  • @PjoterS 我们使用的是 v1.1.13,关于创建镜像,每个 pod 构建一个镜像,并且可以有多个这样的 pod 在同一个节点上运行,通过连接到运行的 docker 守护进程并行构建镜像节点,我没看到你分享的文章,去看看

标签: docker kubernetes openshift s2i


【解决方案1】:

Secrets 未正确进行 base64 编码时,可能会出现oom_score_adj 错误。

https://github.com/kubernetes/kubernetes/issues/30861

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 2018-01-22
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    相关资源
    最近更新 更多