首页 > 其他分享 >pod常见问题及解决方法整理

pod常见问题及解决方法整理

时间:2023-10-13 15:13:41浏览次数:161  
标签:建议 常见问题 NAME 解决方案 kubelet 整理 pod 节点

pod常见问题及解决方法整理

参考链接https://blog.51cto.com/u_15127577/4139629

一、pod处于pending状态
原因:
如果 Pod 被卡在 Pending 状态,就意味着它不能调度在某个节点上。一般来说,这是因为某种类型的资源不足而导致无法调度。

排查方法:
1、查看pod详细信息,event中会显示具体无法调度的原因
kubectl describe pods ${POD_NAME} -n ${NAMESPACE_NAME}

存在的问题:当前没有满足调度条件的节点:
1、节点资源不足
2、HostPort被占用
3、节点不存在对应的标签
4、节点存在污点

建议解决方案
节点资源不足:
建议解决方案:集群新增节点。
紧急解决方案:缩减非核心业务pod数量。
HostPort被占用
建议解决方案:检查端口冲突,修改对端;建议采用service方式暴露服务
节点不存在对应的标签
建议解决方案:检查标签是否正确;给对应节点添加对应标签。
节点存在污点:
建议解决方案:添加对应的容忍度
二、pod处于Waiting/ImagePullBackOff状态
原因:
如果 Pod 被卡在Waiting 状态,那么它已被调度在某个工作节点,但它不能在该机器上运行。一般来说,这是因为镜像拉去失败导致。

排查方法:
1、查看pod详细信息,event中会显示具体无法启动的原因
kubectl describe pods ${POD_NAME} -n ${NAMESPACE_NAME}

2、在对应的node节点执行镜像拉去命令
docker pull 

3、检查网络组件状态
kubectl -n kube-system get pod -owide | grep calico

4、查看网络组件日志
kubectl logs -f ${POD_NAME} -n ${NAMESPACE_NAME}

存在的问题:
1、镜像拉去失败:镜像配置错误、kubelet无法访问镜像、秘钥配置错误、镜像太大拉取超时
2、CNI网络错误:网络组件异常,无法为pod分配IP地址
3、容器无法启动:镜像参数配置异常

建议解决方案
镜像拉去失败:
建议解决方案:检查镜像名称,检查kubelet配置文件,尝试在节点直接拉取镜像
CNI网络错误:
建议解决方案:检查网络组件状态,查看网络组件日志。
容器无法启动:
建议解决方案:确认镜像参数是否正确,确认开发本地相同tag的镜像是否可以正常运行
三、pod处于ContainerCreating状态
原因:
如果 Pod 被卡在ContainerCreating状态,那么它已被调度在某个工作节点,但是在启动过程中发送了错误。一般来说,这是因为依赖资源不存在导致。

排查方法:
1、查看pod详细信息,event中会显示具体启动失败的原因
kubectl describe pods ${POD_NAME} -n ${NAMESPACE_NAME}

存在的问题:
1、依赖资源不存在:pv、cm、secret等

建议解决方案
依赖资源不存在:
建议解决方案:检查资源名称是否正确,对应资源是否已创建
四、pod处于Failed/CrashLoopBackOff状态
原因:
如果 Pod 被卡在CrashLoopBackOff状态,那么它已被调度在某个工作节点,且可以正常启动但是又异常退出了。一般来说,这是因为健康检查未通过或应用程序运行异常导致。

排查方法:
1、查看pod详细信息,event中会显示具体启动失败的原因
kubectl describe pods ${POD_NAME} -n ${NAMESPACE_NAME}

2、查看对应pod的日志信息
kubectl logs -f ${POD_NAME} -n ${NAMESPACE_NAME}

存在的问题:
1、健康检查失败
2、应用程序运行异常

建议解决方案
健康检查失败:
建议解决方案:检查健康检查的内容是否正确。
应用程序运行异常:
建议解决方案:反馈对应开发联合排查,确认问题。
四、pod处于Unknown状态
原因:
如果 Pod 处于Unknown 状态,表示集群无法获取 Pod 的状态,通常是因为与 Pod 所在主机通信失败导致。

排查方法:
1、查看kubelet服务状态
systemctl status kubelet -l

2、检查与apiserver通信状态
telnet ${APISERVER_IP:PORT}

存在的问题:kubelet服务与apiserver失联
1、kubelet未启动
2、kubelet节点与apiserver通信异常

建议解决方案
kubelet未启动:
建议解决方案:启动kubelet服务,排查kubelet服务异常停止的原因。
kubelet节点与apiserver通信异常:
建议解决方案:检查kubelet节点与apiserver节点间的网络状态
五、pod处于Evicted状态
原因:
如果 Pod 处于Evicted状态,通常是因为与 Pod 所在主机系统内存或硬盘资源不足导致。

排查方法:
1、查看系统磁盘资源使用率
df -h

2、查看系统内存资源使用率
free -h

