当前位置: 首页 > article >正文

Kubernetes故障排查与问题定位:实战指南

Kubernetes故障排查与问题定位实战指南一、故障排查概述Kubernetes故障排查是运维工作中的重要环节。常见的故障类型包括Pod故障Pod无法启动、崩溃、重启网络故障Pod之间无法通信、服务不可访问存储故障持久化存储挂载失败、数据丢失调度故障Pod无法调度到节点资源故障CPU/内存不足、资源配额超限二、Pod故障排查2.1 查看Pod状态# 查看所有Pod状态 kubectl get pods # 查看Pod详细状态 kubectl describe pod my-pod # 查看Pod事件 kubectl get events --field-selector involvedObject.namemy-pod # 查看Pod日志 kubectl logs my-pod kubectl logs my-pod -c my-container # 查看之前容器的日志 kubectl logs my-pod --previous2.2 常见Pod状态状态说明排查方向PendingPod正在等待调度检查节点资源、调度约束、网络策略RunningPod正在运行检查容器健康状态、日志CrashLoopBackOff容器反复崩溃检查应用日志、资源配置ImagePullBackOff镜像拉取失败检查镜像地址、镜像仓库认证InvalidImageName镜像名称无效检查镜像名称拼写2.3 Pod启动失败排查# 检查镜像拉取 kubectl describe pod my-pod | grep -A 10 Events # 检查容器启动命令 kubectl get pod my-pod -o jsonpath{.spec.containers[0].command} # 检查环境变量 kubectl get pod my-pod -o jsonpath{.spec.containers[0].env} # 检查资源限制 kubectl get pod my-pod -o jsonpath{.spec.containers[0].resources}三、节点故障排查3.1 查看节点状态# 查看所有节点状态 kubectl get nodes # 查看节点详细信息 kubectl describe node my-node # 查看节点资源使用 kubectl top nodes # 检查节点条件 kubectl get nodes -o jsonpath{.items[*].status.conditions}3.2 节点不可用排查# 检查节点是否被隔离 kubectl get node my-node -o jsonpath{.spec.unschedulable} # 检查节点污点 kubectl get node my-node -o jsonpath{.spec.taints} # 检查节点标签 kubectl get node my-node -o jsonpath{.metadata.labels} # 检查节点容量 kubectl get node my-node -o jsonpath{.status.capacity}3.3 Kubelet状态检查# 检查Kubelet日志 journalctl -u kubelet -f # 检查Kubelet健康状态 curl -s http://localhost:10255/healthz # 检查Kubelet配置 cat /var/lib/kubelet/config.yaml四、网络故障排查4.1 Pod网络连通性测试# 在Pod中测试网络 kubectl exec -it my-pod -- ping google.com # 测试Pod之间通信 kubectl exec -it pod1 -- ping pod2-ip # 测试DNS解析 kubectl exec -it my-pod -- nslookup kubernetes.default # 测试Service访问 kubectl exec -it my-pod -- curl http://my-service:80804.2 Service故障排查# 查看Service状态 kubectl get service my-service # 查看Service详情 kubectl describe service my-service # 检查Endpoint状态 kubectl get endpoints my-service # 检查Service选择器 kubectl get service my-service -o jsonpath{.spec.selector}4.3 Ingress故障排查# 查看Ingress状态 kubectl get ingress my-ingress # 查看Ingress详情 kubectl describe ingress my-ingress # 检查Ingress Controller日志 kubectl logs -n ingress-nginx -l app.kubernetes.io/nameingress-nginx # 测试Ingress访问 curl -H Host: app.example.com http://ingress-ip五、存储故障排查5.1 PVC故障排查# 查看PVC状态 kubectl get pvc my-pvc # 查看PVC详情 kubectl describe pvc my-pvc # 检查PV状态 kubectl get pv # 检查StorageClass kubectl get storageclass5.2 存储挂载失败# 检查Pod挂载状态 kubectl describe pod my-pod | grep -A 5 Volumes # 检查节点存储配置 lsblk # 检查存储卷挂载点 df -h # 检查CSI驱动状态 kubectl get csidrivers六、资源故障排查6.1 资源不足排查# 查看Pod资源使用 kubectl top pods # 查看节点资源使用 kubectl top nodes # 检查资源配额 kubectl get resourcequota # 检查LimitRange kubectl get limitrange6.2 OOM Killer排查# 检查系统日志中的OOM事件 grep -i Out of memory /var/log/messages # 检查Pod事件中的OOM kubectl get events | grep -i oom # 检查节点内存状态 free -h七、调度故障排查7.1 Pod无法调度# 查看Pod调度事件 kubectl describe pod my-pod | grep -A 20 Events # 检查节点选择器 kubectl get pod my-pod -o jsonpath{.spec.nodeSelector} # 检查节点亲和性 kubectl get pod my-pod -o jsonpath{.spec.affinity} # 检查节点污点 kubectl get nodes -o jsonpath{.items[*].spec.taints}7.2 调度器日志分析# 查看调度器日志 kubectl logs -n kube-system -l componentkube-scheduler # 检查调度器配置 kubectl get configmap -n kube-system kube-scheduler # 检查Pod优先级 kubectl get priorityclass八、高级排查工具8.1 使用kubectl debug# 创建调试Pod kubectl debug my-pod -it --imagebusybox # 复制Pod配置创建调试Pod kubectl debug my-pod -it --copy-todebug-pod --imagebusybox # 进入节点调试 kubectl debug node/my-node -it --imagebusybox8.2 使用tcpdump抓包# 在Pod中安装tcpdump kubectl exec -it my-pod -- apt-get update apt-get install -y tcpdump # 抓包 kubectl exec -it my-pod -- tcpdump -i any port 8080 # 保存抓包文件 kubectl exec -it my-pod -- tcpdump -i any -w /tmp/capture.pcap8.3 使用strace调试# 在Pod中安装strace kubectl exec -it my-pod -- apt-get update apt-get install -y strace # 追踪系统调用 kubectl exec -it my-pod -- strace -p pid # 追踪进程启动 kubectl exec -it my-pod -- strace -f -s 2048 ./my-app九、日志分析9.1 收集Pod日志# 收集所有Pod日志 kubectl logs my-pod my-pod.log # 收集容器日志 kubectl logs my-pod -c my-container my-container.log # 收集之前容器的日志 kubectl logs my-pod --previous my-pod-previous.log # 实时查看日志 kubectl logs -f my-pod9.2 分析系统日志# 查看Kubernetes组件日志 kubectl logs -n kube-system -l componentkube-apiserver kubectl logs -n kube-system -l componentkube-controller-manager kubectl logs -n kube-system -l componentkube-scheduler # 查看节点系统日志 journalctl -u kubelet journalctl -u docker journalctl -u containerd9.3 使用ELK分析日志apiVersion: v1 kind: ConfigMap metadata: name: fluentd-config data: fluent.conf: | source type tail path /var/log/containers/*.log tag kubernetes.* format json /source match kubernetes.** type elasticsearch host elasticsearch.default.svc.cluster.local port 9200 index_name k8s-logs /match十、故障排查流程图1. Pod无法启动 ├─→ 检查Pod状态 (kubectl get pods) ├─→ 查看Pod详情 (kubectl describe pod) ├─→ 查看Pod日志 (kubectl logs) └─→ 检查事件 (kubectl get events) 2. 服务无法访问 ├─→ 检查Service状态 (kubectl get svc) ├─→ 检查Endpoint (kubectl get endpoints) ├─→ 检查Pod网络 (kubectl exec ping) └─→ 检查Ingress (kubectl get ingress) 3. 节点不可用 ├─→ 检查节点状态 (kubectl get nodes) ├─→ 查看节点详情 (kubectl describe node) ├─→ 检查Kubelet日志 (journalctl) └─→ 检查节点资源 (kubectl top nodes) 4. 存储挂载失败 ├─→ 检查PVC状态 (kubectl get pvc) ├─→ 检查PV状态 (kubectl get pv) ├─→ 检查StorageClass (kubectl get sc) └─→ 检查节点存储 (df -h)十一、最佳实践11.1 日志收集配置集中式日志收集系统设置日志保留策略配置日志轮转11.2 监控告警配置关键指标监控设置合理的告警阈值配置告警通知渠道11.3 定期检查定期检查集群健康状态定期清理无用资源定期备份重要数据11.4 故障演练定期进行故障演练完善故障恢复流程文档化故障处理步骤参考资料Kubernetes故障排查指南kubectl debug文档Kubernetes日志文档

