一、前言
云计算发展到今天,在众多的公有云和私有云环境中,为了满足不同客户的需求,多种虚拟化技术混合部署是很常见的应用场景,物理机、虚拟机、容器同时参与云计算提供IAAS。无论是物理机还是虚拟机环境下,其数据通道的优化技术相对以及比较成熟,如文章《DPDK系列之六:qemu-kvm网络后端的加速技术》提到的DPDK、OVS-DPDK、virtio以及vhost等技术。只有容器在物理机以及虚拟机环境中如何使用这些加速技术还处在在不断开发和演进的过程中,本文就对这些技术进行一些分析。
在2017年DPDK Summit的会议中,《Dataplane Networking journey in Containers》对Intel在不同部署模式下,容器数据通道的加速技术进行了分享,这是这个session的视频。
同时另外一个session也针对Intel提出的容器数据通道加速方案进行了阐述,这里是相关PPT和视频。
转载自https://blog.youkuaiyun.com/cloudvtech
二、容器的部署模型
现有的容器管理框架如Kubernetes可以使用物理机和虚拟机作为容器的部署环境,所以针对容器数据通道的优化也需要基于这两种部署模型进行。
而对于容器来讲,在混合部署环境中,它的通信对象有可能是物理机上的容器、虚拟机上的容器或者虚拟机;通信的目的地有可能是主机内部或者跨主机,所以还需要同时考虑南北向和东西向的数据通道优化。
转载自https://blog.youkuaiyun.com/cloudvtech
三、基于物理机部署的容器数据通道优化
3.1 容器南北向数据通道优化
在基于物理机部署的情况下,可以使用SR-IOV技术将网卡切片隔离,然后使用Intel开发的sriov-cni将切片出来的虚拟网卡通过UIO技术直接暴露到POD的network namespace并绑定到POD里面的DPDK驱动。
该CNI对于DPDK的配置方式如下: