Calico 镜像拉取失败快速解决:DaoCloud 镜像站前缀替换指南
【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror
K8s 部署 Calico 时,node、cni、kube-controllers 三个镜像卡在拉取,多半是连不上 Docker Hub。解法:把镜像地址的docker.io/前缀换成docker.m.daocloud.io/,版本标签保持原样,一般就能拉下来。
方案说明:DaoCloud 镜像站是什么
DaoCloud 镜像站是公共同步站,负责把公共镜像从 Docker Hub 转发给你。它用懒加载机制:你拉取时才去上游抓,平时不囤,所以每个镜像的 sha256 与源仓库一致,没有版本偏差。
镜像地址替换对照表
规则一句:Docker Hub 镜像把docker.io/换成docker.m.daocloud.io/,版本标签原封不动。Calico v3.26.1 三个核心组件对照如下:
| 原地址 | 替换后地址 |
|---|---|
calico/cni:v3.26.1 | docker.m.daocloud.io/calico/cni:v3.26.1 |
calico/node:v3.26.1 | docker.m.daocloud.io/calico/node:v3.26.1 |
calico/kube-controllers:v3.26.1 | docker.m.daocloud.io/calico/kube-controllers:v3.26.1 |
改完 YAML 里的 image 字段,其余部署步骤照旧。
使用前要知道的三件事
- 同步约 1 小时延迟:manifest(即镜像的"目录清单")带 1 小时内存缓存,上游发新版后大约一小时才拉得到。
- 缓存只保留 30 天:过期后首次拉取会触发重新同步,期间可能报 404,确认上游确有该 tag 后稍等重试。
- 它属于公共同步站,并非官方仓库。⚠️ 生产落地前,建议核对 tag 的 digest(内容摘要)跟上游是否一致。
延伸场景
同样的前缀替换,对 CoreDNS、Cilium、kube-proxy 等 K8s 生态组件都成立。kubeadm 场景可改用k8s.m.daocloud.io前缀。底线只有一条:版本号必须和上游保持一致,镜像站不会替你改版本。
常见问题
- 拉取报 404、找不到 tag?镜像站是懒加载,缓存过期后首次拉取要等它重新同步。确认上游确有该 tag,稍等重试即可。
- 拉取超时或特别慢?高峰期链路拥挤,建议把拉取放在凌晨闲时(北京时间 01–07 点),实测更稳;也可用
@sha256:摘要固定内容,避免反复重拉。 - 装出来版本对不上?latest 这类浮动 tag 更新后,约 1 小时新 manifest 才同步到位,期间新旧版本会混在一起。生产环境建议固定到明确版本号。
内网离线环境可自建一层本地缓存代理来提速,仓库内本地缓存文档:docs/local-cache/README.md。
【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢,需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考