最近更新时间:2024-12-11 10:23:58
若Pod停留在ImagePullBackOff状态,说明此Pod已被调度到某个节点,但拉取镜像失败。
Pod的状态为ImagePullBackOff。
通过查看该Pod的事件描述,查看具体拉取失败的镜像名称。
确认容器镜像名称是否正确。
登录到Pod所在的节点,执行docker pull [$Image]
命令,查看是否能正常抓取容器镜像。
若镜像拉取失败,请参见docker pull失败解决。
如果您使用的是私有镜像仓库,请参见使用私有镜像创建服务解决。
说明
[$Image]
为容器镜像的名称。
Error: image xxx not found
下载失败时,请参考如下步骤进行排查。
如果您是从公共仓库中下载镜像,那么问题可能是镜像地址不正确。
请在容器服务控制台搜索该公共仓库,检查确认想要下载的这个镜像版本是否真实存在。
如果您是从私有仓库中下载镜像,需要首先确认Registry的登录状态。
运行下边的命令,显示所有登录的Registry域名。
cat ~/.docker/config.json
查看里面是否包含您想要下载镜像的Registry域名。
如果没有的话,您需要先进行登录操作。
如果显示已经登录的话,那么您需要确认您登录的这个账户是否有权限下载这个镜像。
说明
少数情况下会出现如下报错,下载的块文件检验失败。一般重试即可解决。
报错提示:
Error: filesystem layer verification failed for digest
如果KCE集群的pod访问集群外部的地址(如金山云KS3)时,程序因不明原因断开连接,且报错为connection reset by peer或broken pipe等,请排查内核参数net.netfilter.nf_conntrack_tcp_be_liberal
查看方法:
# sysctl -a | grep conntrack_tcp_be_liberal
如果输出结果为0,请尝试将其更改为1
#sysctl -w net.netfilter.nf_conntrack_tcp_be_liberal=1
当KCE集群中的pod访问集群外部地址时,报文会做SNAT(由集群中的ip-masq-agent组件控制)。在高吞吐的场景中,容易出现tcp out of window等情况,内核conntrack模块会把这些报文标记为INVALID。由于kube-proxy的缺陷,INVALID报文未作SNAT就发送出去,导致外部地址发送rst中断连接。
nf_conntrack_tcp_be_liberal设置为1,conntrack在跟踪TCP连接时对TCP滑动窗口的序号校验会宽松一些,可有效解决上述问题。
纯净模式
鼠标选中内容,快速反馈问题