news 2026/9/11 15:00:42

ArgoCD 镜像拉取慢怎么办:三级加速方案与内网缓存避坑指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ArgoCD 镜像拉取慢怎么办:三级加速方案与内网缓存避坑指南

ArgoCD 镜像拉取慢怎么办:三级加速方案与内网缓存避坑指南

【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror

ArgoCD 镜像加速方案:国内集群同步应用时,gcr.io 等境外仓库拉取卡顿、超时,DaoCloud 开源的 public-image-mirror 加个前缀就能走国内同步节点;再配一层内网 registry 缓存,外网依赖降到最低。

先看现场:ArgoCD 拉取慢到底卡在哪

最常见的误判是"网络不好",其实多数时候是路径问题:集群要跨公网去境外仓库逐层下载,排队、限速、超时轮番上阵,Pod 事件里反复刷ImagePullBackOff,sync 状态就一直挂在 syncing 不动。ArgoCD 还会把问题放大——一次同步往往涉及多个工作负载,任何一个镜像拉不下来,整个应用就停摆。重灾区是 gcr.io 这类国内镜像覆盖不到的仓库:kubeadm、cert-manager、各类 Operator 的组件镜像基本都住在那儿,稍有更新就得重新拉。

原理一句话:名称映射 + 定时巡检

public-image-mirror 不搬库、不转码,做的是地址映射:境外仓库在国内同步节点上挂一份"别名",拉取请求先落到节点,节点再按需回源;sha256 与源站保持一致,缓存 30 天到期后会自动重新同步。另外它是懒加载机制——没被请求过的 tag 不会提前搬运,所以你只需要关心用哪个前缀,日常维护交给它的定时巡检,把它当成一套现成的 K8s 镜像同步方案即可。

三档落地方案:按侵入程度从轻到重

三种方式按"要动多少东西"排成递进关系:改地址 → Webhook → 内网缓存。个人或小团队,前两档通常就够;规模上来、对外网依赖敏感时,再上第三档。

档位一:改一处镜像地址就能提速

这是最轻的一档:不引入任何组件,只改一行文本,回滚也是一次替换。原始地址前加m.daocloud.io/,或对下表中的域名做前缀替换,两种写法共用同一个同步后端:

docker.io/library/busybox ↓ 加前缀 m.daocloud.io/docker.io/library/busybox gcr.io/google-samples/hello-app:1.0 ↓ 前缀替换 gcr.m.daocloud.io/google-samples/hello-app:1.0

在 ArgoCD 里不用碰 Application 定义本身,把 K8s 资源中的containers[].image换成上面任一种写法,下一次 sync 即走加速链路;kubeadm 场景把imageRepository换成k8s.m.daocloud.io同理。注意前缀替换是人工维护的固定清单,清单外的源站请一律用加前缀,映射关系按仓库类型整理如下:

分组源站替换为备注
Docker 系docker.iodocker.m.daocloud.io使用最频繁
Docker 系docker.elastic.coelastic.m.daocloud.io
Docker 系quay.ioquay.m.daocloud.io
Docker 系dhi.iodhi.m.daocloud.io
GCR / K8s 系gcr.iogcr.m.daocloud.io
GCR / K8s 系k8s.gcr.iok8s-gcr.m.daocloud.io源站已迁往 registry.k8s.io
GCR / K8s 系registry.k8s.iok8s.m.daocloud.io
其他ghcr.ioghcr.m.daocloud.io
其他mcr.microsoft.commcr.m.daocloud.io
其他nvcr.ionvcr.m.daocloud.io
其他registry.ollama.aiollama.m.daocloud.io实验内测中

补充一句:各源站内容互相独立,不要把 docker.io 之外的站点塞进 Docker 的registry-mirrors,替换表想加新条目则走 Issue。

档位二:让 Webhook 替你改 Pod 镜像

应用一多,逐个改image就不现实了。repimage 用 Webhook 在 Pod 创建时自动改写镜像地址,yaml 与 Helm chart 保持原样不动,部署只有两条命令:

kubectl create -f https://files.m.daocloud.io/github.com/wzshiming/repimage/releases/download/latest/repimage.yaml kubectl rollout status deployment/repimage -n kube-system

要留意作用边界:Webhook 只拦新建的 Pod,存量容器不会被原地改写,需要rollout restart之后才切到加速地址。

档位三:内网 registry 缓存代理,外网只走一次

前两档的首次拉取仍会回源。集群规模上来后,在内网垫一层缓存最稳:本地 registry 代理m.daocloud.io,命中缓存直接返回,未命中才由它去回源。完整步骤见 docs/local-cache/README.md,compose 文件的核心内容如下:

services: registry: image: m.daocloud.io/docker.io/library/registry:3 ports: - "8888:8888" command: ["/etc/docker/registry/config.yml"] volumes: - cache-data:/var/lib/registry configs: - source: registry-config target: /etc/docker/registry/config.yml configs: registry-config: content: | version: 0.1 storage: filesystem: rootdirectory: /var/lib/registry http: addr: :8888 proxy: remoteurl: https://m.daocloud.io ttl: 2160h volumes: cache-data: {}

启动后,客户端只需在/etc/docker/daemon.json里把内网地址声明为可信仓库,再重启 Docker 即可生效:

{ "insecure-registries": ["<registry-host:port>"] }

此后拉取写法与前缀方案完全一致,只是前缀换成内网地址:docker pull <registry-host:port>/docker.io/library/nginx:latest

拉取仍慢的 4 个自查点 🔎

配置完还是慢?按顺序过一遍这四点:

  1. 挪到闲时:白天节点比较拥挤,批量拉取任务放到凌晨 1 点到 7 点(北京时间)执行,吞吐会明显更稳。
  2. 钉死版本:优先用@sha256:摘要,其次选明确版本号的 tag;latest这类可变 tag 一旦更新就触发后台重新同步,缓存命中率低。
  3. 验证链路:先在节点上手动docker pull一次加速地址,把"仓库本身慢"和"节点 DNS、代理、防火墙拦了请求"区分开。
  4. 查队列与状态:用同步队列(仅保留一小时记录)确认你的镜像是否在排队,再用服务状态监控看后端整体健康度。

下一步:查文档,再提 Issue

白名单、限流、新增源站这类问题,先翻项目文档,解决不了就到仓库提 Issue。需要本地核对同步清单时,git clone https://gitcode.com/GitHub_Trending/pu/public-image-mirror拉一份 DaoCloud 维护的 public-image-mirror 源码看看,项目更新节奏不慢,动手前记得通读一遍 README。

【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 14:54:37

RP2040低功耗实战:时钟树与电源域寄存器级控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 14:53:39

3步上手copyparty文件服务器主题定制:CSS变量完整指南

3步上手copyparty文件服务器主题定制&#xff1a;CSS变量完整指南 【免费下载链接】copyparty Portable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails all in one file 项目地址: https://gitcode…

作者头像 李华
网站建设 2026/9/11 14:53:09

GPU选型不只看跑分:算清训练达标成本才是关键

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 14:52:55

2026年AI论文写作网站哪家比较靠谱?论文辅助网站横向对比参考

摘要&#xff1a;随着 AI 技术在科研领域的渗透&#xff0c;论文辅助工具数量激增&#xff0c;但质量良莠不齐。如何甄别合规、实用的辅助平台&#xff0c;成为科研人员面临的现实问题。本文以“证据驱动”与“学术合规”为核心标尺&#xff0c;围绕论文写作全流程&#xff0c;…

作者头像 李华