当前位置:   article > 正文

基于eBPF的云原生可观测性开源项目Kindling之eBPF基础设施库技术选型_kindling 可观测性

kindling 可观测性

eBPF技术正以令人难以置信的速度发展,作为一项新兴技术,它具备改变容器网络、安全、可观测性生态的潜力。eBPF作为更加现代化的内核技术,相较于内核模块,它的编写难度已经有了较大的降低,但是不可否认对于普通开发者还是有一定门槛。因此,很多云原生软件会在eBPF系统调用(函数)和libbpf之上封装一层更加简单易用的api,比如falco的libs、bcc的libbcc、cilium的cilium-ebpf。笔者将这些依赖库称之为eBPF的基础设施。Kindling专注于云可观测性领域,致力于排查各种复杂故障,包括但不限于网络、文件、内存、on-off cpu堆栈,解决上述问题是Kindling的第一优先级目标,本着不重复造轮子的原则,Kindling无意于再创造一个eBPF的基础设施。

丰富的eBPF基础设施库

当下有很多库可以供开发者选择,比如libbcc、dropbox的goebpf、cilium的ebpf库、calico的底层库、falco的lib库。这些库主要协助完成以下功能:

  • 将eBPF程序加载到内核中并且重定位

  • 将map载入初始化,提供fd供用户态和内核态交互

  • 更友好的开发使用体验

基于此,我们分别选择了2个基于c和go的基础设施库来对比:

Libbcc

Gobpf

Falco-libs

Cilium-ebpf

开发语言

c或cgo

go

c

c通过bpf2go转换成go

是否支持CO-RE

支持

支持

不支持(正在支持)

支持

api完善度

较好

较好

较好

很好

初始化流程完善程度

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
  

闽ICP备14008679号