找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1720

积分

0

好友

222

主题
发表于 14 小时前 | 查看: 2| 回复: 0

日常工作中,Pod出现异常情况可以说是家常便饭,尤其是在系统项目中首次部署某个服务时经常遇到。一旦稳定运行之后,Pod状态通常就不会有太大问题。

一个显示服务反复重启告警的聊天界面截图

Pod稳定运行后,如果不做任何运维变更操作,最常见的异常之一就是OOM(内存不足)。

显示容器因OOMKilled而终止的终端详情

基于以上背景,我们今天就来深入聊聊“Pod出现异常了,如何排查和定位?”,希望能帮助你在项目首次部署时更加游刃有余。

在开始介绍之前,可以阅读一篇网上看到的文章《解读 K8s Pod 的13种典型异常》,里面针对Pod的异常解读得非常详细。文章链接:https://segmentfault.com/a/1190000043165703

文章中列举的13种异常比较多,不需要现在就逐字逐句理解。当我们实际遇到某个异常时,再去针对性查阅即可。

3个指令搞定Pod异常定位

Pod出现异常时,我们的定位方法其实并不复杂。直接使用 kubectl 提供的故障排查子命令,基本就能定位到Pod的所有故障问题。下图红色框出的命令就是我们接下来要重点介绍的。

Kubernetes故障排查与调试命令列表

  • kubectl describe:查看资源详细状态和异常原因。
  • kubectl logs:查看应用日志,定位运行错误。
  • kubectl events:查看集群事件,定位调度或运行异常。

1)kubectl describe 命令

这里重点介绍一下 kubectl describe 命令,因为它能获取Pod的完整生命周期状态,包括异常状态。非常关键的是,该命令会记录当前和上一次的状态,如果是异常状态还会记录对应的原因。掌握这一点,我们就能很好地判断Pod的异常了。

describe命令输出示例,突出显示容器状态和终止原因

举个例子:

我给一个Nginx服务的Deployment添加了一个存活探针(Liveness Probe),并故意将其配置为检查81端口,以此来模拟一个故障。该Pod经过一段时间反复重启后,就会出现问题。

root@k8s-master01-192-168-1-28:~# kubectl get pod
NAME                                READY   STATUS             RESTARTS       AGE
nginx-test-645d57fd4c-tjjq9         0/1     CrashLoopBackOff   13 (96s ago)   30m

通过 kubectl describe pod 命令我们可以查看Pod的详情。首先关注State字段,可以看到当前容器的等待原因为 CrashLoopBackOff

describe pod 输出,显示容器状态为CrashLoopBackOff

仅凭上述的Reason,我们还无法准确判断问题根源。这时需要查看 describe 输出中更具体的Message信息。在事件(Events)部分,可以看到明确提示是Liveness存活探针检查失败。

Pod事件日志显示Liveness probe失败的具体信息

2)kubectl events 命令

kubectl events 命令可以追踪Pod的创建过程、异常发生过程,并记录异常信息。因此,它通常与 kubectl describe 结合使用,相互印证,提供更全面的诊断视角。

kubectl events命令输出的事件序列详情

3)kubectl logs 命令

kubectl logs 命令主要用于定位业务服务本身的问题,而非Pod资源的问题。这一点一定要区分清楚。

例如,即使Pod每次重启后的状态都是Running,但通过 kubectl logs 查看日志时,发现业务应用内部有报错信息。这时问题的根源就是业务代码或配置本身,而不再是Kubernetes Pod层面的资源问题了。

掌握以上三个命令,足以应对大多数 Pod 的异常定位场景。对于刚开始接触Kubernetes的朋友来说,这套方法非常实用,是日常 运维 工作的基础。希望这些分享能对你有所帮助。如果你对云原生技术有更多兴趣,欢迎到 云栈社区 与大家一起交流学习。




上一篇:派拉蒙1110亿美元收购华纳兄弟探索,Netflix理性退场获28亿分手费
下一篇:MySQL性能分析实战指南:用explain等命令排查SQL问题
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-3 22:57 , Processed in 0.379719 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表