工作负载类 排查项六:镜像过大导致失败 Pod事件列表中有“实例拉取镜像失败”事件,报错原因如下。这可能是镜像较大导致的情况。 Failed to pull image "XXX": rpc error: code Unknown desc context canceled 登录节点使用docker pull命令手动下拉镜像,镜像下拉成功。 问题根因: kubernetes默认的imagepullprogressdeadline是1分钟, 如果1分钟内镜像下载没有任何进度更新, 下载动作就会取消。在节点性能较差或镜像较大时,可能出现镜像无法成功下载,负载启动失败的现象。 解决方案: (推荐)方法一:登录节点使用docker pull命令手动下拉镜像,确认负载的镜像拉取策略imagePullPolicy为IfNotPresent(默认策略配置)。此时创建负载会使用已拉取到本地的镜像。 方法二:修改kubelet配置参数。 1.15及以上集群使用如下命令: vi /opt/cloud/cce/kubernetes/kubelet/kubelet 1.15以下集群使用如下命令: vi /var/paas/kubernetes/kubelet/kubelet 在DAEMONARGS参数末尾追加配置 imagepullprogressdeadline30m ,30m为30分钟,可根据需求修改为合适时间。追加配置和前项配置之间由空格分开。 重启kubelet: systemctl restart kubelet 等待片刻,确定kubelet状态为running systemctl status kubelet 负载正常启动,镜像下拉成功。 排查项七:无法连接镜像仓库 问题现象 创建工作负载时报如下错误。 Failed to pull image "docker.io/bitnami/nginx:1.22.0debian11r3": rpc error: code Unknown desc Error response from daemon: Get net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 问题原因 无法连接镜像仓库,网络不通。SWR仅支持直接拉Docker官方的镜像,其他仓库的镜像需要连接。 解决方案: 给需要下载镜像的节点绑定公网IP。 先将镜像上传到SWR,然后从SWR拉取镜像。
来自: