Zot 镜像同步:一套配置跑通跨区域分发

📅 发布时间:2026/10/21 10:55:38
Zot 镜像同步:一套配置跑通跨区域分发
Zot 镜像同步一套配置跑通跨区域分发【免费下载链接】zotzot - A scale-out production-ready vendor-neutral OCI-native container image/artifact registry (purely based on OCI Distribution Specification)项目地址: https://gitcode.com/GitHub_Trending/zo/zot业务部署在华东镜像拉取却全走华北的源 registry。链路一抖华东的 Pod 排队 ImagePullBackOff值班的人只能手动补推镜像救火。Zot 镜像同步做的就是这件事把源仓库指给 Zot它会按你定的节奏把镜像搬到本地仓库华东从此从本地拉链路从跨区长途变成局域网。跑通最小配置一份 Zot sync 配置其实只要三样东西打开扩展、给一个源 registry、给一条 content 规则。下面这段贴进 config-sync.json 的 extensions.sync 节点里就能启动同步{ enable: true, credentialsFile: ./sync-credentials.json, registries: [ { urls: [https://registry-src:5000], pollInterval: 6h, content: [ { prefix: library/nginx } ] } ] }这是一次典型的镜像定时同步每 6 小时 Zot 从源仓库拉一次 library/nginx 的最新 tag 列表新增或变化的 tag 会被复制到本地。源仓库如果需要鉴权把账号密码写进 credentialsFile 指向的文件匿名仓库可以删掉这一行。定时还是按需两种模式按 registry 粒度配置按需模式只要翻一个开关{ urls: [https://index.docker.io], onDemand: true, syncTimeout: 10m }定时模式则只加一个 pollInterval两者还可以开在同一个 registry 上定时保证主干版本按需兜住其余部分。模式什么时候跑适合什么pollInterval 定时按固定间隔扫描如 6h镜像少、版本稳定需要提前预热onDemand 按需有人拉缺失镜像时立即复制镜像长尾大部分 tag 根本没人用怎么选镜像集小几十个仓库、每个仓库少数版本就用定时pollInterval 设成 1h发版时生产已经热好了镜像集大上百个基础镜像加各种版本就用镜像按需同步拉到什么才复制什么存储和带宽都不浪费。只同步我要的过滤与路径改写每条 content 规则就是一个小漏斗每个字段各解决一个问题prefix圈定同步哪些仓库。/repo3/** 表示它下面全部只写一个仓库名就只同步那个。tags.regex / tags.excludeRegex按 tag 过滤。4.* 只复制 4.x 版本excludeRegex 用来排除平台后缀之类的 tag。tags.semver只认合法语义化版本号的 tag把 build123 这类杂音挡在外面。destination stripPrefix路径改写把 /repo2/repo 同步成本地的 /repo拉平上游目录结构。content: [ { prefix: /repo3/** }, { prefix: /repo1/repo, tags: { regex: 4.*, semver: true } }, { prefix: /repo2/repo, destination: /repo, stripPrefix: true } ]这三条规则分别覆盖子路径全量、版本过滤和路径改写三种最常见的用法组合起来就能精确圈出你要的镜像范围。上线前查这几项tlsVerify保持 true内部私有 CA 放进 certDir 指向的目录。maxRetries / retryDelay比如 5 次、间隔 1m网络抖动不至于一次失败就放弃。syncTimeout单次同步总超时默认 3h慢链路同步大镜像时调大。onlySigned只同步带签名的镜像和 cosign / notation 验签流程配套。⚠️ credentialsFile 里是源仓库的明文凭证别跟着配置一起提交进 git。各字段默认值以 sync 扩展源码为准拿不准时翻一遍比凭印象改参数安全。三种落地场景多区域分发。每个区域放一个 Zot源都指向中心仓库pollInterval 设成 1hcontent 里 prefix 只圈住生产真正用的仓库。这套跨区域镜像同步跑起来之后各区域集群从本地 Zot 拉镜像跨区长传基本消失。镜像灾备。备机房的 Zot 指向主站pollInterval 放宽松到 12h加 semver: true 只留正式版本。主站挂掉时业务切到备站拉取路径不用改存储也不会被测试 tag 撑爆。开发到生产的版本管控。生产 Zot 的源指向开发 ZotZot 镜像复制在这里当守门员prefix 只圈 prod- 开头的仓库regex 再收紧到稳定版本。开发随便推能进生产的只有发过版的。Zot 镜像复制不需要改任何业务代码在现有 registry 的配置里加一个 sync 扩展它就成了会自己更新的本地图像源。定时与按需两种模式的具体实现可以看 extensions/sync 目录下的源码完整配置样例在 examples/config-sync.json里面四种 registry 写法的组合都能直接抄。【免费下载链接】zotzot - A scale-out production-ready vendor-neutral OCI-native container image/artifact registry (purely based on OCI Distribution Specification)项目地址: https://gitcode.com/GitHub_Trending/zo/zot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考