DPU如何加速云原生容器网络?

当今时代下,高性能网络的需求日益增加,在图形渲染被独立成GPU、神经网络计算被独立成NPU后,网络数据的加速也被提上日程,将网络数据处理转移到DPU上,成为了业内共识。

这篇文章,趁着我手里刚好有几张DPU,我们就一起来看一下,DPU如何像GPU、NPU一样,帮助加速云原生容器网络。

阅读更多

基于eBPF的Continuous Profiler如何解析符号表

最近看了两个项目pyroscope^4和parca^5,这两个都是开源的可观测项目。pyroscope实现了基于eBPF的无侵入观测能力,鉴于parca实现得不是非常优雅(至少我用着觉得非常难受),本文就单纯从pyroscope展开分析了。由于当下eBPF实现Stack Trace等功能已经有了非常多的案例,本文就不再提如何使用eBPF做Continuous Profiler^6了,我们单纯来看看最核心的一个内容——符号名称是怎么解析出来的(也就是如何解析符号表的)?

阅读更多

稳定又好用——RouterOS+OpenWRT旁路由家庭网络

用了这么久,发现还是RouterOS好用,因为太高级了!RouterOS的功能非常多,OpenWRT的IPv6会卡死的问题,RouterOS都有配置可以应对。我让RouterOS作为主路由,OpenWRT作为旁路由,一个负责拨号、DHCP、策略路由、IPv6等高级功能,一个负责旁路分流和智能DNS,不影响IOT设备的稳定性同时,还能满足各种家庭网络需要。

原生gRPC与RESTful HTTP API并包——gRPC-Gateway实践

众所周知,Google的gRPC体系可谓是相当好用,在有protoc这样的工具加持下,原本要维护调用侧和服务侧两部分代码,现在写完proto文件直接交给protoc编译一下即可,可谓是减少了不少工作量。但是,如果我就是要兼容HTTP API,那么这又怎么处理呢?

方法就是——gRPC-Gateway^1。抛去兼容HTTP API不说,如果你本身就在使用RESTful HTTP API,那么仍然可以使用gRPC-Gateway来生成代码,从原本维护两侧代码到现在,你可以只需要一些proto文件就可以搞定你的HTTP API,还是相当省心的。

阅读更多

看看Linux Kernel——基于Macvtap互通问题追溯根源

Linux上遇到一个问题——macvtap的虚拟接口无法和parent互通,这个问题让我不禁感到奇怪。以往都是同一个parent上的macvtap间互访,还真没有留意过访问parent是什么样一个情况。libvirt的wiki告诉我它确实是不能互通的,这或多或少激起了我对macvtap与bridge区别的一个好奇,Google未果,只能沿着Linux的内核代码走一遍了。

阅读更多

Kubernetes与KubeSphere上车指南

2022年了,开发需要各种应用时,不用再像以前那样挨个手工安装一整天了,直接上K8S就好啦~

这次,博主我上了一套3节点的集群,其中包含1个Master、2个Worker,前端选择了开源的KubeSphere,网络组件选择了性能好、又能起BGP的Cilium。由于本次部署是作为日常开发环境,操作上少了一些合规的考虑,仅供尝鲜和入门使用,生产环境部署需再细致研究。

阅读更多

使用Linux内核的ftrace跟踪eBPF问题

好久没写文章了,最近忙于各种事情,再加上过年放假学习,计划文章队列排的老长了。在此,新年第一篇文章,就先祝一下大家新年快乐哈~

eBPF香是香,但是竟然还有内核不支持?博主最近遇到了这么个情况,eBPF程序死活无法加载,始终报出Invalid argument的错误,为了解决这个问题,博主我花了好多天时间排查,跟踪了Linux内核的调用链,最后发现,问题竟然是…(实在想不到好的开头了)

阅读更多