K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路

K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路

Node节点资源不足可能会产生的故障

  • 故障一:Pod数量太多超出物理节点的限制
  • 每一台Node节点中默认限制最多运行110个Pod资源,当一个应用程序有成百上千的Pod资源时,如果不扩容Node节点或者修改最大Pod数量限制,那么就会导致部分Pod资源无法正常运行,因为节点已经没有资源可以被调度了。
  • 解决思路就是扩容Node节点数量或者修改Pod的数量限制
  • 故障二:Pod配置的资源限额超出物理节点的最大使用率
  • 由于Node节点资源有限,当Pod设置的资源配额超出了Node节点所承受的极限,那么Pod将无法部署和运行,会报错没有合适的Node节点可调度。
  • 解决思路就是对资源限方面重新调整,适当扩展节点资源。

Node节点资源不足故障排查案例一

  • 故障描述:

  • Pod资源数量过多,超出节点调度Pod的数量。

  • 当Pod资源数量太多,已经达到了Node节点默认的110个Pod时,新创建的Pod资源会一直处于Pending状态,并且大量的Pod会频繁重启。

  • 排查思路:

  • 首先查看Pod的详细信息,重点观察容忍的信息,通常情况下会看到下面的信息,从这个信息中我们就可以判断出是由于节点资源上限从而引发的问题。

复制代码
  Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s 
  Events: <none>

  #正常的情况下下是没有for 300s 提示的,这句话的意思是说300秒内都没有通过容忍调度在Node节点,产生了超时。
  • 查看Node节点的详细信息,如果是资源使用上限的问题,会看到如下的报错信息。

复制代码
  Warning SystemOOM 78s kubelet System OOM encountered, victim process: java, pid: 5879
  • 通过在查看Node节点的详细信息,可以看到Kubelet组件触发了OOM机制,接下来去排查Kubelet。

复制代码
  38506 kubelet_pods.go:880] Unable to retrieve pull secret ms/registry-pull-secret for ms/eur...t succeed
  • 从Kubelet的报错日志中可以看到不能拉取secret资源,结合Pod中容忍提示的信息,最有可能出现的原因就是资源不够用了。

  • 排查Node节点中各项资源指标的使用情况,CPU、内存、磁盘。

  • 都没有问题后,在查看该Node节点中运行了多少个Pod资源,如果超过110个,那么就可以定位问题了,每个Node节点默认只允许运行110个Pod,超出限制后无法调度。

  • 解决方法就是修改默认的Pod数量,但是也要根据机器硬件性能做出合理的调整。

Node节点资源不足故障排查案例二

  • 故障描述:

  • Pod一直处于Pending状态。

  • 排查过程:

  • 查看Pod的详细信息,可以获得关键的信息。

复制代码
  default-scheduler 0/3 nodes are available: 2 Insufficient memory, 2 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn"t tolerate.
  • 从Pod的详细信息中可以得知,3个节点中,没有一个节点符合Pod的资源设置,其中有2个节点内内存不足和一个节点是Master,污点不能被容忍。

  • 重新调整Pod的资源限制,或者扩容物理节点的内存即可解决。

-----------------------------------------------------------------------------------

offer突击训练营简介:

1:针对不知道怎么面试,面试没有信心的小伙伴,我们会给你一个offer保障。

2:我们会监督你15-20天内把面试体系技术点掌握至少7成,这样足够你去找到满意的工作了。

3:我们是面向面试学习指导,不会带你们去写代码,会把项目真实开发的迭代过程和技术细节如何实现业务功能都详细教清楚,你能在面试中流畅表达清楚就行了,项目经验你不用担心(技术老师提供的真实项目经验肯定拿的出手),自己学和别人带着系统学,效率完全不一样。

详情请点击这里offer突击训练营,给你一个offer的保障,求职跳槽的看过来!

相关推荐
醇氧几秒前
【Windows】从守护到终结:解析一个 Java 服务的优雅停止脚本
java·开发语言·windows
努力发光的程序员1 分钟前
互联网大厂Java求职面试实录
java·jvm·线程池·多线程·hashmap·juc·arraylist
小鹿学程序5 分钟前
FileZilla连接到虚拟机
java·服务器·开发语言
Haooog11 分钟前
Docker面试题(不定时更新)
java·docker·面试
feathered-feathered21 分钟前
Redis基础知识+RDB+AOF(面试)
java·数据库·redis·分布式·后端·中间件·面试
毕设源码-赖学姐23 分钟前
【开题答辩全过程】以 高校排课系统的优化设计与实现为例,包含答辩的问题和答案
java·eclipse
q_191328469523 分钟前
基于SpringBoot2+Vue2的行业知识答题考试系统
java·vue.js·spring boot·mysql·毕业设计·计算机毕业设计·演示文稿
上78将24 分钟前
Java中既有编译执行又有解释执行,这个怎么理解?
java·开发语言
Mr_Xuhhh26 分钟前
JAVA期末重点
java·开发语言·python
a程序小傲35 分钟前
小红书Java面试被问:java创建对象有哪些方式?
java·开发语言·面试