• DevOps
  • 公司内网中KubeSphere中采用Jenkins流水线构建镜像时频繁出现访问registry1-docker.io导致超时构建失败

创建部署问题时,请参考下面模板,你提供的信息越多,越容易及时获得解答。如果未按模板创建问题,管理员有权关闭问题。
确保帖子格式清晰易读,用 markdown code block 语法格式化代码块。
你只花一分钟创建的问题,不能指望别人花上半个小时给你解答。

操作系统信息
物理机,uname -a输出如下

Kubernetes版本信息
kubectl version 命令执行结果如下

容器运行时
docker version 结果

crictl version 结果

nerdctl version 结果如下,系统中尚未支持 nerdctl

KubeSphere版本信息

Docker镜像配置

  • /etc/docker/daemon.json结果如下

  • docker info结果如下

问题是什么
经常出现在KubeSphere的Jenkins流水线中基于Dockerfile进行镜像构建时,访问的不是docker中设置的镜像仓库,而是默认的registry-1.docker.io,从而导致构建失败。

此问题最近频繁出现,之前自己的解决方案是通过来systemctl restart docker kubelet重启,重启之后可以使用几小时或几天,然后后续此问题又会出现!

  • Dockerfile截图

  • Dockerfile构建指令

  • 直接在Linux终端中采用docker pull可成功


    yudong 感谢回复,不过我这边没有使用代理,只是设置了一个公司内部的docker镜像仓库地址而已,请问也需要将http_proxy设置为对应的镜像仓库地址么,谢谢

    lucumt 这个问题一般都是网络原因导致的,既然不好排查,可以把这个依赖镜像上传到你们内部的 docker 镜像仓库,然后修改下 Dockerfile ,依赖内部的镜像仓库里的这个镜像;

      yudong 我的问题描述里面写的有,就是直接在Linux终端采用docker pull xxx拉取对应镜像是可以的的,但是在Jenkins的dockerfile中采用FROM xxx时就会偶尔失败,这是我发现很困惑的地方,不知道大佬有啥建议否,谢谢

        yudong 我这个是公司内部网络,只能访问公司内部配置的镜像 😆

          lucumt 如果只是公司内网,还是建议在内部镜像仓库上传依赖镜像;

            yudong 我上传了依赖镜像,在linux终端里面用docker pull image可以,就是在dockerfile中用from image不行

              lucumt 上传依赖镜像之后,修改 dockerfile 里的 FROM 镜像了吗 ?

                lucumt yudong

                我找到原因了,是由于我的服务器磁盘空间使用率达到85%,达到k8s的使用阈值,出现节点驱逐现象,从而导致镜像构建出错,thank you all the same!