Appearance
Harbor镜像同步
各个Harbor仓库独立项目隔离和权限管理
支持新增地域(如测试集群、边缘节点),架构可横向扩展
内网同步利用高带宽,公网推送优化稳定性
同步方式说明
双向同步
双向同步:在对应的两个Harbor仓库均配置基于事件驱动的单向推送,这样无论在哪个仓库推送镜像,都会同步到另一个镜像仓库
单向推送
当推送端收到镜像后,会往被推送端推送镜像,可以用于私网向公网同步镜像
单向拉取
从目标仓库拉取镜像到当前仓库,可以用于私网同步公网的镜像到本地
部署Harbor
参考: 《harbor离线部署2.x》
配置双向同步
配置hosts
内网:不管单向还是双向,操作的Harbor所在服务器都需要此操作,公网可忽略,如果harbor仓库走IP访问可忽略
bash
$ vi /etc/hosts
192.168.99.100 harbor.liulike.top
192.168.99.200 registry.liulike.top修改harbor的docker-compose.yml
bash
$ vi docker-compose.yml
services:
core:
...
volumes:
- /data/harbor/data/ca_download/:/etc/core/ca/:z
- /etc/hosts:/etc/hosts:z # 加入此项
- /data/harbor/data/:/data/:z
- ./common/config/core/certificates/:/etc/core/certificates/:z
- type: bind
source: ./common/config/core/app.conf
target: /etc/core/app.conf
- type: bind
source: /data/harbor/data/secret/core/private_key.pem
target: /etc/core/private_key.pem
- type: bind
source: /data/harbor/data/secret/keys/secretkey
target: /etc/core/key
- type: bind
source: ./common/config/shared/trust-certificates
target: /harbor_cust_cert
networks:
harbor:
...
jobservice:
...
volumes:
- /data/harbor/data/job_logs:/var/log/jobs:z
- /etc/hosts:/etc/hosts:z # 加入此项
- type: bind
source: ./common/config/jobservice/config.yml
target: /etc/jobservice/config.yml
- type: bind
source: ./common/config/shared/trust-certificates
target: /harbor_cust_cert
networks:
- harbor
...配置后重启Harbor
bash
$ docker-compose down
$ docker-compose up -d仓库管理配置
互相配置对方的仓库信息


复制管理配置
复制允许用户在 Harbor 和非 Harbor 注册中心之间复制资源,包括镜像和图表,支持拉取或推送模式。
当 Harbor 系统管理员设置了复制规则后,所有匹配已定义过滤模式的资源以及任何相关的 Cosign 签名,在满足触发条件时将被复制到目标注册中心。每个复制的资源都会启动一个复制任务。如果目标注册中心中命名空间不存在,则会自动创建一个新的命名空间。如果命名空间已存在,并且复制策略中配置的用户账户没有写入权限,则该过程将失败。成员信息不会被复制。
复制期间可能会有一些延迟,具体取决于网络状况。如果复制任务失败,它将在几分钟后重新计划并重试多次。
参考以下配置:
| 选项 | 内容 |
|---|---|
| 复制模式 | Push-based |
| 源资源过滤器 | 根据需要选择 |
| 名称空间 | 不填 |
| 仓库扁平化 | 无替换-按原来的层级保存,否则会被替换对应层级 |
| 触发模式 | 事件驱动 或 定时 |


第一次同步:
选择对应的规则,点击复制即可

复制往后目标端就有了所有的镜像:
源端

目标端(可以看到创建时间是不一样的)

此时在其中一个Harbor仓库添加镜像,就会推送到另外一个Harbor仓库