关于阿里云:深入浅出-eBPF|你要了解的-7-个核心问题
作者:炎寻 过来一年,ARMS 基于 eBPF 技术打造了 Kubernetes 监控,提供多语言无侵入的利用性能,零碎性能,网络性能观测能力,并公布 Kubernetes 问题排查全景图,验证了 eBPF 技术的有效性。eBPF 技术和生态倒退很好,将来前景宽广,作为该技术的实践者,本文指标是通过答复 7 个外围问题介绍 eBPF 技术自身,为大家解开 eBPF 的面纱。 关注【阿里云云原生】公众号,后盾回复关键词【K8s全景图】获取全景图高清下载地址! eBPF 是什么eBPF 是一个可能在内核运行沙箱程序的技术,提供了一种在内核事件和用户程序事件产生时平安注入代码的机制,使得非内核开发人员也能够对内核进行管制。随着内核的倒退,eBPF 逐渐从最后的数据包过滤扩大到了网络、内核、平安、跟踪等,而且它的性能个性还在疾速倒退中,晚期的 BPF 被称为经典 BPF,简称 cBPF,正是这种性能扩大,使得当初的 BPF 被称为扩大 BPF,简称 eBPF。 eBPF 的利用场景是什么?网络优化eBPF 兼具高性能和高可扩大个性,使得其成为网络计划中网络包解决的优选计划: 高性能JIT 编译器提供近乎内核本地代码的执行效率。 高可扩大在内核的上下文里,能够疾速地减少协定解析和路由策略。 故障诊断eBPF 通过 kprobe,tracepoints 跟踪机制兼具内核和用户的跟踪能力,这种端到端的跟踪能力能够疾速进行故障诊断,与此同时 eBPF 反对以更加高效的形式透出 profiling 的统计数据,而不须要像传统零碎须要将大量的采样数据透出,使得继续地实时 profiling 成为可能。 安全控制eBPF 能够看到所有零碎调用,所有网络数据包和 socket 网络操作,一体化联合过程上下文跟踪,网络操作级别过滤,零碎调用过滤,能够更好地提供安全控制。 性能监控相比于传统的系统监控组件比方 sar,只能提供动态的 counters 和 gauges,eBPF 反对可编程地动静收集和边缘计算聚合自定义的指标和事件,极大地晋升了性能监控的效率和设想空间。 eBPF 为什么会呈现?eBPF 的呈现实质上是为了解决内核迭代速度慢和零碎需要疾速变动的矛盾,在 eBPF 畛域罕用的一个例子是 eBPF 绝对于 Linux Kernel 相似于 Javascript 绝对于 HTML,突出的是可编程性。一般来说可编程性的反对通常会带来一些新的问题,比方内核模块其实也是为了解决这个问题,然而他没有提供很好的边界,导致内核模块会影响内核自身的稳定性,在不同的内核版本须要做适配等。eBPF 采纳以下策略,使得其成为一种平安高效地内核可编程技术: ...