BumbleBee,一个用于简化 eBPF 程序的创建和分发的优秀项目

独奏.io, 云计算公司、微服务、沙盒和无服务器, 公开开源项目“BumbleBee”. 新项目简化了开发者体验 构建、打包和分发 eBPF 工具,据索罗说。

熊蜂 自动生成用户空间代码 该公司解释说,开发 eBPF 工具的样板。 它还提供了类似 Docker 的体验 打包一个 eBPF 程序。 这允许您连接到其他 OCI 图像工作流程以进行发布和分发。

关于大黄蜂

熊蜂 可以将 eBPF 程序打包为容器镜像 来自可以在任何系统上运行的开放容器倡议 (OCI) 无需重新编译或使用其他组件 在用户空间。

与内核中 eBPF 代码的交互,包括处理来自 eBPF 处理器的数据,由 BumbleBee 处理,它会自动以指标、直方图或日志的形式导出这些数据,例如,可以使用卷曲实用程序。 建议的方法允许开发人员专注于编写 eBPF 代码。 并且不会因为从用户空间、程序集和加载到内核中组织与此代码的交互而分心。

Solo.io 的 CEO, 伊迪特莱文说:

该公司开发了 BumbleBee 来自动生成访问在内核级别运行的 eBPF 技术所需的样板用户空间代码。 BumbleBee 包含一个命令行界面 (CLI),它通过自动公开日志、指标和直方图等地图,自动为 eBPF 程序生成用户空间代码。

要管理 eBPF 程序, 提供了一个 Docker 风格的“bee”实用程序,您可以使用它立即下载 eBPF 驱动程序 从外部存储库感兴趣并在本地系统上运行它。

该工具包允许您为选定主题的 eBPF 驱动程序生成 C 代码框架(当前仅支持拦截对网络堆栈和文件系统的调用的文件和网络驱动程序)。 基于生成的框架,开发者可以快速实现自己感兴趣的功能。

与 BCC(BPF 编译器集合)不同, BumbleBee 不会为每个内核版本完全重建驱动程序代码 Linux(每次运行 eBPF 程序时,BCC 都使用 Clang 进行动态编译)。

为了解决便携性问题, 正在开发中 工具包 CO-RE 和 libbpf,它们允许您编译一次代码 并使用特殊的通用加载器,使加载的程序适应当前内核和 BTF(BPF 类型格式)类型。

BumbleBee 是一个基于 libbpf 的插件,它提供了额外的类型,用于自动解释和显示放置在标准 RingBuffer 和 HashMap eBPF 映射结构中的数据。

要构建最终的 eBPF 程序并将其保存为 OCI 映像,只需运行以下命令:

bee build file_with_code name:version

并运行命令

bee run name:version

默认情况下,从控制器接收到的事件将显示在终端窗口中,但如果需要,您可以通过在绑定到控制器的网络端口上调用 curl 或 wget 实用程序来获取数据。

驱动程序可以通过 OCI 兼容的存储库分发,例如,要从 ghcr.io(GitHub 容器注册表)存储库运行外部驱动程序,您可以运行命令

bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)

要将控制器放入存储库,请提供命令

bee push

并链接版本

bee tag

eBPF 最大的好处就是效率。 随着越来越多的供应商利用他们的能力,安全、网络和存储平台的总处理成本应该会降低。 

现在, eBPF 被云服务提供商等网络规模的公司广泛使用。 Facebook 将其用作其数据中心的主要软件定义负载均衡器,而谷歌则在其托管的 Kubernetes 产品中使用开源 Cilium 网络软件。 

不过,Levine 表示,展望未来,随着越来越多的操作系统支持该功能,eBPF 被更广泛地采用只是时间问题。

最后 如果您想了解更多,您可以查看详细信息 在下面的链接中。


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。