Skip to content

Cilium eBPF 测验

支持的版本: Cilium 1.17, Linux Kernel 4.19+ 最后更新: February 22, 2026

eBPF 基本概念

  1. eBPF 代表什么?

    • A) 扩展 Berkeley 数据包过滤器
    • B) 增强 Berkeley 进程过滤器
    • C) 扩展二进制处理框架
    • D) 增强后端处理函数
    显示答案

    答案: A) 扩展 Berkeley 数据包过滤器

    说明: eBPF 代表 Extended Berkeley Packet Filter,它是原始 BPF 技术的扩展。

  2. eBPF 程序在哪里执行?

    • A) 用户空间
    • B) 内核空间
    • C) Hypervisor
    • D) Container Runtime
    显示答案

    答案: B) 内核空间

    说明: eBPF 程序在 Linux 内核中安全运行。

  3. 哪种机制可确保 eBPF 程序的安全性?

    • A) 沙箱
    • B) 虚拟机
    • C) 静态验证器
    • D) 容器化
    显示答案

    答案: C) 静态验证器

    说明: eBPF 验证器会在程序加载前检查其安全性,以防止无限循环或内核崩溃。

  4. eBPF 程序可以附加到的内核事件称为什么?

    • A) 触发器
    • B) 钩子
    • C) 事件监听器
    • D) 回调
    显示答案

    答案: B) 钩子

    说明: eBPF 程序会附加到内核中的各种钩子点,并在事件发生时执行。

  5. eBPF 程序与用户空间应用程序之间使用什么来共享数据?

    • A) 共享内存
    • B) 管道
    • C) BPF Maps
    • D) Sockets
    显示答案

    答案: C) BPF Maps

    说明: BPF Maps 是用于在 eBPF 程序与用户空间应用程序之间共享数据的键值存储。

eBPF 和 Cilium

  1. Cilium 使用 eBPF 的主要原因是什么?

    • A) 无需内核模块即可实现网络功能
    • B) 提供更好的用户界面
    • C) 使用更少内存
    • D) 更简单的安装过程
    显示答案

    答案: A) 无需内核模块即可实现网络功能

    说明: Cilium 使用 eBPF 实现高性能网络、负载均衡、安全策略及其他功能,而无需内核模块。

  2. 以下哪项不是 Cilium 中使用 eBPF 实现的功能?

    • A) 网络策略强制执行
    • B) Service 负载均衡
    • C) 网络数据包加密
    • D) 用户身份验证
    显示答案

    答案: D) 用户身份验证

    说明: Cilium 使用 eBPF 实现网络策略强制执行、Service 负载均衡和网络数据包处理,但用户身份验证通常由其他系统处理。

  3. Cilium 使用哪项 eBPF 功能来替代 kube-proxy?

    • A) XDP (eXpress Data Path)
    • B) TC (Traffic Control) BPF
    • C) Socket BPF
    • D) Tracing BPF
    显示答案

    答案: B) TC (Traffic Control) BPF

    说明: Cilium 主要使用 TC (Traffic Control) BPF 程序来替代 kube-proxy 的 Service 负载均衡功能。

  4. 为什么 Cilium 基于 eBPF 的负载均衡优于 kube-proxy?

    • A) 支持更多 Service 类型
    • B) 更好的用户界面
    • C) 更低延迟和更高吞吐量
    • D) 更简单的配置
    显示答案

    答案: C) 更低延迟和更高吞吐量

    说明: Cilium 基于 eBPF 的负载均衡直接在内核空间处理数据包,提供更低的延迟和更高的吞吐量。

  5. 以下哪项不是 Cilium 中使用 eBPF 收集的指标?

    • A) 网络连接状态
    • B) 数据包丢弃原因
    • C) Service 响应时间
    • D) 用户登录时间
    显示答案

    答案: D) 用户登录时间

    说明: Cilium 使用 eBPF 收集网络相关指标,例如网络连接状态、数据包丢弃原因和 Service 响应时间,但不会收集用户登录时间等应用程序级别的指标。

eBPF 编程

  1. 主要使用哪种语言编写 eBPF 程序?

    • A) Python
    • B) Go
    • C) C
    • D) Rust
    显示答案

    答案: C) C

    说明: eBPF 程序主要使用 C 编写,并使用 LLVM 编译器编译为 eBPF 字节码。

  2. 以下哪项不是开发 eBPF 程序的框架?

    • A) BCC (BPF Compiler Collection)
    • B) libbpf
    • C) bpftrace
    • D) libpcap
    显示答案

    答案: D) libpcap

    说明: libpcap 是一个数据包捕获库,不是 eBPF 程序开发框架。BCC、libbpf 和 bpftrace 都是用于开发 eBPF 程序的框架。

  3. 以下哪项不是 eBPF map 的类型?

    • A) Hash Map
    • B) Array Map
    • C) LRU Map
    • D) Graph Map
    显示答案

    答案: D) Graph Map

    说明: eBPF 支持多种 map 类型,包括 hash map、array map 和 LRU map,但不支持 graph map。

  4. eBPF 程序的最大指令数是多少?

    • A) 1,000
    • B) 4,096
    • C) 10,000
    • D) 无限制
    显示答案

    答案: B) 4,096

    说明: eBPF 程序最多限制为 4,096 条指令。这一限制用于确保安全性。

  5. 使用什么系统调用将 eBPF 程序加载到内核中?

    • A) bpf()
    • B) ebpf()
    • C) sysfs()
    • D) ioctl()
    显示答案

    答案: A) bpf()

    说明: bpf() 系统调用用于将 eBPF 程序加载到内核中,以及创建和访问 eBPF maps。

eBPF 性能和监控

  1. XDP (eXpress Data Path) 提供的主要优势是什么?

    • A) 更好的安全性
    • B) 更易编程
    • C) 更低延迟
    • D) 更高兼容性
    显示答案

    答案: C) 更低延迟

    说明: XDP 在网络驱动程序级别处理数据包,绕过内核网络堆栈以提供极低延迟。

  2. 在 Cilium 中使用什么工具监控 eBPF 程序的性能?

    • A) top
    • B) bpftool
    • C) htop
    • D) iotop
    显示答案

    答案: B) bpftool

    说明: bpftool 是用于检查和管理 eBPF 程序及 maps 的工具,也用于性能监控。

  3. Cilium 基于 eBPF 的网络监控工具是什么?

    • A) Prometheus
    • B) Hubble
    • C) Grafana
    • D) Jaeger
    显示答案

    答案: B) Hubble

    说明: Hubble 是 Cilium 基于 eBPF 的网络监控工具,可以实时观察和分析网络流。

  4. 使用什么工具查找 eBPF 程序中的性能瓶颈?

    • A) strace
    • B) ltrace
    • C) perf
    • D) gdb
    显示答案

    答案: C) perf

    说明: perf 是 Linux 性能分析工具,用于查找 eBPF 程序中的性能瓶颈。

  5. 在 Cilium 中使用什么命令调试 eBPF 程序?

    • A) cilium bpf
    • B) cilium debug
    • C) cilium monitor
    • D) cilium trace
    显示答案

    答案: A) `cilium bpf`

    说明: `cilium bpf` 命令用于检查和调试 Cilium 的 eBPF 程序及 maps。