阿里云Kubernetes集群使用IPVlan加速Pod网络

  • 时间:
  • 浏览:1
  • 来源:5分快乐8_5分11选5

然后 IPVlan是比较新的内核版本才支持的虚拟化技术,好多好多 有一定的要求和试用场景:

下行速度 采用ping,netperf做了测试。ping测试了普通模式和洪泛模式,netperf测试了tcp_rr, udp_rr本身模式。结果如下:

其中IPVlan, ENI模式较为接近。策略路由普通ping模式下约有20ns增加,洪泛ping模式7ns增加;udp_rr下降约8%、tcp_rr下降约10%。

随着各种类型的应用的容器化,除了无情况表的微服务应用,如此来越多像数据库、机器学习等对网络性能和延时非常敏感的应用也逐渐跑在了Kubernetes上。对于你這個网络性能和延时很重敏感的应用,阿里云Kubernetes集群的网络方案Terway在然后提供了Pod独占ENI(弹性网卡)的网络模式,让Pod可不都能能够拥有和ECS完整篇 一样的一张弹性网卡,性能相对ECS完整篇 如此 损失。但ECS可不都能能够绑定的弹性网卡数量有限,使用独占ENI(弹性网卡)的模式的机器如此运行个位数的Pod数,应用没土办法部署太密集。 好多好多 Terway在ENI多IP的模式中推出了基于IPVlan的Pod网络,每个ENI可不都能能够供多达10个Pod共享,然后 IPVlan的内核技术能够将损耗降到最低,在实际测试中网络延时可不都能能够媲美独占ENI模式。

下行速度 测试采用netperf测试了tcp_stream和不同包长下的udp_stream, 结果如下:

其中udp stream模式下ENI,IPVlan较为接近约0.02%以下,策略路由约7%左右。吞吐IPVlan比ENI约有25%下降,策略路由相比ENI约有1000%下降。 tcp stream模式下然后 gso, gro的加速,吞吐较为接近。

阿里云系统组技术博客--Kubernetes网络的IPVlan方案 https://kernel.taobao.org/2019/11/ipvlan-for-kubernete-net/ (感谢阿里云系统组贡献了Kubernetes IPVlan的网络模式)

IPVlan是本身Linux内核的网络虚拟化技术,从Linux 3.19版本然后始于支持,通过IPVlan可不都能能够将一4个网络接口创建出多个子虚拟接口。哪些地方地方子虚拟接口可不都能能够设置不同的IP地址,父网卡会根据包中的IP地址决定把包转发到哪个子虚拟网卡。哪些地方地方子虚拟网卡可不都能能够供k8s的每个Pod使用,从而让多个Pod可不都能能够共用一张弹性网卡。而对于Aliyun的ENI(弹性网卡),支持在网卡上额外再分配10-20个辅助VPC IP,可不都能能够动态分配辅助IP用于IPVlan子虚拟网卡配置。