最近处理了几个线上问题,在解决问题中,总结以下经验。

《Kubernetes Pod周期性重启故障排查实录:从宕机到稳定的启示》


引言


第一章:故障现象与初步分析

  1. 症状描述
    • Pod状态变化:
      1
      
      CrashLoopBackOff
      
      /
      1
      
      OOMKilled
      
      /
      1
      
      Error
      
    • 日志特征:重启时间规律性、关键错误堆栈(如内存申请失败、健康检查超时)
    • 监控指标:CPU/内存使用率尖峰、线程数激增(附Prometheus/Grafana截图示例)
  2. 关键问题锁定
    • 使用
      1
      
      kubectl describe pod
      
      查看Events时间线,发现资源驱逐或探针失败记录。
    • 示例命令输出高亮关键信息(如
      1
      
      Last State: Terminated with Reason: Error
      
      )。

第二章:深度排查——定位根因的六步法

Step 1: 资源瓶颈分析

Step 2: 探针配置验证

Step 3: 日志与崩溃分析

Step 4: 节点与集群层检查

Step 5: 应用代码与依赖审查

Step 6: 配置与部署策略复查


第三章:解决与优化方案


第四章:验证与效果


第五章:经验沉淀——构建预防体系


结语


附录:实用命令速查

1
2
3
4
5
6
7
8
9
# 查看Pod事件时序
kubectl describe pod <pod-name> | grep -A 20 Events

# 追踪实时日志(含崩溃实例)
kubectl logs -f <pod-name> --previous

# 生成Heap Dump(Java示例)
kubectl exec <pod-name> -- jmap -dump:live,file=/tmp/heap.bin 1
kubectl cp <pod-name>:/tmp/heap.bin ./analysis/