您的位置:首页 >滚动 >

别再排查 ImagePullBackOff 了,先看看你的镜像源

2026-04-04 13:03:10    来源:今日热点网

周末值班,钉钉群里突然炸了——三个 Pod 同时报 ImagePullBackOff,告警刷屏。我打开终端一看:

Warning  Failed     43s   kubelet  Failed to pull image "registry.k8s.io/pause:3.9": rpc error: code = Unknown desc = Error response from daemon: Get "https://registry.k8s.io/v2/": net/http: TLS handshake timeout

第一反应:又是镜像源抽风了。

排查了一圈,问题不在集群

我按惯常流程走了一遍:

• 检查节点网络:ping 正常,curl 外网也通

• 查看 DNS 解析:nslookup registry.k8s.io 没问题

• 重启 containerd:无效

• 手动 crictl pull:一样超时

问题很明确——不是集群的事,是镜像源的网络链路又不稳定了。我们管理着十几个节点,每个节点都要从海外源拉镜像,白天高峰期基本碰运气。

这种事之前也发生过,每次都是临时换个镜像源对付过去。但换来换去,要么速度不稳定,要么过一阵又失效,运维群里隔三差五就有人问"今天用哪个源能拉"。

同行推荐了一个方案

后来在技术群里吐槽的时候,有个做金融系统的朋友说他们全集群已经稳定跑了大半年,用的是毫秒镜像(1ms.run)。

金融级 SLA,这个含金量不需要多解释。对于生产集群来说,稳定性比速度重要一百倍。

他还提了一句:宝塔、爱快、绿联这些厂商已经在系统里原生内置了这个加速服务。大厂愿意集成,说明质量确实扛得住。

配置过程比我想的简单

以前给 K8s 集群配镜像加速,要手动改 containerd 配置文件、区分版本(1.5 前后格式不同)、重启服务……十几台机器搞下来半天就没了。

这次直接用了 1ms-helper,一个命令搞定:

# 安装 1ms-helpercurl -sSL https://static.1ms.run/1ms-helper/install.sh | bash# 一键配置 K8s 集群镜像加速1ms-helper config:k8s

它会自动检测 Containerd 版本、节点角色,生成正确的配置。1.5 以下用 mirrors 格式,1.5 及以上用 hosts.toml,不用自己去查文档。

配完之后,手动验证一下核心镜像:

# 之前拉 registry.k8s.io 超时,现在走 k8s.1ms.run 加速crictl pull k8s.1ms.run/pause:3.9# → 2秒完成# 试试其他常用源crictl pull docker.1ms.run/nginx:alpine# → 1.8秒crictl pull quay.1ms.run/prometheus/prometheus:latest# → 3秒

十几台机器全部配置完,加起来不到 10 分钟。

如果你是手动配置,Containerd >= 1.5 的节点,编辑 /etc/containerd/config.toml,在 hosts 目录下创建配置即可:

# /etc/containerd/certs.d/registry.k8s.io/hosts.tomlserver = "https://registry.k8s.io"[host."https://k8s.1ms.run"]  capabilities = ["pull", "resolve"]  skip_verify = false

# /etc/containerd/certs.d/docker.io/hosts.tomlserver = "https://docker.io"[host."https://docker.1ms.run"]  capabilities = ["pull", "resolve"]  skip_verify = false

改完 systemctl restart containerd 就生效。

部署效率的真实变化

配置好之后观察了一周,几个关键指标:

ImagePullBackOff 告警:从每周 5-8 次降到 0

Pod 启动耗时平均从 47 秒降到 6 秒(镜像拉取环节)

集群滚动更新:15 个节点并行更新,全程无超时

之前用 Helm 或 ArgoCD 做批量部署,最怕的就是镜像拉不下来导致整个发布卡住。现在集群升级、应用扩容,镜像拉取不再是瓶颈。

对于我们这种管理多集群的团队来说,还有一个好处:Docker、Containerd、Podman 全支持,Linux、macOS、Windows 都能配。新节点上线跑一条命令就行,不用再写 Ansible Playbook 逐台改配置。

小结

如果你经常被 ImagePullBackOff 折腾,别急着排查 Pod 配置和网络策略——先看看镜像源稳不稳。很多时候问题就在这一层。

配一个靠谱的镜像加速,比排查一小时告警值钱得多。

官网:https://1ms.run

开源工具:https://cnb.cool/mliev/1ms.run/1ms-helper

作者注:本文纯属个人技术分享,无商业推广。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。

关键词:

相关阅读