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

Kubernet查找pods不断重启原因

1、describe pod的详细信息,发现有如下Evnets

# kubectl describe pod test-monitor-0 -n promethus
Events:Type    Reason   Age                 From     Message----    ------   ----                ----     -------Normal  Created  11m (x26 over 13h)  kubelet  Created container repl-monitorNormal  Started  11m (x26 over 13h)  kubelet  Started container repl-monitorNormal  Pulled   11m (x25 over 13h)  kubelet  Container image "111111111111.dkr.ecr.ap-southeast-2.amazonaws.com/test-monitor:1875dc6" already present on machine

2、查看 Pod 最近一次崩溃的退出码

# kubectl get pod test-monitor-0 -n repl -o json | jq '.status.containerStatuses[].lastState'"lastState": {"terminated": {"containerID": "containerd://5a2cfcac19be6d2f5779856e007511a6cb8a3146dc936047f41a09e4a663172f","exitCode": 137,"finishedAt": "2025-04-25T02:30:06Z","reason": "OOMKilled","startedAt": "2025-04-25T02:00:05Z"}},

存在关键字段
关键字段是:

exitCode: 退出码(如 137 表示被 OOM Killer 杀死)
reason: OOMKilled, Error, Completed 等

  1. 查看容器上一次崩溃前的日志
# kubectl logs test-monitor-0 -n prometheus --previous

这会打印上一次崩溃前容器的日志,常能看出是崩溃、panic、内存等问题。
我的实际例子:

1)多次重复日志:

duplicate definition - FailToCallActor()

这个信息连续出现了很多次,可能是某个模块在加载时重复注册了函数,但它本身一般不会导致 crash,除非这个重复引起了异常行为。

2) 多次出现:

unknown modifier: ;

这个比较异常,很可能出现在解析合约参数或执行某个字符串时失败,比如合约 ABI 解析错误、Solidity modifier 写法不当,或者是某个表达式被错误拼接。这可能是导致逻辑错误的地方。

3)多次出现:

gasPrice is too high

说明你代码中有判断 gasPrice 的逻辑,并因此跳过或终止了某些交易。如果这个判断不是优雅处理,而是直接 throw 了异常,有可能造成容器 crash。
3、检查 Pod 或 StatefulSet 中是否设置了 resources.limits.memory:

kubectl get statefulset test-monitor-0 -n prometheus -o yaml | grep -A5 'resources:'

如果设得过低,比如只有几百 Mi,可能因为内存不够而频繁被 kubelet 杀掉。
4、如果日志中还是看不出问题
继续排查:
是否为应用内部崩溃(建议应用层打日志)
是否为健康检查失败(如 Liveness probe 超时导致重启)

kubectl describe pod test-monitor-0 -n prometheus | grep -i 'liveness'
http://www.xdnf.cn/news/146809.html

相关文章:

  • 【Nova UI】十、打造组件库第一个组件-图标组件(下):从.svg 到 SVG Vue 组件的高效蜕变✨
  • gerbera文件转PCB文件-Altium Designer
  • GitHub 趋势日报 (2025年04月24日)
  • 赛灵思 XCKU115-2FLVB2104I Xilinx Kintex UltraScale FPGA
  • Parasoft C++Test软件单元测试_对函数打桩的详细介绍
  • AKM旭化成微电子全新推出能量收集IC“AP4413系列”
  • 自然语言处理+知识图谱:智能导诊的“大脑”是如何工作的?
  • C++中的vector和list的区别与适用场景
  • LLM Graph Rag(基于LLM的事件图谱RAG)
  • 一种用于加密代理流量检测的轻量级深度学习方法
  • jdk-8u202-linux-x64.tar.gz官方下载地址
  • mysql基础——数据表查询(全面解析)
  • 技术书籍推荐(003)
  • A2A与MCP之间的简单理解
  • 【Echarts】使用echarts绘制多个不同类型的中国地图
  • Redis 集群切片全解析:四种常见技术的原理、优劣与应用
  • Github 2025-04-25 Java开源项目日报 Top8
  • Java实现HTML转PDF(deepSeekAi->html->pdf)
  • 通过模仿学习实现机器人灵巧操作:综述(下)
  • Azure Data Factory ETL设计与调度最佳实践
  • Android ActivityManagerService(AMS)深度解析
  • PostgreSQL使用LIKE右模糊没有走索引分析验证
  • 【高频考点精讲】ES6 String的新增方法,处理字符串更方便了
  • CentOS系统防火墙服务介绍
  • 【大模型理解消化的搅碎机】基于6000种商品CSV表格的知识图谱构建
  • 计组1.2.4——计算机系统的层次结构
  • Allegro23.1新功能之OrcadX平台使用操作指导
  • (三) Trae 调试C++ 基本概念
  • 【虚拟机安装Ubuntu 24 LTS】 MobaXterm 连接Access denied错误-安装进度卡“正在传输文件”-固定内网ip
  • 反爬虫机制中的验证码识别:类型、技术难点与应对策略