ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

3 步解决 Calico 镜像拉取超时:DaoCloud 镜像站前缀替换完整指南

3 步解决 Calico 镜像拉取超时:DaoCloud 镜像站前缀替换完整指南 3 步解决 Calico 镜像拉取超时DaoCloud 镜像站前缀替换完整指南【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror在国内网络环境下从 Docker Hub 拉取 Calico 等 Kubernetes 组件镜像时超时与失败是高频问题。public-image-mirror 项目DaoCloud 镜像站给出了一个改动量极小的解法将镜像地址的docker.io/前缀替换为docker.m.daocloud.io/版本标签保持原样。本文以 Calico v3.26.1 为例说明替换方法、验证方式、镜像站的工作机制以及需要规避的几类问题。问题现象拉取 Calico 镜像为什么总失败用 kubeadm、kind 或原生 Docker 部署 Calico 时calico/cni、calico/node、calico/kube-controllers这些镜像都托管在 Docker Hub 上。由于上游仓库位于境外国内节点在高峰期经常遇到i/o timeout、拉取长时间停滞、容器卡在ImagePullBackOff等表现。直接重试往往只能缓解无法根治。针对这类超时最省事的做法是换一条离用户更近的链路也就是通过 DaoCloud 镜像站中转拉取。三步完成镜像地址替换规则只有一条docker.io/前缀换成docker.m.daocloud.io/冒号后的版本标签一个字符都不要动。在 Calico 的 YAML 或 helm 值文件中找到image字段按下表替换即可其余部署步骤不需要任何调整。原地址替换后地址calico/cni:v3.26.1docker.m.daocloud.io/calico/cni:v3.26.1calico/node:v3.26.1docker.m.daocloud.io/calico/node:v3.26.1calico/kube-controllers:v3.26.1docker.m.daocloud.io/calico/kube-controllers:v3.26.1替换后重新执行拉取或重新 apply 部署文件。如果使用的是 Docker 客户端且不想改 YAML也可以在/etc/docker/daemon.json中配置registry-mirrors指向https://docker.m.daocloud.io效果等价。如何确认换源生效换完前缀并不代表就万事大吉建议做一次 digest 校验拉取镜像docker pull docker.m.daocloud.io/calico/node:v3.26.1查看镜像摘要docker inspect --format{{index .RepoDigests 0}} image:tag将该sha256:值与上游仓库同一 tag 的 digest 比对两者一致说明镜像站内容与源仓库完全对齐版本一致性没有风险。镜像站采用懒加载机制所有 sha256 均与源保持一致正常情况下一步 3 的比对结果必然是相等的。镜像站的工作机制理解以下几点就能预判它的行为边界懒加载同步请求到达时镜像站才从 Docker Hub 拉取并缓存不做全量预同步因此覆盖范围广、时效性好。manifest 约 1 小时内存缓存上游发布新内容后镜像站大约 1 小时后才会同步新的 manifest。缓存保留 30 天长期未访问的内容过期后下次拉取需要重新走同步流程。闲时更稳定国内访问走的是优化链路实测把批量拉取安排在凌晨闲时北京时间 01:00–07:00明显更稳高峰时段出现偶发超时属于正常现象。项目由 DaoCloud 团队维护配合白名单与限流机制保障服务可用性。还能用在哪些组件同一套前缀替换规则对 K8s 生态的常见组件都成立CoreDNS、Cilium、kube-proxy 等只需替换前缀、版本号与上游对齐即可。kubeadm 场景下把imageRepository和dns.imageRepository指向k8s.m.daocloud.io是标准做法。有一条底线要守住版本号必须与上游一致不要让镜像站替你漂移版本。固定 tag 或 digest而不是依赖可变标签。坑与对策清单拉取报 404 找不到 tag镜像站是懒加载缓存仅保留 30 天。过期 tag 首次拉取要等它重新同步。先确认上游确实存在该 tag稍等片刻后重试即可。拉取超时或速度极慢高峰期链路拥挤建议把拉取任务排到凌晨闲时也可以用sha256:digest 固定镜像内容避免反复重拉。部署出来的版本和预期对不上latest这类可变 tag 在上游更新后镜像站需要约 1 小时才同步新 manifest期间可能出现新旧内容混拉。生产环境应直接钉死明确版本号不要使用可变标签。边界说明DaoCloud 镜像站是公共同步站不是官方仓库。生产落地前建议核对目标 tag 对应的 digest 与上游一致方法见上文如何确认换源生效一节。内网离线场景完全无法访问公网的内网环境可以参照 docs/local-cache/README.md 自建一层本地缓存代理让内网节点从本地 registry 拉取进一步减少对镜像站的依赖。【免费下载链接】public-image-mirror很多镜像都在国外。比如 gcr 。国内下载很慢需要加速。致力于提供连接全世界的稳定可靠安全的容器镜像服务。项目地址: https://gitcode.com/GitHub_Trending/pu/public-image-mirror创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表