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

容器和 Kubernetes 中的退出码

在 Kubernetes 中,Pod 中容器的退出状态(exitCode)表示容器进程退出时的状态码。这个 exitCode 通常是应用程序或 shell 返回的标准 UNIX/Linux 退出码。理解常见的 exitCode 有助于我们快速定位容器异常退出的原因。


一、常见 exitCode 及含义(基础类)

exitCode含义说明常见原因
0成功退出(正常)容器程序已完成任务或被优雅终止
1一般性错误(General Error)程序内部异常,shell 命令失败等
2不正确的用法(Misuse of shell builtins)脚本语法错误、参数错误等
126命令无法执行权限问题、不是可执行文件,例如:Permission denied
127命令未找到程序或脚本路径不对、可执行文件缺失,例如:command not found
128无效的退出码(Invalid argument to exit)一般由 exit 调用非法参数引起
137被信号 SIGKILL 杀死(9)容器被 OOM(内存溢出)或 kubelet 强制杀死(如 kubectl delete pod
139被信号 SIGSEGV 杀死(11)段错误(如访问了非法内存),C/C++ 程序常见
143被信号 SIGTERM 杀死(15)通常是 Pod 正常终止(kubectl delete、升级等),但没优雅处理 SIGTERM

二、信号类退出码

Linux 中信号导致的进程退出,其 exitCode = 128 + 信号值。例如:

信号值信号名exitCode说明
9SIGKILL137强制终止(不能被捕获),如 OOM
11SIGSEGV139段错误,空指针或非法内存访问
15SIGTERM143默认的优雅终止信号
1SIGHUP129终端挂起或配置变更触发
2SIGINT130Ctrl+C 或终端中断

三、结合 Kubernetes 日常排查建议

情况可能 ExitCode建议排查方向
容器一秒内反复重启12查看容器日志,有无配置错误、参数缺失
OOM 被杀137kubectl describe podOOMKilled=true,检查内存限制是否太小
程序未找到127镜像中是否缺少主程序/脚本,路径是否正确
权限不足126文件是否有执行权限(chmod +x
突然退出无日志139C/C++ 程序崩溃,建议加 core dump 分析
优雅退出失败143容器没处理 SIGTERM,需支持 PreStop / trap 信号处理

四、如何查看 exitCode

kubectl get pod <pod-name> -o jsonpath='{.status.containerStatuses[*].state.terminated.exitCode}'

或者:

kubectl describe pod <pod-name>

查看 Terminated 状态下的 exitCode 与 reason。

五、一篇不错的文章

Exit Codes in Docker and Kubernetes: The Complete Guide

http://www.lqws.cn/news/540703.html

相关文章:

  • 【MariaDB】MariaDB Server 11.3.0 Alpha下载、安装、配置
  • 10【认识文件系统】
  • 云计算与人工智能的融合:从弹性算力到智能云的IT新革命
  • c#调用rust的dll怎么处理rust的panic
  • 为什么要设计access_token和refresh_token
  • Netty入门案例:简单Echo服务器(同步)
  • 航天VR赋能,无人机总测实验舱开启高效新篇​
  • 探秘 VR 逃生救援技术的奇妙世界​
  • 自动化保护 AWS ECS Fargate 服务:使用 Prisma Cloud 实现容器安全
  • Linux工作常用命令记录
  • 系统学习 Android 的 进程管理、内存管理、音频管理
  • 【人工智能与机器人研究】基于改进长短焦图像融合技术的轨道交通障碍物检测系统研究
  • 飞凌A40i使用笔记
  • 【RAG面试题】LLMs已经具备了较强能力,存在哪些不足点?
  • 命名数据网络 | 签名(Signature)
  • 电力微气象在线监测系统:温湿度 / 风速 / 气压多要素监测
  • ROS:录制相机、IMU、GNSS等设备数据
  • AI+实时计算如何赋能金融系统?DolphinDB 在国泰君安期货年度中期策略会的演讲
  • JetBrains AI助手登陆Android Studio!智能编码提升Kotlin开发效能
  • AI+物联网:从万物互联到万物智联
  • Spring 框架中@Resource和@Autowired是用于实现依赖注入的两个重要注解,及@Primary注解
  • 代码随想录|图论|09沉没孤岛
  • vue项目中纯前端实现导出pdf文件,不需要后端处理。
  • 论基于架构的软件设计方法(ABSD)及应用
  • Ehcache、Caffeine、Spring Cache、Redis、J2Cache、Memcached 和 Guava Cache 的主要区别
  • 【ubuntu24.04】忘了自己把开机samba挂载的脚本放哪里了
  • 【C++特殊工具与技术】固有的不可移植的特性(3)::extern“C“
  • Python实例题:文件内容搜索工具
  • 学习记录:DAY34
  • 树的重心(双dfs,换根)