cilium问题排查
- cilium
- 2025-07-23
- 0评论
工具
| 工具 | 用途 | 示例命令 |
|---|---|---|
| Cilium CLI | 端点/策略/服务诊断 | cilium service list |
| Hubble CLI | 实时流量追踪 | hubble observe --verdict DROPPED |
| eBPF Compiler (bpftool) | 内核级 eBPF 程序检查 | bpftool prog show --bpffs |
| Grafana + Prometheus | 性能指标监控 | 查看 cilium_forward_count_total |
相关问题
1. Cilium 组件健康
# 检查 Agent 状态 kubectl -n kube-system exec ds/cilium -- cilium status
-
关键输出:
-
Controller Status: 所有控制器应无失败(FAILED为 0) -
KVStore: etcd 连接状态(Connected) -
KubeProxyReplacement: 若替换 kube-proxy 需为Strict
-
# Pod级检查
cilium connectivity test
# 节点级检查
cilium status --all-addresses
2. eBPF程序诊断
# 查看加载的eBPF程序
cilium bpf prog list
# 追踪网络策略执行
cilium monitor -t policy-verdict
3. 数据包捕获
# 捕获特定Pod流量
cilium debug capture -p pod-name -f /tmp/capture.pcap
4.路由表与 ARP 检查
# 查看节点路由规则(Native Routing 模式)
kubectl exec -it cilium-pod -- ip route show table all
# 检查 ARP 缓存
kubectl exec -it cilium-pod -- arp -a
5. eBPF 程序状态
# 列出已加载的 eBPF 程序
cilium bpf prog list
# 查看 Service 映射表(替代 kube-proxy)
cilium bpf lb list
6. eBPF Map 数据检查
# 查看网络策略执行点(Policy Map)
cilium bpf policy get <endpoint-id>
# 检查丢包统计(Drop 原因)
cilium metrics list | grep drop
7.Endpoint 状态异常
# 查看 Endpoint 健康状态
cilium endpoint list
-
状态解释:
-
ready:正常 -
not-ready:eBPF 程序加载失败 -
disconnected:Agent 通信中断
-
8. Cilium 日志分析
# 查看 Agent 日志(关键错误标识)
kubectl logs -n kube-system -l k8s-app=cilium --tail=1000 | grep -E "level=error|CRITICAL"
# 常见错误关键词: # - "Policy regeneration failed" → 策略编译错误
# - "Could not resolve identity" → 安全标签失效
典型问题
| Pod 无法跨节点通信 | 1. cilium connectivity test2. 节点防火墙(VXLAN 端口 8472) |
| Service 无法访问 | 1. cilium service list2. cilium bpf lb list |
| 网络策略未生效 | 1. cilium policy trace2. Endpoint 标签匹配 |
| 流量被丢弃(DROP) | 1. hubble observe --verdict DROPPED2. 策略日志 cilium monitor -t policy-verdict |
| Cilium Agent 崩溃 | 1. 内核版本兼容性 2. dmesg 中的 OOM 日志 |
