尚佳友,王晓锋,刘渊
(江南大学人工智能与计算机学院,无锡214122)
随着硬件性能的不断提升,资源过剩成为当前面临的一个主要问题,云计算技术应运而生[1]。虚拟化技术和云平台技术作为云计算的两大核心技术也成为近年来的热门技术。
容器技术作为新一代的轻量级虚拟化技术,以其资源利用率高、性能开销小、运维成本低等优势,给传统的全虚拟化技术带来颠覆性的挑战[2]。但容器技术并不具备跨物理主机的管理能力,企业对容器集群的编排、监控、发布等功能需求日益提升,容器管理系统应运而生。其中,Kubernetes以其优秀的架构设计和完善的生态系统,从众多容器编排引擎中脱颖而出,越来越多的企业开始使用Kubernetes构建容器云平台。Kubernetes实现了容器集群资源的集群化管理,为用户隐藏了底层容器调度、运行等技术的实现细节,实现了容器的自动化管理[3]。
Kubernetes强大之处在于其实现的分布式容器管理系统。Kubernetes并不是直接对容器进行操作,而是通过管理Pod实现对容器的管理。其中,Pod是Kuber⁃netes中最小的资源单位和基础运行单位[4],由一个或多个共享存储和网络的容器组成。分布式系统内部的网络通信是不可避免的问题,但是Kubernetes并没有实现Pod之间的通信,只是提供了CNI容器网络接口[5]。CNI将网络方案插件化,通过连接容器管理系统与网络插件,使两者之间进行通信,从而实现Pod间的网络通信[6]。基于CNI出现了一些第三方网络方案如Flannel、Kuryr,能够为Kubernetes提供网络通信服务。随着Kubernetes的不断发展,用户对Kubernetes网络环境的网络性能、多样化网络配置等需求不断增加,现有的第三方网络方案存在网络资源管理能力薄弱、网络配置方式有限、网络性能不足等问题[7]。……