对比测试
本测试模拟真实场景,对不同的 enforcer 进行对比测试。我们使用 Phoronix Test Suite (PTS),针对一些常见负载(Redis、Apache 等)进行了一系列自动化性能测试。
测试环境
- 集群版本 v1.26.10-vke.18
- 节点数 3
- 节点主机默认启用 AppArmor & BPF LSM
- 节点规格 ecs.g3i.xlarge (4vCPU 16GiB)
测试场景
在本轮测试中,我们对 AppArmor、BPF 这两种 enforcer 进行横向对比测试,每个 enforcer 都选取三种典型场景,包括 AlwaysAllow、RuntimeDefault、EnhanceProtect,每个场景的 policy 如下所示:
-
Init 基准测试
不应用任何策略。
-
AlwaysAllow
使用 AlwaysAllow Mode 进行测试,不开启任何 rule。
-
RuntimeDefault
使用 RuntimeDefault Mode 进行测试,不开启任何 rule。
-
EnhanceProtect
使用 EnhanceProtect Mode 进行测试,开启如下 rules。
- disable-cap-privileged
- disallow-umount
- disallow-access-procfs-root
- mitigate-disk-device-number-leak
- mitigate-sa-leak
- mitigate-overlayfs-leak
- Mitigate-host-ip-leak
- Disallow-metadata-service
- cgroups-lxcfs-escape-mitigation
- runc-override-mitigation
此外,我们也对 Seccomp enforcer 进行了测试,开启了 4 条 Seccomp 内置规则(该测试仅供参考)。 所有测试用到的 policy 文件均可在 test/perf/policy 目录下找到。