当前位置: 首页 > article >正文

记录一次 k8s 节点内存不足的排查过程

背景:前端服务一直报404,查看k8s日志,没发现报错,但是发现pods多次重启。

排查过程:

  1. 查看pods日志,发现日志进不去。
kubectrl logs -f -n weave pod-name --tail 100
  1. 查看pod describe
kubectl describe po -n weave senseweave-capability-gateway-6c5485f7bf-xxxx
  • Exit Code 为 137:通常表示该容器被 Linux OOM(Out-of-Memory)杀手终止。这通常发生在 Pod 超过了内存限制,或者运行该 Pod 的节点内存不足时。
  • Restart Count 为2,表示最近pod重启了2次
  • 当前pods没有指定 limit 资源
    在这里插入图片描述
    原因分析:如果pod不指定 limit, 多个pod间会存在资源争抢,并且不指定资源的pod,在oom的时候,会优先被 Terminal 掉。
  1. 查看当前节点的内存使用情况
 kubectl top nodes --no-headers | sort -k4 -nr
 # 解释:
 #  --no-headers 不显示表头,
 #  sort -k4 -nr 按照第四列降序排序
 #    -n 按照数值排序
 #    -r 反向排序

23-8 节点的内存已经快满了。
在这里插入图片描述
pods 是通过 deployment 部署的,多个节点都有亲和性标签,但是 pod 还是部署到了 23-8 节点上。
分析原因可能是,不指定 limit 导致的

解决办法:

deployment 指定 limit 资源大小,重启 pods 。


http://www.kler.cn/a/416530.html

相关文章:

  • 【开源免费】基于SpringBoot+Vue.JS宠物咖啡馆平台(JAVA毕业设计)
  • PTA--数据结构预习报告:旅游规划问题
  • C#里怎么样List类进行拷贝?
  • 求100之内的素数-多语言
  • 2024学习之前端微信小程序开发教程,从入门到精通-含基础+实战+源码code
  • Echarts散点图(火山图)自定义配置
  • requests文件上传和表单参数
  • Golang 构建学习
  • Java爬虫:深入探索1688接口的奥秘
  • Elasticsearch实战:从搜索到数据分析的全面应用指南
  • Vue封装组件
  • 详解collections库常用的数据结构
  • hive和spark读写分区表NULL列
  • 哈希表算法题
  • Oracle系列---【关闭归档日志】
  • RL78/G15 Fast Prototyping Board Arduino IDE 平台开发过程
  • 【数据湖仓】-- 阿里云 EMR 和 AWS EMR 工具对比
  • 【Redis】Redis介绍
  • word2vec
  • 娱乐API:快速生成藏头诗、藏尾诗和藏中诗
  • 详解Ethereum交易当中的Input Data
  • 论文笔记:RAR: Retrieving And Ranking Augmented MLLMs for Visual Recognition
  • 算法思维初学者指南
  • XRD精修教程:CMPR软件介绍-测试狗
  • Spring Boot 开发环境搭建及示例应用
  • 数据分析-52-时间序列分解之变分模态分解VMD