测验:eBPF 与 Cilium 架构
eBPF 验证者拒绝程序的典型原因有哪些?
- 程序大小超过 1MiB
- 用 C 以外的语言编写
- 尝试在没有 root 权限的情况下加载
- 存在不保证终止的循环语句或无效的内存访问。
bpf_redirect_peer在 Cilium 数据路径上保存什么?
- 用于隧道封装的 50 字节标头
- 通过 veth 对时发生的一个软 IRQ 重新调度周期。
- conntrack表查找成本
- TLS 握手成本
在 eBPF 数据路径相对于 iptables 方法的优点中,“规则更新”的正确解释是什么?
- iptables 实际上重写了整个表,但 eBPF 在每个映射条目的基础上增量更新。
- 没有区别,因为两种方法仅反映更改。
- eBPF 比 iptables 慢,因为它在更新时重新编译整个程序。
- iptables 由内核自动索引,因此更新时间是恒定的。
Cilium 的预订身份号码和含义的错误配对是什么?
- 7 = 入口
- 1 = 主机(本地节点本身)
- 2 = world(集群之外的所有内容)
- 6 = 远程节点(其他节点)
“Cilium 让所有流量更快”这一说法不准确,最恰当的理由是什么?
- 这是因为 eBPF 程序不是 JIT 编译的,并且作为解释器运行。
- 这是因为 conntrack 是在用户空间而不是内核中处理的。
- 具有 L7 策略的流量经过用户空间 Envoy,隧道模式增加了约 50 字节的封装开销。
- 这是因为随着策略数量的增加,地图查找会线性变慢。
Cilium Operator 的作用是什么?
- 在每个节点上加载eBPF程序并管理端点
- 集群范围的IPAM和CRD垃圾收集、节点发现
- 维护每个节点的conntrack表
- 收集 Hubble 流量到节点本地环形缓冲区