【发布时间】: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