腾讯高级工程师,11 年操作系统和网络研发经验,从事过 nucleus, Linux 文件系统,虚拟内存,网络协议栈,调试系统相关的工作。参与产品有 VMware Horizon 虚拟桌面和 NSX 虚拟网络,京东云 DPDK 网络负载均衡器。目前从事腾讯容器云 Kubernetes 网络性能优化,拥有多项网络相关的中美两国专利 。
腾讯高级工程师,11 年操作系统和网络研发经验,从事过 nucleus, Linux 文件系统,虚拟内存,网络协议栈,调试系统相关的工作。参与产品有 VMware Horizon 虚拟桌面和 NSX 虚拟网络,京东云 DPDK 网络负载均衡器。目前从事腾讯容器云 Kubernetes 网络性能优化,拥有多项网络相关的中美两国专利 。
Kubernetes Service 使用负载均衡器对外暴露运行于一组 Pod 上的应用程序。负载均衡器的性能构成了海量数据访问的瓶颈点。当前 Service 的实现采用 IPVS 和 iptables 的混合方案,利用后者辅助实现 SNAT。这种组合性能并不理想,原因在于 iptables 完成了很多通用功能,对于 SNAT 而言显得过于复杂,造成性能损耗。 为了解决这个问题,腾讯通过 eBPF 扩展了 IPVS 的功能。新的方案用 eBPF 指令实现 SNAT 功能,并修改 IPVS 内核源码与 eBPF 指令密切配合,实现了 FULL-NAT 的负载均衡器。其优势是绕过 iptables 组件,大大减少了处理每个数据包的时间。 基准测试表明新方案处理 TCP 长连接数据包的吞吐量提高了 168%;处理 TCP 短连接吞吐量提高了 100%。本演讲将介绍 Kubernetes Service 常用的几种负载均衡方案及其优缺点;详述本方案的设计与实现,并讨论其中遇到的一些难题的解决方法和 eBPF 编程的经验。
对 Kubernetes 或者 Linux 网络技术有一定了解,希望搭建高性能后台服务的开发或运维人员。