news 2026/5/27 5:37:02

K8s 故障通用排查思路,从表层到内核,流程化+实操命令直接使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
K8s 故障通用排查思路,从表层到内核,流程化+实操命令直接使用

各位运维工程师们,大家在 K8s 故障时是不是有点束手无策,接下来我通过这篇文章,详细的罗列出 K8s 排查思路的整体原则,方便大家在运维过程中的报错排查:
以下是相关顺序:先看现象→定位层级→逐级排查→日志/资源/配置核验→修复验证,可以按访问层 → Pod层 → 集群资源层 → 节点层 → 网络/存储/内核顺序排查

一、确认故障现象,划分故障范围

先明确问题,避免盲目排查:

  1. 业务无法访问(超时、404、502、503),故障码具体原因和排查思路可参考:网页故障码全能手册
  2. Pod启动失败/反复重启/CrashLoopBackOff
  3. 节点NotReady、宕机、资源打满
  4. 调度异常:PodPending、无法调度
  5. 网络异常:Pod 间不通、外网不通、DNS 解析失败
  6. 存储异常:PVC 无法绑定、挂载失败

二、全局快速检查(集群整体状态)

1. 查看节点状态

kubectl get nodes kubectl describenode<节点名>
  • 异常:NotReady→ 优先查节点kubelet、容器运行时、磁盘/内存/CPU压力
  • 查看节点资源水位:
kubectltopnodes

2. 查看命名空间下所有资源(快速扫异常)

# 全资源概览kubectl get all-n<命名空间># 查看事件(K8s 最重要排错入口,报错、调度、挂载问题基本都在这里)kubectl get events-n<命名空间>--sort-by=.metadata.creationTimestamp

三、Pod 核心故障排查(最常见场景)

1. Pod 状态分类 & 对应排查

(1)状态:Pending(调度失败,没落到节点)

原因:资源不足、污点/亲和性、PVC未就绪、节点标签不匹配

# 详细原因kubectl describe pod<pod名>-n<ns>

重点看Events里的报错:

  • Insufficient cpu/memory:节点资源不足
  • node(s) didn't match Pod's node affinity/selector:标签/亲和性不匹配
  • persistentvolumeclaim "xxx" not found:PVC 未创建/未绑定
  • node(s) had taints that the pod didn't tolerate:节点污点未容忍
(2)状态:CrashLoopBackOff(启动后反复崩溃)

