欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Containerd拉取镜像超时

Containerd拉取镜像超时

2025/3/10 11:50:50 来源:https://blog.csdn.net/dfq737211338/article/details/142598022  浏览:    关键词:Containerd拉取镜像超时

Containerd拉取镜像超时

  • 环境信息:
  • 问题描述:
  • 原因分析:
  • 解决方案:

参考资料:
Containerd配置镜像加速器
github-containerd

环境信息:

当前所用CR containerd的版本。

[jovision@k8smaster1 ~]$ containerd -v
containerd containerd.io 1.7.22 7f7fdf5fed64eb6a7caf99b3e12efcf9d60e311c

问题描述:

k8s 集群中,在部署node-exporter服务时,出现拉取镜像超时的现象。

[root@k8smaster1 ~]# kubectl get pods -n monitoring -owide
NAME                  READY   STATUS             RESTARTS   AGE     IP          NODE         NOMINATED NODE   READINESS GATES
node-exporter-rfxg9   0/1     ImagePullBackOff   0          5h44m   10.2.12.4   k8smaster1   <none>           <none>
node-exporter-vdf9v   0/1     ErrImagePull       0          66s     10.2.12.3   k8smaster3   <none>           <none>
[root@k8smaster1 ~]# kubectl describe pod node-exporter-vdf9v -n monitoring
Name:             node-exporter-vdf9v
Status:           Pending
Conditions:Type              StatusInitialized       True Ready             False ContainersReady   False PodScheduled      True 
Events:Type     Reason     Age                From               Message----     ------     ----               ----               -------Normal   Scheduled  69s                default-scheduler  Successfully assigned monitoring/node-exporter-vdf9v to k8smaster3Warning  Failed     51s (x2 over 66s)  kubelet            Failed to pull image "prom/node-exporter:v1.7.0": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/prom/node-exporter:v1.7.0": failed to resolve reference "docker.io/prom/node-exporter:v1.7.0": failed to do request: Head "https://registry-1.docker.io/v2/prom/node-exporter/manifests/v1.7.0": dial tcp 108.160.162.31:443: connect: connection timed outNormal   Pulling    25s (x3 over 69s)  kubelet            Pulling image "prom/node-exporter:v1.7.0"Warning  Failed     22s (x3 over 66s)  kubelet            Error: ErrImagePullWarning  Failed     22s                kubelet            Failed to pull image "prom/node-exporter:v1.7.0": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/prom/node-exporter:v1.7.0": failed to resolve reference "docker.io/prom/node-exporter:v1.7.0": failed to do request: Head "https://registry-1.docker.io/v2/prom/node-exporter/manifests/v1.7.0": dial tcp 157.240.21.9:443: connect: connection timed outNormal   BackOff    11s (x3 over 65s)  kubelet            Back-off pulling image "prom/node-exporter:v1.7.0"Warning  Failed     11s (x3 over 65s)  kubelet            Error: ImagePullBackOff

原因分析:

docker.io 是 docker hub 的官方镜像地址,在中国无法直接访问,使用第三方镜像加速器有诸多限制。
故购买一台HK服务器,自己部署docker registory服务,作为中间代理服务器使用。

解决方案:

部署 docker registory服务,开放5000端口。

docker run -d -p 5000:5000 --restart=always   --name registry   -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io   registry:2

更新镜像仓库地址

# 切换root
mkdir -p /etc/containerd && containerd config default > /etc/containerd/config.toml
vim /etc/containerd/config.tomlsandbox_image = "registry.aliyuncs.com/google_containers/pause:3.7"SystemdCgroup = trueconfig_path = "/etc/containerd/certs.d"mkdir /etc/containerd/certs.d/docker.io/ -p
vi /etc/containerd/certs.d/docker.io/hosts.toml
server = "https://registry-1.docker.io"[host."http://<docker registory>:5000"]capabilities = ["pull", "resolve", "push"]skip_verify = truesudo systemctl daemon-reload && systemctl restart containerd

ctr 直接使用中间代理服务器拉取镜像
ctr images pull --hosts-dir “/etc/containerd/certs.d” <docker registory>:5000/library/nginx:latest

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词