harbor的远程镜像复制与“联邦同步”实为同一机制,即通过双向复制策略实现跨实例同步;需配置可信端点、权限与证书,并分别在两端创建源→目标的复制策略,避免循环触发。

Harbor 的远程镜像仓库复制(Replication)与联邦同步(Federation)本质是同一套机制——基于 Harbor 内置的复制策略(Replication Policy)实现跨实例镜像同步,官方并未单独定义“联邦同步”这一模式,而是通过双向复制策略模拟联邦效果。配置核心在于:目标 Harbor 实例需开放 API 访问、双方配置可信连接、创建带过滤条件的复制规则。
一、前提准备:网络与权限打通
确保源 Harbor 与目标 Harbor 实例可互相访问以下端口:
- 目标 Harbor 的 443 端口(HTTPS)必须开放,复制任务通过其 REST API(如
/api/v2.0/projects)通信; - 若目标 Harbor 启用 TLS(推荐),需将目标的 CA 证书(或自签名证书)导入源 Harbor 节点的系统信任库(
/etc/ssl/certs/ca-certificates.crt),或在 Harbor UI 复制策略中勾选“跳过证书验证”(仅测试环境); - 目标 Harbor 需启用“外部访问”,且对应项目(Project)设置为 公开(Public) 或为源 Harbor 创建专用机器人账号(Robot Account),赋予
pull权限(复制出站需 pull;复制入站需 push); - 源 Harbor 的管理员需在目标 Harbor 上拥有至少
project-admin角色,用于自动创建同名项目(若启用“自动创建项目”选项)。
二、配置远程端点(Endpoint)
登录源 Harbor Web 控制台(如 https://harbor-src.example.com)→ 左侧菜单【Administration】→【Registries】→【+ NEW ENDPOINT】:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
Name:自定义标识,如
harbor-prod; -
URL:目标 Harbor 地址,格式为
https://harbor-dest.example.com(末尾不加斜杠); -
Provider:选择
Docker Registry(Harbor 兼容该协议); -
Access ID / Access Secret:填写目标 Harbor 的机器人账号用户名(如
robot$harbor-replicator)及密钥(Token),非管理员密码; - 勾选 Verify Remote Certificate(生产环境建议开启,并提前同步证书);
- 点击【TEST CONNECTION】确认连通性成功后保存。
三、创建复制策略(单向同步)
进入【Interrogation】→【Replication】→【+ REPLICATION POLICY】:
-
Name:如
sync-alpine-to-prod; -
Source Resource Filter:
- Repository:支持通配符,如
library/alpine、myapp/**(匹配所有子路径); - Tag:留空同步全部,或填
latest,3.*(逗号分隔,支持 glob 模式); - Trigger:选
Manual(手动执行)、Event-based(推送即触发,需源 Harbor 开启 webhook)、Scheduled(如0 0 * * *每天零点);
- Repository:支持通配符,如
- Destination Namespace:目标 Harbor 中存放镜像的项目名(自动创建需开启对应开关);
- Enable:勾选启用;
- 保存后,策略立即就绪,可点击右侧 ▶️ 手动触发一次测试。
四、实现双向联邦(伪联邦)
所谓“联邦同步”,实际是部署两套独立复制策略:
- 在 Harbor A 上创建策略:源为 A 的项目 X → 目标为 Harbor B 的项目 X;
- 在 Harbor B 上创建策略:源为 B 的项目 X → 目标为 Harbor A 的项目 X;
- 注意避免循环复制:禁用
Event-based触发,改用定时同步(如错开 5 分钟),或通过标签约定(如只同步带-federated后缀的镜像); - 镜像元数据(如扫描结果、CVE 信息)不会同步,仅镜像层与 manifest;项目级配置(如漏洞扫描策略、保留策略)需各自单独配置。
说明:Harbor v2.8+ 支持基于 OCI Artifact 的更细粒度同步(如 Helm Chart),但核心流程不变。所有操作亦可通过 Harbor API(/api/v2.0/replication/policies)脚本化管理,适合 CI/CD 集成。