存在的问题:kubelet服务与apiserver失联
1、系统磁盘不足
2、系统内存不足

建议解决方案
系统磁盘不足:
建议解决方案:进行磁盘清理或扩容磁盘。
系统内存不足:
建议解决方案:集群新增节点
紧急解决方案:缩减非核心业务pod数量。
六、pod处于terminating状态
原因:
如果 Pod 处于terminating 状态,通常是因为pod未被正确回收导致。

排查方法:
1、查看kubelet服务状态
systemctl status kubelet -l

2、查看docker服务状态
systemctl status kubelet -l

3、强制删除pod指令(谨慎执行)
kubectl delete pods ${POD_NAME} --grace-period=0 --force

存在的问题:
1、kubelet未执行回收操作/执行回收失败
2、docker未执行回收操作/执行回收失败

建议解决方案
kubelet未正确回收:
建议解决方案:查看kubelet服务日志,进一步判断排查。
紧急解决方案:强制删除该pod(注意:该指令仅在确认该pod的删除对环境无影响的前提下执行)
docker未正确回收:
建议解决方案:检查docker服务日志,进一步判断排查

标签:建议,常见问题,NAME,解决方案,kubelet,整理,pod,节点
From: https://www.cnblogs.com/iancloud/p/17762134.html

相关文章

  • 【评测有奖】参加 SAE 2.0 产品评测,赢 Airpods 2 大奖!
    Serverless应用引擎SAE开启测评有奖!名额有限,先到先得......
  • Kubernetes:根据进程 Pid 获取 Pod 名称
    前言在管理Kubernetes集群的过程中,我们经常会遇到这样一种情况:在某台节点上发现某个进程资源占用量很高,却又不知道是哪个容器里的进程。有没有办法可以根据进程PID快速找到Pod名称呢?解决假设现在有一个prometheus进程的PID是14338:要获取容器的ID,可以查看PID对应......
  • POD 题解
    考虑每种颜色都只在一条链上出现这个限制。考虑使用随机化\(\text{hash}\),我们对每个点随机一个权值,使得每种颜色所有点异或值为\(0\)。这样一种颜色如果只在一条链上,那对两条链\(\text{hash}\)异或值的贡献就是\(0\),否则就是两个随机值。这样如果存在一个颜色存在于两条......
  • 密码基础知识整理
    国际密钥算法AES(对称分组密码算法):高级加密标准,是一种对称分组密码算法,使用128比特、192比特或256比特的密钥长度。AES已成为最常用和最安全的对称加密算法,被广泛应用于数据加密和安全通信领域。RSA(非对称加密算法):是一种非对称加密算法,用于数字签名、密钥交换和公钥加密。RS......
  • 深入Pod —— 探针
    一、探针容器内应用的监测机制,根据不同的探针来判断容器应用当前的状态一)类型1、StartupProbek8s1.16版本新增的探针,用于判断应用程序是否已经启动了。当配置了startupProbe后,会先禁用其他探针,直到startupProbe成功后,其他探针才会继续。作用:由于有时候不能准确预估......
  • k8s pod command使用
    简单说明我们启pod服务时,有时需要在服务启动前做一些初始化的工作,这里可能会涉及多个shell命令以及判断执行,这里可以参考下面的步骤进行:command:["/bin/bash"]args:-"-c"-|set-exif[!-d"/opt/test"];thenmkdir/opt/testcp-r/opt......
  • 捕捉回忆的时光机:用AI智能管理的NAS,提升整理效率
    记忆会模糊,但照片不会,每次打开照片的时候背后的故事就会浮现在我们眼前。当然,我们现在的设备也越来越多了,当我们要找某一张照片时总是需要从散落在各个设备里的照片库寻找,花费大量时间。而TerraPhotos的出现,无论是很多年前的照片,奔赴世界各地的打卡记录,每个陪我们走过一段时间的......
  • 软件项目管理、开发、配套支撑等全文档整理
    前言:在软件开发过程中,编写和维护相关文档是非常重要的。这些文档不仅可以帮助开发团队更好地了解项目需求、设计和实现方案,还可以提高开发效率、保证软件质量以及降低维护成本。下面将介绍软件开发过程中常见的几类文档。1、需求分析文档需求分析文档是软件开发过程中最重要的......
  • 面试常见问题
    1、你在这段工作中最骄傲的事情是什么2、你在那段工作中的低谷是什么3、当时合作的同事是谁?和他一起工作是什么样的感觉?你的老板认为你的最大强项是什么?又有什么不足?4、做好这份工作你觉得最核心的能力是什么?5、你为何终止那份工作?......
  • GPU主机常见问题——nvidia驱动失效
    新开个坑,记录一些GPU主机的常见问题。问题描述某次开机后驱动无法使用,nvidia-smi显示无法连接nvidia驱动。原因如果没有关闭自动更新,ubuntu重启后可能切换内核,导致驱动失效。确认问题查看当前内核:uname-a查看已安装内核:dpkg--get-selections|greplinux-image看看......