基于 Kubernetes 的云原生 eBPF 程序编排框架
随着云原生的兴起,容器技术已经成为了现代应用程序开发、部署和管理的标准,而 eBPF 技术则被广泛地应用于网络、安全和性能监控等领域。然而,目前在云端和边缘端使用 eBPF 还存在一些痛点,比如缺少类似于容器一样的调度和分发机制,不便于用户管理和部署。
本课题希望参赛团队基于 Kubernetes 和 eBPF 技术,设计并实现一款支持类容器化的 eBPF 程序调度和分发的框架。通过在云端和边缘端提供类似于容器一样的使用体验,让用户可以更加便捷地开发、部署和管理 eBPF 程序,同时提高系统的性能和安全性。参赛者需在此框架之上构建一个示例应用系统,专注于可观测性、网络或安全等方面。此外,探索将 eBPF 与 WebAssembly (WASM) 结合,以改进 eBPF 程序的开发与部署体验。
2023全国大学生操作系统比赛的“OS功能设计”赛道
- 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生(2023春季学期或之后本科毕业的大一~大四的学生)或研究生
- 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
- 请遵循“2023全国大学生操作系统比赛”的章程和技术方案要求
赖晓铮(华南理工计算机学院)
- Email: laixz@scut.edu.cn
郑昱笙(浙江大学/DatenLord)
- Email: yusheng.zheng@datenlord.com
- 基础特性的难度:中等
- 高级特性的难度:较高
- 设计并实现一个基于 Kubernetes 的 eBPF 开发与部署框架,支持高效的 eBPF 程序管理和部署,包括程序的安装、动态加载、升级和回滚,提供类容器化的使用体验;
- 在此框架之上,构建一个专注于可观测性、网络、或者安全等方面的示例应用系统
- 支持在用户态或内核态运行eBPF程序
- 探索将 eBPF 与 WebAssembly(Wasm)结合的可能性,以改进eBPF程序的开发与部署体验。例如使用 wasm-bpf (https://github.com/eunomia-bpf/wasm-bpf)框架和 WASM 轻量级容器辅助 eBPF 程序开发,并借助 WASM 的沙箱和轻量级特性,在边缘端部署,或作为其他应用的插件动态加载。
- 完成基于 Kubernetes 的 eBPF 开发与部署框架的设计与实现,包括以下功能:
- eBPF 程序的安装、动态加载、升级和回滚
- 提供类似容器化的使用体验
- 支持在用户态或内核态运行 eBPF 程序
- 支持eBPF程序的监控与管理
- 在此框架之上,构建一个专注于可观测性、网络或安全等方面的示例应用系统,具体要求如下:
- 选择一个具体的应用场景,如网络监控、流量控制、安全防护等
- 为选定的应用场景开发 eBPF 程序
- 利用所构建的框架对开发的 eBPF 程序进行部署和管理
- 对示例应用系统的性能和可用性进行评估
- eBPF 与 WebAssembly 结合
- 探索将 eBPF 与WebAssembly(Wasm)结合的可能性,例如使用 wasm-bpf 框架和 WASM 轻量级容器辅助 eBPF 程序开发;
- 在边缘端部署 eBPF 程序,或作为其他应用的插件动态加载,利用 WASM 的沙箱和轻量级特性提高部署效率;
- 实现一个兼容 WASM 的 eBPF 程序开发和运行时环境,以便开发者可以使用熟悉的 WASM 工具链进行eBPF程序开发。