1. Kubernetes集群网络与存储排查全景图
在云原生架构中,网络和存储就像人体的血管和消化系统——任何一处微小阻塞都可能导致整个集群"器官衰竭"。经过三年处理200+生产环境故障案例,我总结出这张排查全景图:
网络层黄金检查链:
- 物理层:网卡状态(ethtool)、MTU一致性(ping -s)、ARP表(arp -an)
- 隧道层:VXLAN/IPIP封装(tcpdump -i tunl0)、BGP会话(calicoctl node status)
- 策略层:NetworkPolicy生效(calicoctl get networkpolicy)、iptables规则链(iptables-save)
- 服务层:Endpoint状态(kubectl get endpoints)、kube-proxy日志(journalctl -u kube-proxy)
存储层致命四联症:
- 供给异常:PV/PVC绑定状态(kubectl get pv -o wide)、StorageClass配置(kubectl get sc -o yaml)
- 挂载失败:节点设备列表(lsblk -f)、mount报错(dmesg | grep mount)
- 性能劣化:IOPS监控(ceph osd perf)、网络延迟(iperf3)
- 数据损坏:CRC校验(ceph pg repair)、副本一致性(rados list-inconsistent-pg)
关键经验:80%的"网络不通"问题最终定位在MTU不匹配,而90%的"存储不可用"源于StorageClass配置错误。先查这两项能节省大量时间。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Calico/Flannel网络深度排障手册
2.1 现象到定位的六步诊断法
案例场景:某金融集群从Flannel迁移到Calico后,跨节点Pod通信出现20%丢包。
排查过程:
-
现象确认:
bash复制# 在Pod内测试跨节点通信质量 kubectl exec -it test-pod -- ping -c 100 <target-pod-ip> | grep loss -
链路追踪:
bash复制# 查看Calico路由路径 calicoctl get workloadEndpoint -o wide # 对比实际路由路径 kubectl exec -it test-pod -- traceroute <target-pod-ip> -
封装验证:
bash复制# 抓取VXLAN封装包(Flannel) tcpdump -i flannel.1 -nn -vv # 抓取IPIP封装包(Calico) tcpdump -i tunl0 -nn -vv -
BGP状态检查:
bash复制# 查看B