相关文章:

Kubernetes故障排查与问题定位:实战指南

Kubernetes故障排查与问题定位:实战指南 一、故障排查概述 Kubernetes故障排查是运维工作中的重要环节。常见的故障类型包括: Pod故障:Pod无法启动、崩溃、重启网络故障:Pod之间无法通信、服务不可访问存储故障:持久…...

4.7 Spark SQL函数分类与应用

本次实战涵盖了三大核心内容:内置函数、自定义函数(UDF)和开窗函数。 内置函数是数据处理的基础,包括字符串、日期、数学、聚合等10大类,可通过DataFrame API或SQL语句两种方式调用,满足多样化的数据转换需…...

智改数转:制造企业绕不开的必答题

近几年,"智改数转"这个词频繁出现在各地政策文件和行业论坛里。对很多制造企业来说,它已经从"可选项"变成了"必答题"。但真正落地的时候,问题远比口号复杂。先说句实话:多数企业的数字化还停留在表…...

Layerdivider:用AI智能解构插画,让PSD图层分离变得轻而易举

Layerdivider:用AI智能解构插画,让PSD图层分离变得轻而易举 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 在数字艺术创作中&…...

Irony Mod Manager:终极Paradox游戏模组冲突解决方案完全指南

Irony Mod Manager:终极Paradox游戏模组冲突解决方案完全指南 【免费下载链接】IronyModManager Mod Manager for Paradox Games. Official Discord: https://discord.gg/t9JmY8KFrV 项目地址: https://gitcode.com/gh_mirrors/ir/IronyModManager 你是否曾经…...