Pod 能拉起但进程退出,循环重启。
排查三步:

  1. 查看容器日志(首选
kubectl logs<pod名>-n<ns># 查看上一次崩溃日志(关键!当前日志为空时用)kubectl logs<pod名>-n<ns>--previous
  1. 进入容器交互式调试(镜像带shell时)
kubectlexec-it<pod名>-n<ns>-- /bin/sh
  1. 查看Pod详细描述,看启动探针/就绪探针、启动命令异常
kubectl describe pod<pod名>-n<ns>

常见原因:启动脚本错误、配置文件缺失、端口冲突、权限不足、镜像损坏。

(3)状态:Running 但业务不可用

Pod 正常运行,但访问报错、无响应。

  1. 检查就绪探针/存活探针是否失败:Readiness probe failed
  2. 进入容器自测:端口监听、进程是否存在、本地调用接口
  3. 检查容器内网络、配置、环境变量
(4)状态:ImagePullBackOff / ErrImagePull(镜像拉取失败)
kubectl describe pod<pod名>

原因:镜像地址错误、私有仓库无秘钥、节点无法连通镜像仓库、镜像标签不存在。

四、控制器层面排查(Deployment/StatefulSet/DaemonSet)

Pod 由控制器管理,Pod 异常先确认控制器配置:

# 查看控制器状态kubectl get deploy<部署名>-n<ns># 查看副本数、更新策略、事件kubectl describe deploy<部署名>-n<ns># 查看滚动更新历史,判断是否升级引发故障kubectl rollouthistorydeploy<部署名>-n<ns># 如需回滚kubectl rollout undo deploy<部署名>-n<ns>

常见问题:副本数为0、滚动更新策略异常、旧Pod无法销毁。

五、网络故障排查(访问不通、DNS异常)

1. 集群内部 Pod 不通

  1. 检查网络插件状态(Calico/Flannel)
kubectl get pods-nkube-system|grepcalico/flannel
  1. 检查Pod IP、节点IP是否互通,防火墙/安全组是否放行
  2. 检查Service:ClusterIP、端口、标签选择器是否匹配
kubectl get svc-n<ns>kubectl describe svc<svc名>

2. DNS 解析失败(域名无法解析)

测试 Pod 内 DNS:

# 进入业务Pod测试kubectlexec-it<pod名>-n<ns>--nslookupkubernetes.default# 检查coredns状态kubectl get pods-nkube-system|grepcoredns

3. 外网访问不通

检查节点路由、网关、防火墙、宿主机iptables、云平台安全组。

六、存储故障排查(PVC/PV 挂载异常)

状态:VolumeMount error、PVC 一直Pending

kubectl get pvc-n<ns>kubectl describe pvc<pvc名>-n<ns>kubectl getpv

常见原因:

  • 存储类(StorageClass)不存在/不可用
  • 存储后端(EVS/CSI/NFS)故障、权限不足
  • PV 绑定策略、访问模式不匹配

七、节点 & 集群组件故障(集群整体异常)

所有Pod异常、节点大面积NotReady,排查集群核心组件(kube-system)

1. 核心组件状态

kubectl get pods-nkube-system

重点关注:kube-apiserveretcdkube-controller-managerkube-schedulerkube-proxykubelet

2. 登录故障节点,排查宿主机

  1. 查看 kubelet 日志(节点核心服务)
# systemd 系统journalctl-ukubelet-f
  1. 查看容器运行时(containerd/docker)状态
systemctl status containerd
  1. 检查节点资源:磁盘满、inode耗尽、CPU/内存打满
df-hdf-ifree-htop
  1. 时间同步:K8s 依赖时间,时间偏差大会导致证书、鉴权失败
date

八、集群证书、权限、鉴权问题

现象:kubectl 执行命令报错x509 certificate expired、权限拒绝

  1. 证书过期:检查 k8s 证书有效期,更新证书
  2. RBAC 权限:ServiceAccount、Role、ClusterRole 授权不足
kubectl describe sa<账号名>-n<ns>

九、极简排错流程总结

该方法我们一线的运维工程师们可以直接套用:

  1. kubectl get nodes→ 节点是否正常
  2. kubectl get all -n 命名空间→ 看Pod/Deployment/SVC状态
  3. kubectl get events -n 命名空间→ 优先看事件报错
  4. Pod异常:kubectl describe pod+kubectl logs (--previous)
  5. 网络/DNS异常:检查coredns、网络插件、Service
  6. 存储异常:检查PVC/PV/StorageClass
  7. 全集群异常:登录节点查kubelet、容器运行时、磁盘资源

十、常用排错命令速查

# 实时查看Pod日志kubectl logs-f<pod>-n<ns># 进入Pod调试kubectlexec-it<pod>-n<ns>--sh# 查看节点资源占用kubectltoppod-n<ns># 强制删除僵死Podkubectl delete pod<pod>-n<ns>--grace-period=0--force
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/27 5:34:05

学生用户画像-考勤主题扩展标签构建、可视化实验文档

学生用户画像&#xff1a;考勤主题扩展标签构建与可视化一、实验名称实验课3&#xff1a;学生用户画像-考勤主题扩展标签构建、可视化。二、实验目的基于 student_attendance_stats 学生考勤主题标签表&#xff0c;使用 K-Means 对迟到、早退、请假、没穿校服等行为指标进行自动…

作者头像 李华
网站建设 2026/5/27 5:32:58

AI开发者的网络卡点:Anthropic连接超时实战避坑指南

技术文章大纲&#xff1a;使用OpenCL重写CUDA内核背景与动机CUDA与OpenCL的异同点&#xff1a;架构设计、适用平台、性能特性为何需要从CUDA迁移到OpenCL&#xff1a;跨平台需求、开源生态、长期维护性目标读者&#xff1a;CUDA开发者、异构计算工程师、跨平台应用开发者CUDA内…

作者头像 李华
网站建设 2026/5/27 5:31:42

小程序开发外包专业度评估:技术栈、代码规范与交付验收全指南

&#xff5c;写在前面 小程序开发外包已成为企业快速上线业务的首选方式。但“专业”与否&#xff0c;并非由平台名气或开发者的口头承诺决定&#xff0c;而是体现在技术选型合理性、代码规范、交付物完整性、售后响应等可量化维度。 本文将从甲方技术视角出发&#xff0c;提供…

作者头像 李华
网站建设 2026/5/27 5:31:39

老金装上Caveman后Claude和Codex变穴居人,账单立省75%

上周三晚上&#xff0c;老金我又一次打开Claude中转站后台看用量。 那张账单条形图涨得比A股还猛。我盯着看了两分钟&#xff0c;没生气&#xff0c;就是有点疲。Claude Code跑一天&#xff0c;几百万token下去&#xff0c;钱倒还能接受&#xff0c;关键是看那个输出——它每次…

作者头像 李华
网站建设 2026/5/27 5:31:22

查体智能辅助诊疗系统PC版正式发布,AI中医应用示范医院同步挂牌落地——知医邦AI中医诊疗体系规模化应用里程碑

2026年2月&#xff0c;知医邦正式发布了查体智能辅助诊疗系统&#xff08;ChatiSS&#xff09;PC版&#xff1b;同期&#xff0c;旗下知医邦医院完成AI中医应用示范医院挂牌&#xff0c;标志着企业在AI中医临床落地、标准化诊疗与非药物疗法体系建设上进入规模化推广阶段。该发…

作者头像 李华
网站建设 2026/5/27 5:31:21

华为海思“滔定律“:时间微缩破局摩尔极限,为AI算力按下加速

2026年5月25日&#xff0c;华为海思突然扔出一颗震撼全球半导体圈的"重磅炸弹"——公司董事、半导体业务部总裁何庭波正式发布半导体全新指导性定律"滔定律&#xff08;τ定律&#xff09;"&#xff0c;以时间微缩替代摩尔定律沿用半世纪的几何微缩&#x…

作者头像 李华