cilium问题排查

工具

工具 用途 示例命令
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 日志