小白之前用Ceph S3在为Harbor的Registry做后端存储时,不管是在1.x还是最新的2.1版本都会遇到docker push较大块镜像时不断重试的情况。
image.png
按照以往的经验,小白只能将Ceph的S3改为兼容Swift协议才能成功push镜像。
不过最近有了新的解决方案,引起该问题的似乎跟registry服务的配置multipartcopythresholdsize
有关
harbor-helm里面关于multipartcopythresholdsize的默认值是32M
,显然在一个内网镜像仓库,并且docker镜像层没优化的前提下,这个值很容易超过。当前multipartcopythresholdsize最大支持5G
,所以修改helm配置后重新部署服务即可解决该问题。
s3:
region: default
bucket: <your-bucket>
accesskey: <your-accesskey>
secretkey: <your-secretkey>
regionendpoint: <your-endpoint>
#encrypt: false
#keyid: mykeyid
#secure: true
#skipverify: false
#v4auth: true
#chunksize: "5242880"
#rootdirectory: /s3/object/name/prefix
#storageclass: STANDARD
#multipartcopychunksize: "33554432"
#multipartcopymaxconcurrency: 100
multipartcopythresholdsize: "5368709120" \\改为最大值5G
关于云原生小白
云原生小白的创号目的是将平日里离大家较远云原生应用以实用的角度展现出来,站在小白的角度来看待和使用云原生,并以每篇文章解决一个实际问题的出发点带领大家走进云原生。
网友评论