2026实测|5款AI论文写作软件深度对比(含降重/AIGC检测/价格)

根据2026年最新的实测数据,我为你整理了一份好用的AI论文写作软件清单,按适用场景分类,你可以根据自己的需求快速匹配。 📊 核心工具速览对比 工具名称核心优势最佳适用场景价格参考推荐指数PaperRed中文全流程、降重合规、文献真…...

3分钟搞定Windows苹果USB驱动安装:终极免费解决方案

3分钟搞定Windows苹果USB驱动安装:终极免费解决方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mirro…...

如何快速上手OOMAO:MATLAB自适应光学仿真终极指南

如何快速上手OOMAO:MATLAB自适应光学仿真终极指南 【免费下载链接】OOMAO Object-Oriented, Matlab & Adaptive Optics 项目地址: https://gitcode.com/gh_mirrors/oo/OOMAO OOMAO(Object-Oriented, Matlab & Adaptive Optics&#xff09…...

对比直接使用厂商API,Taotoken在用量观测与账单管理上的便利性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比直接使用厂商API,Taotoken在用量观测与账单管理上的便利性 当开发者或团队同时接入多个大模型厂商的原生API时&…...

抖音内容保存技术方案:开源下载工具深度解析与应用实践

抖音内容保存技术方案:开源下载工具深度解析与应用实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...

CircuitJS1 Desktop Mod终极指南:开启离线电路仿真新纪元

CircuitJS1 Desktop Mod终极指南:开启离线电路仿真新纪元 【免费下载链接】circuitjs1 Standalone (offline) version of the Circuit Simulator with small modifications based on modified NW.js. 项目地址: https://gitcode.com/gh_mirrors/circ/circuitjs1 …...

动物森友会存档编辑神器:NHSE新手完全入门指南

动物森友会存档编辑神器:NHSE新手完全入门指南 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE 你是否曾经梦想过在《集合啦!动物森友会》中拥有无限铃钱、稀有家具&#xf…...

显卡驱动清理终极指南:为什么你的系统需要Display Driver Uninstaller深度清理?

显卡驱动清理终极指南:为什么你的系统需要Display Driver Uninstaller深度清理? 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirr…...

3大核心技术:解密QMC音频文件的最优方案

3大核心技术:解密QMC音频文件的最优方案 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 在数字音乐版权保护日益严格的今天,QQ音乐采用的QMC加密格式…...

如何在10分钟内搭建个人游戏串流服务器:Sunshine跨平台游戏流媒体完全指南

如何在10分钟内搭建个人游戏串流服务器:Sunshine跨平台游戏流媒体完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否梦想过在任何设备上畅玩PC游戏&#x…...

快速导出微信聊天记录:WeChatExporter让你轻松备份珍贵对话

