You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K3s集群kubelet拉取镜像超时,修改runtime-request-timeout无效求助

K3s切换Docker运行时后镜像拉取2分钟超时的解决方法

问题背景

K3s集群将容器运行时从containerd切换为Docker后,镜像拉取到2分钟就会超时重试,无法完成大镜像的拉取。曾尝试在/etc/rancher/k3s/config.yaml中添加runtime-request-timeout=10m的kubelet参数,但该参数并不控制镜像拉取场景,配置未生效。

相关事件日志:

│   Type     Reason                      Age                  From               Message                                                                                                                                                    │
│   ----     ------                      ----                 ----               -------                                                                                                                                                    │
│   Normal   Scheduled                   2m32s                default-scheduler  Successfully assigned default/image-f8dq4 to ubuntu2                                                                                                    │
│   Warning  Failed                      33s                  kubelet            Failed to pull image "privaterepo/image:1.0.0.0": rpc error: code = Unknown desc = context deadline exceeded                             │
│   Warning  Failed                      33s                  kubelet            Error: ErrImagePull                                                                                                                                        │
│   Normal   BackOff                     33s                  kubelet            Back-off pulling image "privaterepo/image:1.0.0.0"                                                                                       │
│   Warning  Failed                      33s                  kubelet            Error: ImagePullBackOff                                                                                                                                    │
│   Normal   FileSystemResizeSuccessful  32s (x2 over 2m32s)  kubelet            MountVolume.NodeExpandVolume succeeded for volume "pvc-b6152bdd-aef4-4927-929c-674226705ddf" ubuntu2                                                       │
│   Normal   Pulling                     19s (x2 over 2m32s)  kubelet            Pulling image "privaterepo/image:1.0.0.0"

解决步骤

1. 配置kubelet的镜像拉取超时参数

runtime-request-timeout是kubelet向容器运行时发送请求的超时时间,并非镜像拉取的超时控制项。正确的参数是image-pull-timeout,用于设置kubelet拉取镜像的最大等待时间。

修改/etc/rancher/k3s/config.yaml,添加以下配置:

kubelet-arg:
  - "image-pull-timeout=10m"

保存配置后,重启所有节点的K3s服务:

# 控制节点执行
systemctl restart k3s
# Worker节点执行
systemctl restart k3s-agent

2. (可选)调整Docker Daemon的拉取超时

如果镜像拉取慢是因为Docker本身的下载限制,可修改Docker daemon配置来延长超时并调整并发数:

编辑/etc/docker/daemon.json(不存在则创建),添加:

{
  "pull-timeout": 600,
  "max-concurrent-downloads": 5
}

重启Docker服务:

systemctl restart docker

3. 验证配置生效

查看kubelet的启动参数,确认image-pull-timeout已加载:

ps aux | grep kubelet | grep image-pull-timeout

之后重新触发镜像拉取,观察事件日志是否再出现超时错误。

内容的提问来源于stack exchange,提问作者Astin Gengo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:01:42