Kubernetes 网络一出事,先别重启:一条从 Pod 打到内核的排查路线图

简介: Kubernetes 网络一出事,先别重启:一条从 Pod 打到内核的排查路线图

Kubernetes 网络一出事,先别重启:一条从 Pod 打到内核的排查路线图


说句掏心窝子的话:

Kubernetes 里,十个疑难杂症,八个最后都能追溯到“网络”。

服务超时、探针失败、Pod 起不来、节点 NotReady、偶发 502……
你去翻日志,啥也没有;
你问开发,人家说“我代码没改”;
你一看监控,CPU、内存都挺健康。

最后,锅往往落在一句很抽象的话上:

“网络好像不太稳定。”

而 Kubernetes 的网络,恰恰是最容易被“想当然”对待的东西

今天我想干一件事:
给你一条真正能落地的、从 Pod 一路查到 Linux 内核的排查路径。
不是技巧合集,而是一种系统化思维方式


一、先说结论:K8s 网络不是“一个东西”

很多人一排查就犯的第一个错是:

把 Kubernetes 网络,当成一个整体问题。

但在我眼里,它至少分 5 层

  1. Pod 内部网络
  2. Pod ↔ Pod(同节点 / 跨节点)
  3. Service / kube-proxy
  4. Node 网络 & CNI
  5. Linux 内核网络栈

你要是没分层,排查一定是乱的。


二、第一层:Pod 内部,别急着甩锅给集群

网络不通?
先别怪 CNI,先看 Pod 自己。

你第一步该干啥?

kubectl exec -it pod-a -- sh

然后在 Pod 里做三件事:

ip addr
ip route
ping 127.0.0.1

你要确认的只有几件小事:

  • Pod 有没有 IP?
  • 默认路由是不是指向 eth0?
  • 本地 loopback 通不通?

我见过真实事故:

Pod 用的是 distroless 镜像,
容器里连 ip 命令都没有,
最后靠猜查了一晚上。

结论很扎心:

你连 Pod 自己是不是“醒着的”都没确认,就开始怀疑整个集群。


三、第二层:Pod ↔ Pod,先区分“同节点”还是“跨节点”

这是一个90% 的人忽略、但极其关键的分叉点

怎么快速判断?

kubectl get pod -o wide

NODE 列。

情况 A:同一个 Node 上 Pod 不通

优先怀疑:

  • CNI bridge / veth
  • iptables / eBPF 规则异常
  • Pod 网卡被删了

你可以在 Node 上看:

ip link | grep veth

如果 veth 对不上,那基本已经接近真相了。

情况 B:跨 Node 才不通

那你要开始怀疑:

  • Node 间路由
  • Overlay 网络(VXLAN / Geneve)
  • 防火墙 / 安全组

一个很实用的命令:

kubectl exec pod-a -- traceroute pod-b-ip

看包卡在哪一跳,比你盲猜一小时都有用。


四、第三层:Service 不通?别急着骂 kube-proxy

我见过太多人,一遇到 Service 问题就一句话:

“kube-proxy 又抽风了。”

但事实是:
Service 只是 iptables / IPVS 规则的“外壳”。

你该确认三件事:

1️⃣ Endpoints 对不对?

kubectl get endpoints svc-name

如果这里是空的,那网络再好也没用。

2️⃣ kube-proxy 模式是啥?

kubectl -n kube-system get cm kube-proxy -o yaml

iptables 还是 IPVS?
排查方式完全不一样。

3️⃣ Node 上规则是否存在?

iptables 模式:

iptables -t nat -L | grep svc-name

IPVS 模式:

ipvsadm -Ln

我踩过一个很典型的坑:

kube-proxy 在
Node 上 OOM 被杀了,
规则还在,但不再更新。

结论:

Service 出问题,很多时候是“数据面还在,控制面已经死了”。


五、第四层:CNI 网络,问题集中营

说句大实话:

Kubernetes 网络 80% 的复杂度,都在 CNI。

无论你用的是:

  • Calico
  • Flannel
  • Cilium