快速导出微信聊天记录:WeChatExporter让你轻松备份珍贵对话 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾担心手机丢失或更换设备时,那…...

Claude Code、Cursor、Codex到底是什么?法律人AI开发工具全解析

一、AI IDE是什么?从代码编辑器到智能助理AI IDE AI 集成开发环境(IDE)。传统IDE如VS Code、IntelliJ,开发者需要手动编写每一行代码、查阅文档、编写测试用例。AI IDE则让开发者用自然语言下达指令,AI理解整个项目结…...

Barlow字体:54种样式打造专业级设计效果,提升你的视觉表达力

Barlow字体:54种样式打造专业级设计效果,提升你的视觉表达力 【免费下载链接】barlow Barlow: a straight-sided sans-serif superfamily 项目地址: https://gitcode.com/gh_mirrors/ba/barlow Barlow是一款源自加州公共视觉美学的专业字体家族&a…...

终极指南:3分钟学会用Awoo Installer免费安装Switch游戏

终极指南:3分钟学会用Awoo Installer免费安装Switch游戏 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Switch游戏安装而烦恼吗…...

终极显卡风扇控制指南:用FanControl彻底解决NVIDIA风扇异常

终极显卡风扇控制指南:用FanControl彻底解决NVIDIA风扇异常 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trendi…...

车联网TBOX开发实战六,CAN特性

接上篇芯片及系统方案基础,本篇想写个远程控制,但想想整个交互链路较长,涉及到的基础很多,决定先从最基础的介绍一下,CAN,就是与车辆交互的核心总线本篇不做CAN基础的全面讲解,网络上有大篇幅的…...

独立开发者如何借助Taotoken模型广场快速选型与对比测试

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何借助Taotoken模型广场快速选型与对比测试 对于独立开发者或小型创业团队而言,项目初期选择合适的大模型…...

保姆级教程✅ 从零学InVEST/SolVES模型,附QGIS/PostgreSQL/R语言实操+数据预处理全流程

本内容将讲述用于评估生态系统服务价值的当量因子法、InVEST模型、SolVES模型及其原理,通过本课程的学习,您将学会三种模型的原理与运行方法:如何获取与制备模型数据;如何进行当量因子转换;如何利用InVEST模型进行生态…...

Dism++:Windows系统维护的终极免费工具,一键解决卡顿和更新问题

Dism:Windows系统维护的终极免费工具,一键解决卡顿和更新问题 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language 你是否曾为Windows系统运行…...

终极指南:用Python AUTOSAR轻松生成ARXML文件,告别昂贵商业工具

终极指南:用Python AUTOSAR轻松生成ARXML文件,告别昂贵商业工具 【免费下载链接】autosar A set of python modules for working with AUTOSAR XML files 项目地址: https://gitcode.com/gh_mirrors/au/autosar 还在为AUTOSAR工具链的高昂费用和复…...

带标注的焊接型球头杆端关节轴承(鱼眼接头)缺陷识别数据集,识别率99.1%,可识别卡死,锈迹,合格,凹痕缺陷,20580张图,支持yolo,coco json,voc xml,文末有模型训练代码

​ 带标注的焊接型球头杆端关节轴承(鱼眼接头)缺陷识别数据集,识别率99.1%,可识别卡死,锈迹,合格,凹痕缺陷,20580张图,支持yolo,coco json,voc xml,文末有模型训练代码 …...

在自动化脚本中集成Taotoken实现稳定的大模型调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在自动化脚本中集成Taotoken实现稳定的大模型调用 将大模型能力嵌入自动化流程,例如数据清洗与摘要生成脚本&#xff0…...

终极AI音乐创作工具:5分钟生成专业级歌曲翻唱

终极AI音乐创作工具:5分钟生成专业级歌曲翻唱 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen 你是否曾经梦想…...

蛋白质-配体相互作用分析终极指南:PLIP工具从入门到精通

蛋白质-配体相互作用分析终极指南:PLIP工具从入门到精通 【免费下载链接】plip Protein-Ligand Interaction Profiler - Analyze and visualize non-covalent protein-ligand interactions in PDB files according to 📝 Schake, Bolz, et al. (2025), h…...

如何用AI CoverGen在5分钟内将音频转换为专业级音乐封面

如何用AI CoverGen在5分钟内将音频转换为专业级音乐封面 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen AICoverGen是一款…...