Pod 状态说明
| 状态 | 含义 | 排查 |
|---|
| CrashLoopBackOff | 容器反复崩溃 | 查看日志、资源限制 |
| ImagePullBackOff | 镜像拉取失败 | 检查镜像名、网络 |
| CreateContainerError | 创建容器失败 | 检查配置、权限 |
| OOMKilled | 内存不足 | 增加 memory limits |
Exit Code 规则
范围: 0-255
分类:
- 0:正常退出
- 1-128:程序异常
- 129-255:外部信号
转换公式:
1 2
| 负数:256 - (|code| % 256) 正数:code % 256
|
常见退出码
| Code | 信号 | 含义 | 原因 |
|---|
| 0 | - | 正常退出 | Job完成 |
| 1 | - | 程序错误 | 代码bug、配置错误 |
| 2 | - | Shell错误 | 命令使用错误 |
| 126 | - | 不可执行 | 权限问题 |
| 127 | - | 命令未找到 | PATH错误、拼写错误 |
| 137 | SIGKILL | 强制杀死 | OOM、kill -9 |
| 139 | SIGSEGV | 段错误 | 内存访问错误 |
| 143 | SIGTERM | 正常终止 | docker stop |
| 255 | - | 退出码超范围 | exit(-1) |
排查命令
1 2 3 4 5 6 7 8 9
| kubectl describe pod <pod-name>
kubectl logs <pod-name> kubectl logs <pod-name> --previous
kubectl get events --field-selector involvedObject.name=<pod-name>
|
常见问题
Exit Code 137 (OOM)
1 2 3 4 5 6
| kubectl top pod <pod-name>
resources: limits: memory: "2Gi"
|
Exit Code 143 (SIGTERM)
1 2 3 4 5 6
| lifecycle: preStop: exec: command: ["sh", "-c", "sleep 15"] terminationGracePeriodSeconds: 30
|
参考:https://blog.csdn.net/hakula007/article/details/125786395