K8S集群中Pod资源处于Pending状态排查思路
【摘要】
K8S集群中Pod资源处于Pending状态排查思路
文章目录
K8S集群中Pod资源处于Pending状态排查思路1.Pod资源处于Pending状态的原因2.Pod资源处于Pending状态...
K8S集群中Pod资源处于Pending状态排查思路
1.Pod资源处于Pending状态的原因
Pending状态表示挂起,处于该状态的原因有以下几点:
- 创建的Pod资源找不到要调度的物理节点。
- 由于资源问题,不能再被调度的节点中运行。
2.Pod资源处于Pending状态的排查思路
处于Pending状态的原因最有可能的就是调度的Node节点上资源不足了。
1)首先去排查节点的资源使用情况,使用free -m
命令查看内存的使用情况,top
命令查看系统的负载及CPU使用情况,df -hT
查看磁盘的使用情况,快速定位是否是由于节点资源不足而引发的问题。如果资源充足,那么就可以排除是节点自身的问题了。
2)被调度的节点可能存在污点配置,当K8S集群安装完成后,Master默认是开启污点的,开启污点的节点不允许被调度,可以进一步使用kubectl describe node <node_name>
命令排查节点是否设置了污点操作,如果设置了污点,取消后即可成功调度。
3)如果存储挂载卷PVC不存在,也可能会导致Pod处于Pending的状态。
4)如果Pod在定义时,指定了要调度节点的节点名称,若节点名称不存在,也会存在调度失败的可能,需要排查。
5)在定义Pod资源时,如果指定的资源限额较大,导致Node节点无法分配时,也会导致调度失败,处于Pending的状态。
3.由于资源配额设置问题导致Pod处于Pending状态的排查过程
1)首先可以看到在定义Pod资源时,指定了最大使用10个CPU,最小使用7个CPU,而Node节点压根没有这么大的配置。
2)可以看到Pod一直会处于Pending的状态。
#kubectl get pod
NAME READY STATUS RESTARTS AGE
know-system-9c86d8df9-68wqz 0/1 Pending 0 14m
know-system-9c86d8df9-mpjgn 0/1 Pending 0 14m
know-system-9c86d8df9-npvkq 0/1 Pending 0 14m
3)查看Pod的详细信息获取有价值的信息。
# kubectl describe pod
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 15m default-scheduler 0/3 nodes are available: 3 Insufficient cpu.
Warning FailedScheduling 15m default-scheduler 0/3 nodes are available: 3 Insufficient cpu.
在Pod的详细信息中,不光要看Error类型的报错信息,也要留意Warning类型的事件内容。
该报错指的就是要调度的Node节点上资源不足,可以看到事件描述说,三个节点中没有一个节点符合我们设置的CPU资源限制,都不满足。
如何解决呢?很简单,扩容节点的资源配置信息或者缩减Pod的资源配额,即可解决。
文章来源: jiangxl.blog.csdn.net,作者:Jiangxl~,版权归原作者所有,如需转载,请联系作者。
原文链接:jiangxl.blog.csdn.net/article/details/125275145
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)