快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」
1我搭建的是k8s v1.27.6,containerd://1.6.20集群。(1 master,2个node节点)
2
3但是搭建好后,怎么连默认的 nginx镜像都拉取不下来。。。
4
5我想问下,这个k8s部署方式的镜像拉取顺序是什么?
6
7和
8 [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
9 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
10 endpoint = [
11 "https://mirrors.aliyun.com",
12 "https://docker.mirrors.ustc.edu.cn",
13 "https://mirror.ccs.tencentyun.com",
14 "https://mirror.baidubce.com",
15 "https://hub-mirror.c.163.com",
16 "https://docker.mirrors.ustc.edu.cn",
17 "https://registry-1.docker.io"
18 ]
19这里的配置有啥关系嘛?
20
21并且,这里的域名都没法拉取镜像了嘛?(如何测试这些仓库的可用性呢?)
22
23或者 中国 目前可用的k8s镜像仓库有哪些嘛?
24
25我把国内docker可用的仓库填在k8s集群这里,能正常使用嘛?我这里比较疑惑点。🍊 报错现象

配置后效果如下:
1 [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
2 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
3 endpoint = [
4 "https://nslookup mirrors.aliyun.com",
5 "https://docker.mirrors.ustc.edu.cn",
6 "https://mirror.ccs.tencentyun.com",
7 "https://mirror.baidubce.com",
8 "https://hub-mirror.c.163.com",
9 "https://docker.mirrors.ustc.edu.cn",
10 "https://registry-1.docker.io"
11 ]问题:但是现在连nginx镜像都拉不下来。。。。
1Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
2 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
3Events:
4 Type Reason Age From Message
5 ---- ------ ---- ---- -------
6 Normal Pulling 36m (x10 over 71m) kubelet Pulling image "nginx"
7 Warning Failed 11m (x14 over 70m) kubelet Failed to pull image "nginx": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/library/nginx:latest": failed to resolve reference "docker.io/library/nginx:latest": failed to do request: Head "https://docker.mirrors.ustc.edu.cn/v2/library/nginx/manifests/latest?ns=docker.io": dial tcp: lookup docker.mirrors.ustc.edu.cn on 223.5.5.5:53: no such host
8 Normal BackOff 100s (x239 over 70m) kubelet Back-off pulling image "nginx"
9[root@master1 ~]#
10
11
12[root@node2 ~]#cat /etc/resolv.conf
13nameserver 223.5.5.5
14nameserver 119.29.29.29
15nameserver 8.8.8.8
16[root@node2 ~]#先给你核心结论:k8s拉取镜像由kubelet调用containerd的CRI接口,containerd按你配置的endpoint顺序依次尝试docker.io镜像源,失败才会下一个;你现在的配置有重复、部分源已不可用,且没配置k8s官方镜像(registry.k8s.io)的加速,这是拉取失败的主因。下面一步步讲清楚顺序、配置关系、可用性测试、可用源、怎么改。
你这段配置,是给 docker.io(Docker Hub官方) 配置镜像加速源:
1[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
2 endpoint = [
3 "https://mirrors.aliyun.com", # 阿里云公共镜像
4 "https://docker.mirrors.ustc.edu.cn", # 中科大
5 "https://mirror.ccs.tencentyun.com", # 腾讯云
6 "https://mirror.baidubce.com", # 百度云
7 "https://hub-mirror.c.163.com", # 网易
8 "https://docker.mirrors.ustc.edu.cn", # 重复!
9 "https://registry-1.docker.io" # 官方上游(最后兜底)
10 ]https://registry.cn-hangzhou.aliyuncs.com(标准docker.io加速)https://docker.mirrors.ustc.edu.cnhttps://mirror.ccs.tencentyun.comhttps://mirror.baidubce.comhttps://docker.1ms.run(新、稳定)https://mirrors.aliyun.com:这是阿里云通用镜像站,不是docker.io专用加速,拉不了Docker Hub镜像https://hub-mirror.c.163.com:网易镜像已长期不稳定、限流严重1# 测试域名解析+连通
2ping docker.mirrors.ustc.edu.cn
3# 测试443端口(HTTPS)
4curl -v https://docker.mirrors.ustc.edu.cn/v2/
5# 正常应返回 {} 或 401 Unauthorized(表示服务通)1# 安装nerdctl(方便测试containerd拉取)
2apt install -y nerdctl
3# 测试单个源拉取nginx
4nerdctl pull docker.mirrors.ustc.edu.cn/library/nginx:latest
5# 测试按你配置的顺序拉取(直接用镜像名,走containerd配置)
6nerdctl pull nginx:latest1# 命名空间 k8s.io 是 k8s 使用的
2ctr -n k8s.io image pull registry.cn-hangzhou.aliyuncs.com/library/nginx:latest1journalctl -u containerd -f # 实时日志
2# 或看k8s Pod事件
3kubectl describe pod <你的nginx-pod>1https://registry.cn-hangzhou.aliyuncs.com
2https://docker.mirrors.ustc.edu.cn
3https://mirror.ccs.tencentyun.com
4https://mirror.baidubce.com
5https://docker.1ms.runk8s组件(pause、coredns、kube-proxy等)都来自这里,国内直连必超时:
1https://registry.cn-hangzhou.aliyuncs.com/google_containers
2https://docker.mirrors.ustc.edu.cn/google_containers
3https://k8s.1ms.run完全能用,但必须按containerd的规则正确配置:
registry.mirrors."上游仓库" → endpoint填国内镜像地址找到 [plugins."io.containerd.grpc.v1.cri".registry] 段,替换成下面(保留原有配置,只改mirrors部分):
1[plugins."io.containerd.grpc.v1.cri".registry]
2 [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
3 # Docker Hub 加速(nginx等应用镜像)
4 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
5 endpoint = [
6 "https://registry.cn-hangzhou.aliyuncs.com",
7 "https://docker.mirrors.ustc.edu.cn",
8 "https://mirror.ccs.tencentyun.com",
9 "https://docker.1ms.run",
10 "https://registry-1.docker.io" # 最后兜底官方
11 ]
12 # k8s官方镜像加速(pause、coredns等)
13 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]
14 endpoint = [
15 "https://registry.cn-hangzhou.aliyuncs.com/google_containers",
16 "https://docker.mirrors.ustc.edu.cn/google_containers",
17 "https://k8s.1ms.run"
18 ]
19 # 兼容旧k8s.gcr.io
20 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
21 endpoint = [
22 "https://registry.cn-hangzhou.aliyuncs.com/google_containers"
23 ]1systemctl daemon-reload
2systemctl restart containerd1# 用k8s创建测试Pod
2kubectl run nginx-test --image=nginx:latest
3# 查看状态
4kubectl get pods
5# 正常应Running,不再ImagePullBackOffcontainerd config validate 检查配置合法性nginx 没问题,但写成 docker.io/nginx 也一样;不要写错标签要不要我把上面的配置整理成一键替换脚本,你直接在所有节点复制运行即可?
更新于2026年3月31日17:05:03。
编辑/etc/containerd/config.toml文件:
1
2 [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
3 # Docker Hub 加速(nginx等应用镜像)
4 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
5 endpoint = [
6 "https://registry.cn-hangzhou.aliyuncs.com", #阿里云
7 "https://docker.mirrors.ustc.edu.cn", #中科大
8 "https://mirror.ccs.tencentyun.com", #腾讯云
9 "https://docker.1ms.run", #毫秒镜像
10 "https://registry-1.docker.io" # 最后兜底官方
11 ]
12 # k8s官方镜像加速(pause、coredns等)
13 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]
14 endpoint = [
15 "https://registry.cn-hangzhou.aliyuncs.com/google_containers",
16 "https://docker.mirrors.ustc.edu.cn/google_containers",
17 "https://k8s.1ms.run"
18 ]
19 # 兼容旧k8s.gcr.io
20 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
21 endpoint = [
22 "https://registry.cn-hangzhou.aliyuncs.com/google_containers"
23 ]
结束。
日历 · 精选 · 友链 · 更多
如果内容对你有帮助,欢迎请我喝杯咖啡 ☕



One的公众号
爱折腾博客的小白