harbor镜像同步
0.Harbor的镜像同步机制
有了多个镜像仓库,在多个仓库之间进行镜像同步马上就成为了一个普遍的需求。
Harbor则提供了更加灵活的方案来处理镜像的同步,其核心是三个概念:
用Harbor自己的API来进行镜像下载和传输,作到与底层存储环境解耦。
利用任务调度和监控机制进行复制任务的管理,保障复制任务的健壮性。在同步过程中,如果源镜像已删除,Harbor会自动同步删除远端的镜像。在镜像同步复制的过程中,Harbor会监控整个复制过程,遇到网络等错误,会自动重试。
提供复制策略机制保证项目级的复制需求。在Harbor中,可以在项目中创建复制策略,来实现对镜像的同步。与Docker Registry的不同之处在于,Harbor的复制是推(PUSH)的策略,由源端发起,而Docker Registry的复制是拉(PULL)的策略,由目标端发起。
同步示意图1.部署前提:
需要至少两节点的harbor
安装步骤参考:https://www.jianshu.com/p/e7398e7a5f76
假设:部署的两台主机是:192.168.37.10 (主)192.168.37.9(从),确保配置了insecure-registries":["192.168.37.10"]
2.首先在主上传一个镜像:
docker pull nginx
docker tag nginx:latest 192.168.37.10/educloud/nginx:V1
docker push 192.168.37.10/educloud/nginx:V1
查看镜像:
镜像上传成功3.配置从远程同步镜像
Harbor系统管理员设置复制规则后,满足触发条件时,所有与定义的过滤器模式匹配的资源都将复制到目标注册表。复制的每个资源都会启动复制任务。
如果目标注册表中不存在该名称空间,则会自动创建一个新的名称空间。
如果它已经存在,并且复制策略中配置的用户帐户没有写权限,则该过程将失败。
会员信息不被复制。
根据网络状况,复制期间可能会有一些延迟。如果复制任务失败,则会在几分钟后重新安排它并重试几次
3.1)配置主的相关信息:
主库的账号信息3.2)配置同步信息:
同步信息设置3.3)同步结果:
同步结果4.如果是双主模式的话,需要在主的那个上面再执行上面的操作:
4.0)确保配置了insecure-registries":["192.168.37.10","192.168.37.9"]
重新启动docker服务
4.1)配置从的相关信息
4.2)配置同步信息
执行结果:
同步从的镜像5.此处触发模式都是手动执行,可以再配置同步信息的时候将触发模式换成自动!