Hotdry.
distributed-systems

K8s Pod 意外重启排查三板斧

生产环境Pod莫名重启?三个命令快速定位问题根因

现象

Pod 状态正常,但重启次数不断增加,业务偶发异常。

排查流程

1. 查看退出码

kubectl describe pod <pod-name> | grep "Exit Code"
  • 137: 被 SIGKILL 杀死,通常是 OOM
  • 143: 被 SIGTERM 杀死,通常是优雅关闭
  • 1: 应用异常退出

2. 检查资源限制

kubectl top pod <pod-name>
kubectl describe pod <pod-name> | grep -A 5 -B 5 "Limits\|Requests"

内存使用接近 limit?调大或优化代码。

3. 查看内核日志

# 在节点上执行
dmesg | grep -i "killed process"
journalctl -u kubelet | grep OOM

常见原因速查表

退出码 可能原因 解决方案
137 OOM Killer 增加内存限制或优化内存使用
143 优雅关闭超时 增加 terminationGracePeriodSeconds
1 应用 Bug 查看应用日志,修复代码问题
0 正常退出但重启 检查 restartPolicy 和健康检查

预防措施

  1. 设置合理的资源请求和限制
  2. 配置正确的健康检查
  3. 监控 Pod 重启指标
  4. 应用优雅关闭处理

记住:90% 的 Pod 重启问题都是资源不足或应用 Bug。

查看归档