前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Calico VPP:通过用户空间数据包处理增强高性能 Kubernetes 网络

Calico VPP:通过用户空间数据包处理增强高性能 Kubernetes 网络

作者头像
dpdk-vpp源码解读
发布2024-04-22 10:39:13
1440
发布2024-04-22 10:39:13
举报
文章被收录于专栏:DPDK VPP源码分析DPDK VPP源码分析

Calico是一款广受欢迎的开源网络和网络安全解决方案,专为容器、虚拟机以及宿主机之间的网络连接设计,适用于Kubernetes、OpenShift、Docker EE等多种云原生平台。Calico的核心优势在于其基于边界网关协议(BGP)的纯三层网络架构,能够提供精细的网络策略控制、IP地址管理以及高效的网络通信。

Calico VPP 是Calico项目中的一个重要创新,它将Vector Packet Processor (VPP) 引入到Calico的可插拔数据平面选项中,为Kubernetes集群提供了一种高性能、灵活且具备深度可观测性的网络解决方案。通过将网络数据包的处理移至用户空间,绕过了内核网络堆栈,降低了上下文切换开销,显著提升了数据包处理速度,特别适合对网络延迟敏感或网络流量密集的工作负载,彻底改变了 Kubernetes 网络。凭借服务负载平衡、封装、策略执行和加密等功能,Calico VPP为 Kubernetes 网络带来了VPP的性能、灵活性和可观察性。在 3.27 版本中,Calico VPP 现已全面可用,使用户能够在 Kubernetes 上解锁新的工作负载类别。

主要亮点有以下几个方面:

共享内存接口--memif,VPP数据平面集成不仅支持常规Linux网络设备(如Veth或TunTap),还引入了对共享内存接口memif的支持。这是一种面向数据包的高性能接口类型,对于通常处理大量数据包的容器化网络功能(CNF)而言尤为实用。目前,已提供了C/C++和Golang的绑定,并且在DPDK中也得到了支持。

先进的负载均衡算法:VPP数据平面是一款基于用户空间、插件化的高性能包处理应用程序框架。该框架被用于引入对Maglev等先进负载均衡算法的支持,使网络功能得以享有其高可用性保障。此外,它还为那些经典流哈希无法满足需求的协议提供了高级哈希参数化功能。

用户态的主机堆栈:除了共享内存接口外,VPP数据平面还提供了一个支持TCP、UDP、TLS和QUIC的用户空间主机堆栈,该堆栈可从Pod中加以利用。这使得能够设计出利用高性能L4实现的容器化网络功能。

每个核最高可支持 10Gbps 节点到节点加密:由于VPP配备了高度优化的加密库,通过IPsec或WireGuard隧道实现节点间流量加密的成本较低,因此在大多数部署场景中,这一过程几乎无缝。

最后,此数据平面选项为多个Kubernetes Pod网络提供了支持。这是一个高级配置选项,允许Pod请求连接到独立隔离Pod网络的多个接口。这使得能够设计充当Pod网络(如WAN与LAN接口)之间网关的容器化网络功能,同时利用Kubernetes构造(如Services)、Calico构造(如BGP广告与策略),以及VPP特性(如内存接口)。

总结来说,Calico VPP通过整合VPP的强大能力与Calico的网络管理框架,为Kubernetes用户带来了显著的性能提升、增强的功能集以及卓越的网络可见性与可控性,是构建和优化大规模、高性能Kubernetes网络环境的理想选择。

参考文章:

1、Calico VPP github仓库地址:https://github.com/projectcalico/vpp-dataplane/ 2、Calico VPP主机协议栈文档: https://docs.tigera.io/calico/latest/reference/vpp/host-network 3 https://www.tigera.io/blog/deep-dive/calico-vpp-empowering-high-performance-kubernetes-networking-with-userspace-packet-processing/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DPDK VPP源码分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先进的负载均衡算法:VPP数据平面是一款基于用户空间、插件化的高性能包处理应用程序框架。该框架被用于引入对Maglev等先进负载均衡算法的支持,使网络功能得以享有其高可用性保障。此外,它还为那些经典流哈希无法满足需求的协议提供了高级哈希参数化功能。
  • 用户态的主机堆栈:除了共享内存接口外,VPP数据平面还提供了一个支持TCP、UDP、TLS和QUIC的用户空间主机堆栈,该堆栈可从Pod中加以利用。这使得能够设计出利用高性能L4实现的容器化网络功能。
  • 每个核最高可支持 10Gbps 节点到节点加密:由于VPP配备了高度优化的加密库,通过IPsec或WireGuard隧道实现节点间流量加密的成本较低,因此在大多数部署场景中,这一过程几乎无缝。
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档