你都必须搞清楚三件事:

  1. Pod IP 怎么来的
  2. 跨节点流量怎么走
  3. 策略在哪一层生效

以 Calico 为例

你至少得会看:

calicoctl node status
calicoctl get ippool -o yaml

我遇到过一个很经典的事故:

IPPool CIDR 改了,
老节点没同步,
新 Pod 分配的 IP 根本路由不到。

表面现象:

  • Pod 偶发不通
  • 重启“有时好,有时坏”

这类问题,不系统排查,你根本抓不到。


六、第五层:Linux 内核,真·终极形态

当你走到这一步,说明:

你已经比 80% 的 K8s 使用者走得更深了。

几个你必须掌握的工具:

conntrack 表爆了

conntrack -L | wc -l

再看看最大值:

sysctl net.netfilter.nf_conntrack_max

真实线上事故:

高并发短连接
conntrack 满
新连接直接被 DROP
应用层只看到 timeout


丢包?别光看网卡

ethtool -S eth0
netstat -s

再配合:

tcpdump -i eth0

抓包不是为了装逼,是为了终止争论。


七、我自己的一个“血泪总结”

干了这么多年运维,我越来越坚定一个观点:

Kubernetes 网络排查,拼的不是命令多,而是路径清楚。

如果你愿意记住一句话,那就是:

从 Pod 开始,一层一层往下,不要跳步。

  • 不要一上来重启节点
  • 不要一上来升级 CNI
  • 不要一上来甩锅云厂商

因为:

重启解决的问题,通常不是被你解决的,而是被你“掩盖”的。


写在最后

Kubernetes 网络这玩意儿,说难是真难,
但一旦你脑子里有了分层模型
很多“玄学问题”会突然变得特别理性。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
5月前
|
运维 Kubernetes 安全
CNI 不是装完就完事:Calico、Cilium、Weave,选错一个,集群网络天天加班
CNI 不是装完就完事:Calico、Cilium、Weave,选错一个,集群网络天天加班
441 8
|
5月前
|
人工智能 API 机器人
OpenClaw 用户部署和使用指南汇总
本文档为OpenClaw(原MoltBot)官方使用指南,涵盖一键部署(阿里云轻量服务器年仅68元)、钉钉/飞书/企微等多平台AI员工搭建、典型场景实践及高频问题FAQ。同步更新产品化修复进展,助力用户高效落地7×24小时主动执行AI助手。
29938 253
|
5月前
|
人工智能 算法 量子技术
下一代互联网的模样:当 AI 会思考、Web3 去中心、量子打破极限
下一代互联网的模样:当 AI 会思考、Web3 去中心、量子打破极限
279 8
下一代互联网的模样:当 AI 会思考、Web3 去中心、量子打破极限
|
5月前
|
人工智能 机器人 API
从“调个 API”到“自己养模型”:用 Python 快速构建聊天机器人的完整路径
从“调个 API”到“自己养模型”:用 Python 快速构建聊天机器人的完整路径
560 4
|
5月前
|
机器学习/深度学习 数据可视化 程序员
模型说不清,人就不敢用:可解释性,往往死在数据准备那一步
模型说不清,人就不敢用:可解释性,往往死在数据准备那一步
328 8
|
5月前
|
SQL 人工智能 运维
人机共生时代:AI 不是敌人,而是一起扛活的伙伴
人机共生时代:AI 不是敌人,而是一起扛活的伙伴
260 7
|
6月前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
9443 18
|
6月前
|
人工智能 测试技术 开发者
AI Coding后端开发实战:解锁AI辅助编程新范式
本文系统阐述了AI时代开发者如何高效协作AI Coding工具,强调破除认知误区、构建个人上下文管理体系,并精准判断AI输出质量。通过实战流程与案例,助力开发者实现从编码到架构思维的跃迁,成为人机协同的“超级开发者”。
3589 106
|
4月前
|
API 数据库 数据安全/隐私保护
别再只会调大模型了:用 Python 搭一套自己的知识库问答系统(RAG 实战指南)
别再只会调大模型了:用 Python 搭一套自己的知识库问答系统(RAG 实战指南)
1094 3

热门文章

最新文章