harbor跨国灾备关键在于传得准、稳、可验证,需端到端闭环:一、打通低延迟https网络链路并测试连通性;二、用robot account配置最小权限凭证并验证连接;三、设event_based复制规则+精准标签过滤;四、通过pull校验、日志审查及manifest api验证灾备有效性。

用 Harbor 的镜像复制机制实现跨国异地灾备,关键不是“能不能传”,而是“传得准、传得稳、传得可验证”。它依赖一套端到端的配置闭环:从源端触发策略、目标端权限与网络就绪,到过滤精准、状态可观测。
一、提前打通跨国网络链路
Harbor 实例间通信必须稳定低延迟,否则复制任务频繁超时或中断。
- 使用 HTTPS 协议访问目标 Harbor,确保 TLS 证书有效(建议用公网域名 + 公共 CA 签发证书)
- 测试基础连通性:curl -I https://harbor-tokyo.example.com/v2/,返回 200 或 401 表示服务可达;若超时或拒绝连接,需检查防火墙、安全组及 DNS 解析
- 跨国 RTT 建议控制在 300ms 内,带宽不低于 50Mbps;如延迟过高,可在目标侧启用 Pull 模式,由灾备 Harbor 主动拉取,减轻源端压力
二、配置最小权限的目标仓库凭证
避免使用 admin 账号,防止灾备端误删或越权操作。
- 在目标 Harbor 创建 robot account,仅授予对应项目(如 prod-backup)的 push/pull 权限
- 在源 Harbor 的「系统管理 > 仓库管理」中添加目标注册表时,填写该 robot account 的用户名和 token(非明文密码)
- 测试连接成功后,再启用复制规则——这步不可跳过,否则规则启用后静默失败
三、设置事件驱动+精准过滤的复制规则
灾备场景要求关键镜像“推即同步”,不能靠定时任务引入小时级延迟。
- 进入源 Harbor 对应项目(如 prod-apps),点击「复制」→「新建复制规则」
- 触发模式选 event_based(镜像推送后立即触发)
- 过滤条件示例:
- 类型 repository,值 prod-apps/**
- 类型 tag,值 release-*, hotfix-*(只同步正式发布标签)
- 禁用「覆盖已存在镜像」选项,保留历史版本完整性
四、建立可验证的灾备有效性机制
“任务显示成功”不等于灾备可用。必须定期抽检镜像内容是否完整。
- 每天自动执行一次校验脚本:在灾备集群节点运行 docker pull harbor-tokyo.example.com/prod-apps/frontend:release-2.8.0,再 docker inspect 验证 Entrypoint、Labels 和 Layer 数量
- 通过 Harbor 控制台「复制日志」页面,查看最近 10 条任务详情,确认无 “skipped due to tag mismatch” 或 “unauthorized” 错误
- 对关键镜像,调用目标仓库 Manifest API:curl -H "Authorization: Basic $(echo -n user:token | base64)" https://harbor-tokyo.example.com/v2/prod-apps/frontend/manifests/release-2.8.0,检查 layers 字段是否非空










