• 热门
  • 基础
  • 数据库
  • 安全
  • 大数据
  • 人工智能
  • 混合云
  • 开发与运维
  • 企业应用

应用服务

行业引擎

全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

Pod常见问题

最近更新时间:2024-12-11 10:23:58

Pod状态为ImagePullBackOff

问题原因

若Pod停留在ImagePullBackOff状态,说明此Pod已被调度到某个节点,但拉取镜像失败。

问题现象

Pod的状态为ImagePullBackOff。

解决方案

通过查看该Pod的事件描述,查看具体拉取失败的镜像名称。

  1. 确认容器镜像名称是否正确。

  2. 登录到Pod所在的节点,执行docker pull [$Image]命令,查看是否能正常抓取容器镜像。

    说明 [$Image]为容器镜像的名称。


docker pull失败

报错提示

Error: image xxx not found

解决方案

下载失败时,请参考如下步骤进行排查。

  • 如果您是从公共仓库中下载镜像,那么问题可能是镜像地址不正确。

    请在容器服务控制台搜索该公共仓库,检查确认想要下载的这个镜像版本是否真实存在。

  • 如果您是从私有仓库中下载镜像,需要首先确认Registry的登录状态。

    1. 运行下边的命令,显示所有登录的Registry域名。

      cat ~/.docker/config.json                    
    2. 查看里面是否包含您想要下载镜像的Registry域名。

      如果没有的话,您需要先进行登录操作。

      如果显示已经登录的话,那么您需要确认您登录的这个账户是否有权限下载这个镜像。

    说明

    少数情况下会出现如下报错,下载的块文件检验失败。一般重试即可解决。

    报错提示:Error: filesystem layer verification failed for digest

pod访问集群外部地址报错

问题说明

如果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滑动窗口的序号校验会宽松一些,可有效解决上述问题。

参考

https://kubernetes.io/blog/2019/03/29/kube-proxy-subtleties-debugging-an-intermittent-connection-reset/

纯净模式常规模式

纯净模式

点击可全屏预览文档内容

鼠标选中内容,快速反馈问题

如果在文档使用中出现问题,可选中有问题的部分进行快速反馈,我们将跟进处理。
不再提示
好的,我知道了

聆听反馈