Stone Stone

开发测试仓库同步生产仓库失败解决记录 Harbor

in 运维人生 read (77) 文章转载请注明来源!

这阵子在开发环境使用jenkins打包镜像之后推送到harbor,然后在测试仓库同步项目到目标harbor,发现以下报错:

2019-09-25T08:27:16Z [ERROR] [transfer.go:299]: an error occurred while pushing blob sha256:e7c96db7181be991f19a9fb6975cdbbd73c65f4a2681348e63a141a2192a5f10 of isap-extends/rabbit-demo:1.0 to the distination registry: Put http://******.com:30890/v2/isap-extends/rabbit-demo/blobs/uploads/5e633a8e-9563-421f-80ef-03ac1060f0f3?_state=VvhlEAENqc1-vJpvRz35QM8zeu6jtDjtQSwM8GEJ4eF7Ik5hbWUiOiJpc2FwLWV4dGVuZHMvcmFiYml0LWRlbW8iLCJVVUlEIjoiNWU2MzNhOGUtOTU2My00MjFmLTgwZWYtMDNhYzEwNjBmMGYzIiwiT2Zmc2V0IjowLCJTdGFydGVkQXQiOiIyMDE5LTA5LTI1VDA4OjIxOjUwLjU0MjQxMzc2N1oifQ%3D%3D&digest=sha256:e7c96db7181be991f19a9fb6975cdbbd73c65f4a2681348e63a141a2192a5f10: net/http: HTTP/1.x transport connection broken: write tcp 172.18.0.9:39458->**.**.**.11:30890: write: connection reset by peer

出现以上报错之后检测网络,以及服务器环境发现均无异常,于是搜索一番之后github官方提供的说法是nginx的timeout 要设置长一点,工作线程开高一点. 但是没有解决这个问题.

在一番折腾之后我们在生产环境以及测试环境中找到harbor的配置文件中,发现默认配置的job是10个,在测试了之后发现的确是这个配置导致的同步失败,但是我并不想修改harbor的配置文件,因为修改之后需要重启服务.

最终解决方法:
我们在复制规则中配置了镜像过滤器,因为导致这个问题就是因为同步的镜像数量超过10个导致的失败,配置源镜像过滤器我们只需要把需要的镜像推送到目标仓库,而不是把项目的所有镜像推送.

总结:
这样配置稍微麻烦了一点但是可以解决目前问题,嫌麻烦的朋友可以直接修改harbor 的job数量 以及nginx的配置.

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://blog.66cto.cn/index.php/archives/152/ (转载时请注明本文出处及文章链接)

运维人生
发表新评论
❋该站点已苟活
© 2019 Stone博客 沪ICP备19015953号-1

前篇 后篇
雷姆
拉姆