XLB:一种基于eBPF的内核级层7负载均衡器用于微服务
XLB: A High Performance Layer-7 Load Balancer for Microservices using eBPF-based In-kernel Interposition
AI总结:
XLB通过eBPF内核级插桩技术,实现轻量高效的层7负载均衡器,相比Istio和Cilium在吞吐量和延迟上有显著提升。
摘要:
层7负载均衡器是微服务架构中的基本构建块,它们能够实现细粒度的流量分布。与传统的单体应用相比,微服务对负载均衡器提出了更高的性能要求和更严格的隔离需求。这主要是由于实例数量增加、服务链更长以及需要与同一主机上的服务共存。传统的sidecar式负载均衡器难以满足这些需求,往往导致显著的性能下降。在本工作中,我们提出了XLB,一种新的架构,将层7负载均衡器重新设计为在套接字层上运行的内核级插桩。我们利用eBPF在内核中实现核心负载均衡逻辑,并通过新颖的套接字层重定向和嵌套eBPF映射设计来解决连接管理和状态维护的挑战。XLB消除了调度、通信和数据移动的额外开销,从而实现更轻量、可扩展和高效的层7负载均衡器架构。与广泛使用的微服务负载均衡器(Istio和Cilium)相比,对于超过50个微服务实例,XLB的吞吐量高达1.5倍,端到端延迟低至60%。
英文摘要:
L7 load balancers are a fundamental building block in microservices as they enable fine-grained traffic distribution. Compared to monolithic applications, microservices demand higher performance and stricter isolation from load balancers. This is due to the increased number of instances, longer service chains, and the necessity for co-location with services on the same host. Traditional sidecar-based load balancers are ill-equipped to meet these demands, often resulting in significant performance degradation. In this work, we present XLB, a novel architecture that reshapes L7 load balancers as in-kernel interposition operating on the socket layer. We leverage eBPF to implement the core load balancing logic in the kernel, and address the connection management and state maintenance challenges through novel socket layer redirection and nested eBPF maps designs. XLB eliminates the extra overhead of scheduling, communication, and data movement, resulting in a more lightweight, scalable, and efficient L7 load balancer architecture. Compared to the widely used microservices load balancers (Istio and Cilium), over 50 microservice instances, XLB achieves up to 1.5x higher throughput and 60% lower end-to-end latency.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。