0

0

LinuxKubernetes故障排查教程_Pod异常与网络问题

舞夢輝影

舞夢輝影

发布时间:2026-01-01 14:00:17

|

610人浏览过

|

来源于php中文网

原创

Pod异常状态需分层排查:先用kubectl describe查看状态与Events,再查日志和exec调试,接着验证节点资源与调度约束,最后逐层检查CNI、DNS及Service网络连通性。

linuxkubernetes故障排查教程_pod异常与网络问题

Pod 一直处于 Pending、CrashLoopBackOff 或 NotReady 状态,通常不是单一原因导致,而是资源、配置、镜像、节点或网络中某一个环节出了问题。快速定位的关键是分层检查:先看 Pod 自身状态和事件,再查容器日志,接着验证节点资源与调度约束,最后聚焦网络连通性与 CNI 插件行为。

看 Pod 状态和 Events 是第一反应

运行 kubectl describe pod <pod-name> -n <namespace>,重点关注两块内容:

  • Conditions:比如 Initialized=False 可能是 Init 容器失败;Ready=False 说明主容器没通过 readiness probe;ContainersReady=False 表示至少一个容器未就绪
  • Events(最实用):常见提示如 FailedScheduling(资源不足/污点不匹配)、ImagePullBackOff(镜像名错/私有仓库没 secret)、FailedMount(PV/PVC 绑定失败或权限问题)

如果 Events 里出现 NodeAffinityTaints 相关拒绝信息,要同步检查节点的 taint 和 Pod 的 toleration 配置是否匹配。

查容器日志和 exec 进去诊断

即使 Pod 处于 CrashLoopBackOff,只要它启动过,就能拿到上一次崩溃前的日志:

  • kubectl logs <pod-name> -n <namespace> --previous 查上一轮容器输出
  • kubectl logs <pod-name> -n <namespace> -c <container-name> 指定多容器中的某一个
  • 如果容器还能短暂运行,用 kubectl exec -it <pod-name> -n <namespace> -- sh 进入调试(注意:有些精简镜像不含 sh,可试 ash 或 /bin/bash)

进容器后优先检查:配置文件路径是否存在、环境变量是否注入正确、依赖服务 DNS 是否能解析(nslookup kubernetes.default.svc.cluster.local)、端口是否被占用(netstat -tuln)。

Mokker AI
Mokker AI

AI产品图添加背景

下载

确认节点资源与调度是否正常

Pod 卡在 Pending,大概率是调度器找不到合适节点。执行以下命令交叉验证:

  • kubectl get nodes -o wide 看节点是否 Ready,资源(CPU/Mem)是否充足
  • kubectl top nodes 查实时资源使用率(需 metrics-server 已部署)
  • kubectl get events --sort-by=.lastTimestamp | tail -20 找集群级调度失败事件
  • 检查 Pod 的 resource requests 是否远超节点可用容量,或设置了 nodeSelector 但没有节点打对应 label

临时测试可删掉 resource request/limit 或修改 nodeSelector,看 Pod 是否能成功调度——这能帮你快速隔离是策略问题还是资源问题。

网络不通?从底层 CNI 到 Service 逐层验证

Pod 之间 ping 不通、无法访问 Service、DNS 解析失败,按这个顺序排查:

  • Pod IP 层通信:在源 Pod 中 ping <目标-Pod-IP>。失败说明 CNI 插件未正确配置(如 calico/node 未运行、flannel 启动失败、kube-proxy 异常)
  • DNS 解析nslookup kubernetes.default.svc.cluster.local。失败先查 CoreDNS Pod 是否 Running,再看其日志(kubectl logs -n kube-system deployment/coredns),并确认 kubelet 的 --cluster-dns 参数指向正确地址
  • Service 访问:用 ClusterIP + port curl,同时查 kubectl get endpoints <service-name> 确认后端 Pod 地址已同步;再查 iptables/ipvs 规则是否生成(kubectl get svc <name> -o wide 对比 endpoint IPs 是否一致)

如果所有 Pod 都无法访问外网,检查节点 host 上的 iptables FORWARD 链是否被 DROP,以及 CNI 插件是否配置了正确的 masquerade 规则。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
resource是什么文件
resource是什么文件

Resource文件是一种特殊类型的文件,它通常用于存储应用程序或操作系统中的各种资源信息。它们在应用程序开发中起着关键作用,并在跨平台开发和国际化方面提供支持。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

181

2023.12.20

sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

409

2023.09.04

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

455

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

183

2023.10.30

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

236

2023.12.07

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

27

2025.12.22

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

27

2025.12.22

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

37

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

136

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.6万人学习

Git 教程
Git 教程

共21课时 | 4.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号