讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux harbor 的 replication rule 与多数据中心镜像同步

大辰姑娘_6293

大辰姑娘_6293

发布时间:2026-02-15 16:17:37

|

569人浏览过

|

来源于php中文网

原创

<p>Harbor replication rule 卡在“pending”主因是事件驱动机制:仅新 push 的 artifact 触发任务,非定时扫描。老镜像需手动改 rule 为 * 后 trigger 才能同步。</p>

linux harbor 的 replication rule 与多数据中心镜像同步

replication rule 为什么总卡在 “pending” 状态

规则创建后长期不触发同步,界面显示 pending,不是延迟高,而是根本没被调度。Harbor 的 replication controller 默认只每 5 分钟轮询一次任务队列,且仅当源项目有新 artifact(镜像或 Helm chart)被 push 后才生成待执行任务——不是“定时轮询源仓库”,而是“事件驱动 + 延迟检查”。

常见错误现象:replication rule 启用后,已有镜像不自动同步;手动 trigger 失败并报 no eligible artifacts found;日志里反复出现 skip replication task: no new artifacts。

  • 确认源项目是否真有新 push:老镜像不会被补同步,replication rule 不是“全量扫描同步”,它只管增量
  • 检查目标 Harbor 的 project 是否已存在且权限正确:目标项目名必须与 rule 中配置完全一致(区分大小写),且 robot account 必须有 pull/push 权限
  • 验证 endpoint 配置:如果目标 Harbor 启用了 HTTPS 但证书非 CA 签发,需在源 Harbor 的 endpoint 配置中勾选 insecure,否则任务直接静默失败

跨数据中心同步时 tag 过滤器失效

用 **/latest 或 release-* 这类通配符在多 DC 场景下常不生效,根本原因是 Harbor 的 tag 过滤器只作用于 artifact 的 manifest 层级 tag,而不同数据中心的 Harbor 实例若未开启 clair 或 trivy 扫描,tag 元数据可能未完整索引,导致过滤逻辑跳过匹配。

使用场景:A 数据中心推送了 app:v1.2.3 和 app:latest,rule 设了 latest,但只有 v1.2.3 被同步过去。

  • 优先改用正则模式:^latest$ 比 latest 更可靠;避免用 * 开头,Harbor 对前导通配符支持弱
  • 确保源 Harbor 的 job_service 正常运行,且 core 日志中无 tag filter not applied due to missing metadata 类报错
  • 如果必须同步历史 tag,临时改 rule 为 *,再手动 trigger 一次,完成后立刻切回精确模式——这是唯一绕过“仅增量”的办法

replication rule 与 robot account 权限不匹配的典型报错

最常遇到的是 401 unauthorized 或 403 forbidden,但日志里往往只显示 failed to pull artifact from source,掩盖了真实权限问题。robot account 是 Harbor 内部服务账号,它的 scope(作用域)必须显式包含目标项目,不能靠“project admin”角色继承。

linux-sysadmin
linux-sysadmin

Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...

下载

错误示例:failed to create replication task: failed to get project info: 403 Forbidden,说明 robot account 在目标 Harbor 上连 GET /projects/{id} 都被拒了。

  • robot account 的 access 列表里,target project 必须用 ID(数字)而非名称填写;填错成项目名会导致 403
  • 如果目标 Harbor 启用了 LDAP/AD 认证,robot account 无法跨认证源复用——必须在目标实例单独创建同名 robot,并赋予对应权限
  • 不要复用 admin 用户 token:replication service 不接受 UI 用户 token,只认 robot account 的 robot$xxx 格式密钥

大镜像同步失败:timeout 与 chunked upload 问题

同步超过 2GB 的镜像时,经常卡在 uploading layer 阶段然后超时,错误信息类似 context deadline exceeded 或 failed to upload blob: read tcp: i/o timeout。这不是网络断开,而是 Harbor 默认的 HTTP client timeout(30s)和 backend reverse proxy(如 Nginx)的 proxy_read_timeout 不匹配。

性能影响:单个大 layer 同步失败会导致整个 artifact 失败重试,且重试不带断点续传,重复传输已成功部分。

  • 调高源 Harbor 的 harbor.yml 中 jobservice 的 max_job_workers 和 worker_pool 超时值,重点改 replication job 的 timeout(单位秒)
  • 目标 Harbor 前置的 Nginx 必须设置:proxy_read_timeout 3600、proxy_send_timeout 3600,否则上传中途会被 proxy 主动断连
  • 避免在 rule 中启用 override:它会强制覆盖目标层,触发完整 re-upload,对大镜像雪上加霜;只在确实需要覆盖时才打开

跨数据中心同步不是“配好 rule 就一劳永逸”,真正麻烦的是元数据一致性、权限链路断裂和超时阈值错配——这些地方一旦漏查,就会陷入“能看到任务、但永远不动”的死循环。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

383

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3167

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

5805

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

561

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1476

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3918

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

122

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

417

2026.01.13

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

0

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn