镜像推送异常慢

gitlab Docker部署
镜像构建完成后,kaniko推送至仓库时非常慢,开启缓存时超过1小时都无法完成推送,严重影响使用。
本地构建推送时一样的问题,超过5分钟都无法完成推送,镜像极小 13Mb

你好,我没太理解到你是使用gitlab的container registry功能,向gitlab container registry推送镜像很慢,还是使用gitlab runner构建完镜像之后向第三方镜像仓库推送镜像很慢?

gilab的container registry,不管是我从自己电脑上推送还是从gitlab runner推送,都很慢。在我自己电脑是推送时,进度条已经走完但是一直不结束,最后会超时。gitlab runner也是一样

这种情况的话,麻烦你排查一下以下几个方面:

  1. 你们container registry是否使用了nfs之类的低性能存储,对于container registry的存储我们建议使用高性能ssd或对象存储
  2. 检查一下你们推送端和gitlab server之间的网络带宽是否够大,因为镜像推送很吃网络io,如果带宽很小也会导致推送特别的慢
  3. 在推送时查看/var/log/gitlab/gitlab-rails/production_json.log/var/log/gitlab/gitlab-rails/exceptions_json.log等日志,看是否有报错抛出
  4. 如果实在无法定位到问题建议可以尝试升级到较新的版本,因为一些老的版本确实存在container registry push很慢的bug。
  1. 我们用的本地部署,用了四块HDD做的raid z
  2. 带宽应该是够的,云端代理是2000m,本地是千兆网
  3. 待检查
  4. 已经升到最新的版本

这样看来你们的环境应该没啥问题,只有从日志下手了,在日志中找找有没有错误日志已经是哪个组件的响应时间长。

exceptions_json.log 这个里面没有设错误信息,只有两条数据库链接错误。

production_json.log 这个太长太复杂,我没筛选出有用的信息, 我看能不能传上来 :joy:

好像不能上传文件

你可以搜索一下container registry相关的信息

我找了很多资料,还是没解决这问题

在production_json.log中应该会有container_registry字段的相关日志。

另外,你可以通过修改/etc/gitlab/gitlab.rb配置文件:

registry['log_level'] = "debug"

这样去开启container registry的debug日志。
然后去查看/var/log/gitlab/registry/current日志这里面会有你推送时产生的日志。