我读过cilium的文档,基准测试显示cilium-proxy使用ebpf比kube-proxy ipvs模式更快,我不是ebpf内部工作的Maven,所以如果有人能详细解释一下为什么cilium-proxy比kube-proxy ipvs模式更快,那就太好了。
biswetbf1#
eBPF允许Cilium根据所需路径在较低点或较高点钩入内核。对于北/南流量,Cilium可以利用XDP,XDP位于驱动程序的正上方,无需分配套接字缓冲区即可转发数据包,并且总体代码路径更短。在东/西通信中,尤其是当一个pod需要连接到同一节点上的另一个pod时,Cillium可以直接将数据包从一个套接字转发到另一个套接字,而不必通过整个网络堆栈和查找表。同样,缩短代码路径,从而降低CPU负载。以下是一个参考。这一切都可以归结为采取捷径来缩短代码路径。
1条答案
按热度按时间biswetbf1#
eBPF允许Cilium根据所需路径在较低点或较高点钩入内核。
对于北/南流量,Cilium可以利用XDP,XDP位于驱动程序的正上方,无需分配套接字缓冲区即可转发数据包,并且总体代码路径更短。
在东/西通信中,尤其是当一个pod需要连接到同一节点上的另一个pod时,Cillium可以直接将数据包从一个套接字转发到另一个套接字,而不必通过整个网络堆栈和查找表。同样,缩短代码路径,从而降低CPU负载。以下是一个参考。
这一切都可以归结为采取捷径来缩短代码路径。