文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

一文读懂 eBPF 对 Kubernetes 可观测的重要性

2024-12-03 03:29

关注

在 Linux 内核中工作是实现安全性、网络和可观察性特性的理想选择。然而,这并不是没有挑战。无论是修改内核源代码,还是添加模块,开发人员传统上发现他们要与难以调试的复杂基础设施和抽象层作斗争。Extended BPF[2](eBPF)解决了这两个问题。

Extended Berkeley Packet Filter(eBPF)是一种内核技术(从 Linux 4.x 开始),它允许程序在无需更改内核源代码,或添加额外模块的情况下运行。你可以将其视为 Linux 内核中的轻量级沙箱虚拟机(VM),程序员可以在其中运行 BPF 字节码,从而利用特定的内核资源。

使用 eBPF 消除了更改内核源代码的需要,并简化了软件利用现有层的能力。因此,它是一项强大的技术,有可能从根本上改变网络、可观察性和安全性等服务的交付方式。

下面详细介绍一下它是什么,它是如何工作的,以及何时考虑实施它。

eBPF 是如何工作

eBPF 程序是事件驱动的,并附加到代码路径上。代码路径包含特定的触发器(称为钩子),这些触发器在传递附加的 eBPF 程序时执行它们。钩子的一些例子包括网络事件、系统调用、函数项和内核追踪点。

当触发时,代码首先被编译为 BPF 字节码。然后,字节码在运行之前会被验证,以确保它不会创建循环。这个步骤可以防止程序无意或故意损害 Linux 内核。

在钩子上触发程序之后,它就会进行助手调用。这些助手调用是为 eBPF 配备许多用于访问内存的特性的函数。助手调用需要由内核预先定义,但是存在的函数列表在不断增长[3]。

eBPF 最初被用作过滤网络数据包时,提高可观察性和安全性的一种方法。然而,随着时间的推移,它成为了一种使用户提供的代码实现更安全、更方便和性能更好的方法。

eBPF 的优点

eBPF 通常用于追踪[4]用户空间进程,它的优点在这里很明显。这是一个安全和有用的方法来确保:

eBPF 的最佳实践

由于 eBPF 是一项如此新的技术,许多东西仍未被探索。随着技术的发展,围绕 eBPF 的最佳实践仍在不断发展。虽然没有明确的最佳实践集存在,但你可以做一些事情来确保有效、高效的程序。

如果你正在为你的生态系统使用 eBPF,我们建议你:

eBPF 的缺点

尽管 eBPF 功能强大,但它并不是适合每个项目或生态系统的灵丹妙药。eBPF 确实有一些明显的缺点,这可能会使它在某些实例中工作起来令人沮丧。一些开发人员可能会发现 eBPF 不适合使用,原因如下:

eBPF 的常用情况

eBPF 在云原生应用[7]中正迅速获得关注。因此,eBPF 最常用于两种情况:

你可能还会发现 eBPF 被部署用于其他安全措施,包括:

New Relic 和 eBPF

Pixie[10](早前被 New Relic 收购了)是一个开源的 kubernetes-native-in-cluster 可观察平台,它提供了 Kubernetes 工作负载的即时可见性,无需手动检测。eBPF 提供了 Pixie 平台背后的大部分魔力。如前所述,eBPF 允许在触发事件时运行受限制的代码。这个事件可以是内核空间(kprobes)或用户空间(uprobes)中的函数调用。Pixie 同时使用 uprobes 和 kprobes 来支持跨服务和应用程序的可观察性。

Pixie 利用 eBPF 自动获取遥测数据,其边缘机制能将这些数据与 Kubernetes 元数据连接起来,在保持数据局部性的同时提供可见性。这种可见性补充了 New Relic 强大的 Kubernetes 可观测性解决方案。从 5 月底开始,你将能够将 Pixie 生成的遥测数据发送到 New Relic One,获得可扩展的留存率、强大的可视化、高级关联和智能警报功能。

eBPF 是有效的可观察性

eBPF 是一种新技术,它改进了 Linux 内核中的可观察性、联网和安全性。它消除了更改内核源代码或添加模块的需要,因此你可以创建更丰富的基础设施来支持你的系统,而不会使其过于复杂。

总结

我们了解了 eBPF 是什么,它是如何工作的,以及为什么它在分布式环境中如此有用。通过从内核层进行监控,许多与云中的可观测性相关的挑战都得到了解决。你可以在数据中享受更深入的可见性、更多的上下文和更准确的信息。 

 

来源:奇妙的Linux世界内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