大咖助场|李程远:谈谈eBPF在云原生中的纵与横
李程远
今天想跟你聊的,是一些我自己关于用 eBPF 进行系统黑盒诊断的思考,特别是在云原生平台上的应用。从 2014 年进入到 Linux 内核以来,eBPF 一直是 Linux 内核中最火的领域。作为 eBPF 的三大应用领域之一,在 Linux 内核的追踪 / 调试中,特别是在云平台来定位一些复杂问题时,eBPF 已经处于不可替代的地位了。
在《容器实战高手课》的一篇加餐里,我也简单介绍过 eBPF 这个技术。当时我给了同学们一个例子,通过它看了如何用 eBPF 来定位我们生产环境中的数据包网络延时偶尔增大的原因。最近,我又碰到一个生产环境中的网络问题,仍然还是依靠 eBPF 程序的帮助,定位到了原因。今天,我就先跟你分享下这个问题的具体情况,以及用 eBPF 定位原因的过程。然后,我会从这个例子出发,聊聊 eBPF 程序可以怎样更好地在云原生平台上应用。
一个例子:用 eBPF 解决生产环境中的网络问题
关于遇到的这个问题,先来说一下我看到的现象。
把线上的问题简化之后,我看到 Client 向一个 Server Pod 里的服务上传数据的时候,偶尔连接会发生中断。通过对 Server Pod 所在的宿主机节点上 tcpdump 数据包的抓取,我们会看到,从 Server Pod 向 Client 发送了一个 TCP RST(reset) 数据包之后,上传数据的连接就中断了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了在云原生平台上使用eBPF程序的技术挑战和解决方案。作者首先描述了在生产环境中使用eBPF解决网络问题的实例,并详细介绍了通过eBPF诊断程序定位问题的过程。在纵向深入方面,文章强调了对内核的深入理解对于编写eBPF程序的重要性,举例说明了在编写eBPF代码的过程中需要运用到Linux内核的基本实现原理。此外,文章还提到了在云原生平台上,对内核函数的追踪往往需要了解函数调用所在的namespace,以便确定是哪个容器触发的操作。在横向应用方面,文章探讨了在云平台上建立一个运行eBPF诊断程序的框架,以解决权限和多节点操作的问题。总的来说,本文深入浅出地介绍了eBPF技术在云原生环境中的应用,并提供了实际案例和思考,对于对eBPF技术感兴趣的读者具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《eBPF 核心技术与实战》,新⼈⾸单¥59
《eBPF 核心技术与实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- 莫名一纵一横,直击要点。 李老师是 eBPF 实战派高手,深谙底层技术原理,《容器实战高手课》加餐篇可见一斑。曾受益匪浅,再次表达感谢与钦佩。2022-03-0712
- lyonger老师之前出的专栏学习完了,功力深厚啊。另外关于老师提到的纵,深表认同,一直想掌握,但是不知如何下手。2022-08-31归属地:广东1
- DBA_Roland请问老师:“纵”的学习,有没有好的学习资料或课程?2022-04-191
- JianXu根本枝叶论2022-09-17归属地:上海
收起评论