cilium问题排查
- cilium
- 2025-07-23
- 58热度
- 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 test 2. 节点防火墙(VXLAN 端口 8472) |
Service 无法访问 | 1. cilium service list 2. cilium bpf lb list |
网络策略未生效 | 1. cilium policy trace 2. Endpoint 标签匹配 |
流量被丢弃(DROP) | 1. hubble observe --verdict DROPPED 2. 策略日志 cilium monitor -t policy-verdict |
Cilium Agent 崩溃 | 1. 内核版本兼容性 2. dmesg 中的 OOM 日志 |