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的保障,求职跳槽的看过来!

相关推荐
宇卿.4 分钟前
Java键盘输入语句
java·开发语言
浅念同学4 分钟前
算法.图论-并查集上
java·算法·图论
PatrickYao042215 分钟前
记一次安装discuz时遇到的错误
服务器
立志成为coding大牛的菜鸟.17 分钟前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode
鱼跃鹰飞17 分钟前
Leetcode面试经典150题-130.被围绕的区域
java·算法·leetcode·面试·职场和发展·深度优先
爱上语文2 小时前
Springboot的三层架构
java·开发语言·spring boot·后端·spring
小宋10212 小时前
玩转RabbitMQ声明队列交换机、消息转换器
服务器·分布式·rabbitmq
serve the people2 小时前
springboot 单独新建一个文件实时写数据,当文件大于100M时按照日期时间做文件名进行归档
java·spring boot·后端
m0_609000422 小时前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
qmx_073 小时前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat