Harbor系列之8:配置镜像代理缓存

配置镜像代理缓存

Harbor 提供的代理缓存功能可以使用 Harbor 来代理和缓存来自公共或私有仓库的镜像。

在互联网访问受限或无法访问的环境中,可以使用代理缓存从 Harbor 或非 Harbor 仓库中拉取镜像;还可以使用代理缓存来限制对公共仓库发出的请求数量,避免消耗过多带宽或被仓库服务器限制。

说明:

从 Harbor v2.1.1 开始,代理缓存功能已更新,以与 Docker Hub 的速率限制策略保持一致。如果要做Harbor 中使用代理缓存,建议您使用 v2.1.1 或更高版,以免避免受到速率限制。

Harbor 系统管理员通过创建一个代理缓存项目来配置代理缓存,该项目使用您已配置的注册表端点(新建目标)连接到目标注册表(目标registry)。代理缓存项目的工作方式类似于普通的 Harbor 项目,只是您不能将镜像推送到代理缓存项目。

1. 工作原理

当有拉取请求到达代理缓存项目时,如果镜像未被缓存,Harbor 会从目标注册表(目标registry)拉取该镜像,然后就可以从代理缓存项目执行类似本地镜像的拉取命令。代理缓存项目随后会缓存该镜像,以供未来请求使用。

下次用户请求该镜像时,Harbor 会检查目标注册表中该镜像的最新清单,并根据以下场景提供镜像服务:

  1. 如果目标注册表中的镜像没有更新,则从代理缓存项目中提供缓存的镜像。

  2. 如果目标注册表中的镜像已更新,则从目标注册表拉取新镜像,然后在代理缓存项目中提供并缓存该镜像。

  3. 如果无法访问目标注册表,则从代理缓存项目中提供缓存的镜像。

  4. 如果目标注册表中不再有该镜像,则不提供任何镜像。

从 Harbor v2.1.1 开始,Harbor 代理缓存通过发送 HEAD 请求来确定缓存镜像的任何层是否在 Docker Hub 注册表中已更新。使用此方法检查目标注册表不会触发 Docker Hub 的速率限制器。如果任何镜像层已更新,代理缓存将拉取新镜像,这将计入 Docker Hub 的速率限制器。

2. 配置步骤

详细操作说明,请参见 Harbor 官方文档,以下为步骤要点。本文以harbor v2.11.0版本操作进行记录:

2.1 创建目标仓库

Harbor支持代理缓存如下的仓库:

  1. Harbor
  2. Docker Hub
  3. Docker registry
  4. AWS Elastic Container Registry
  5. Azure Container Registry
  6. Google Container Registry
  7. Quay
  8. Github Container Registry
  9. JFrog Artifactory Registry

本文以最知名的仓库Docker hub为例进行配置演示。登录 Harbor Web界面,进入仓库管理页面,点击新建目标,创建需要被代理和缓存的目标镜像仓库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HplEtusv-1722248580686)(https://i-blog.csdnimg.cn/direct/7d380bf71d4d40808d7bc66b47b2f74b.png#pic_center)]
这里提供者选择docker hub,访问id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lldhsds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值