云环境下基于Kubernetes集群系统的容器网络研究与优化
发布时间:2021-07-05 10:39
轻量级云基础架构对微服务的重要性不言而喻,很多基于容器的虚拟化服务被相继提出。在网络方面,容器网络接口技术保证了基于虚拟机的云和容器之间的连接异构网络服务。为了提高云系统的网络性能,文章研究了基于CNI技术的网络配置的详细设计,对基于Flannel的Kubernetes集群系统进行优化,提出了一种自适应Overlay Network与Directrouting结合模式的容器网络,并与多种基于CNI的网络拓展件性能进行了对比。针对集群网络无网络策略的缺陷,文章将Canal引入Flannel构架,增加了集群系统的网络策略功能,提高了网络访问安全性。文章搭建了测试集群系统,利用网络性能测试工具Iperf3对常见容器网络进行了性能测试。结果显示,该方案比原Flannel集群系统的容器网络传输速率平均提升25%左右,与其他方案相比,传输速率也有提升。该方案有利于实际环境集群系统的性能提升,实现了网络访问控制,增加了安全性。
【文章来源】:信息网络安全. 2020,20(03)北大核心CSCD
【文章页数】:9 页
【部分图文】:
网络策略工作原理
Kubernetes集群由Matster和Node两类节点构成。Master上运行Etcd、APIServer、Controller Manager和Scheduler组件,是集群的控制中心,主要负责集群的管控和调度。每个Node节点运行Kubelet、Proxy和Docker守护进程,管理其上运行的Pod,实现服务代理功能,如图4所示。API是整个集群模块间通信的核心。通过API将信息存储在Etcd,控制器、调度器读取信息后,实现模块间通信。Etcd是Core OS公司开发并维护的分布式Key-value存储系统,可以为集群提供持久化的配置存储[14]。Flannel作为Kubernetes的网络插件,可以构建跨主机的网络,协助Kubernetes为每个Node上的Pod分配不冲突的地址,建立覆盖网络,实现网络通信。
此外,大批第三方解决方案丰富了Docker在实际生产环境中的应用部署,弥补了Docker集群网络性能不足、功能缺失的问题,通过Kubernetes的CNI接口接入第三方网络插件。文献[9]开发了跨主机通信容器网络插件Calico和Weave。Calico插件配置复杂,完全利用路由规则实现动态组网,路由数量等于容器数量,路由规则多,运行中容易超出节点处理能力,限制了网络扩张。Weave[10,11]插件自定义了数据包封包与解封的过程,传输效率损失较大,配置复杂,组网过程繁琐,自动化程度较低[10]。文献[12]创建了基于Macvlan的虚拟网络,在容器中搭建虚拟网卡组建容器网络,实现了连接多台主机的Docker容器。Kubernetes作为完备的容器化管理部署平台,使用场景和业务组件之间的关系都很复杂[7]。Flannel网络插件可以协助Kubernetes为每一个Node上的Docker容器分配不同的IP地址,并为这些IP地址之间建立一个覆盖网络,通过覆盖网络将数据再封装一层并传输至目标容器,如图2所示。
【参考文献】:
期刊论文
[1]微服务应用平台的网络性能研究与优化[J]. 毕小红,刘渊,陈飞. 计算机工程. 2018(05)
[2]基于Macvlan的Docker容器网络架构研究[J]. 李巍,赵永彬,王鸥,刚毅凝. 机械设计与制造. 2017(05)
硕士论文
[1]微服务环境下docker容器调度策略的研究与实现[D]. 郭杨虎.北京邮电大学 2018
本文编号:3265918
【文章来源】:信息网络安全. 2020,20(03)北大核心CSCD
【文章页数】:9 页
【部分图文】:
网络策略工作原理
Kubernetes集群由Matster和Node两类节点构成。Master上运行Etcd、APIServer、Controller Manager和Scheduler组件,是集群的控制中心,主要负责集群的管控和调度。每个Node节点运行Kubelet、Proxy和Docker守护进程,管理其上运行的Pod,实现服务代理功能,如图4所示。API是整个集群模块间通信的核心。通过API将信息存储在Etcd,控制器、调度器读取信息后,实现模块间通信。Etcd是Core OS公司开发并维护的分布式Key-value存储系统,可以为集群提供持久化的配置存储[14]。Flannel作为Kubernetes的网络插件,可以构建跨主机的网络,协助Kubernetes为每个Node上的Pod分配不冲突的地址,建立覆盖网络,实现网络通信。
此外,大批第三方解决方案丰富了Docker在实际生产环境中的应用部署,弥补了Docker集群网络性能不足、功能缺失的问题,通过Kubernetes的CNI接口接入第三方网络插件。文献[9]开发了跨主机通信容器网络插件Calico和Weave。Calico插件配置复杂,完全利用路由规则实现动态组网,路由数量等于容器数量,路由规则多,运行中容易超出节点处理能力,限制了网络扩张。Weave[10,11]插件自定义了数据包封包与解封的过程,传输效率损失较大,配置复杂,组网过程繁琐,自动化程度较低[10]。文献[12]创建了基于Macvlan的虚拟网络,在容器中搭建虚拟网卡组建容器网络,实现了连接多台主机的Docker容器。Kubernetes作为完备的容器化管理部署平台,使用场景和业务组件之间的关系都很复杂[7]。Flannel网络插件可以协助Kubernetes为每一个Node上的Docker容器分配不同的IP地址,并为这些IP地址之间建立一个覆盖网络,通过覆盖网络将数据再封装一层并传输至目标容器,如图2所示。
【参考文献】:
期刊论文
[1]微服务应用平台的网络性能研究与优化[J]. 毕小红,刘渊,陈飞. 计算机工程. 2018(05)
[2]基于Macvlan的Docker容器网络架构研究[J]. 李巍,赵永彬,王鸥,刚毅凝. 机械设计与制造. 2017(05)
硕士论文
[1]微服务环境下docker容器调度策略的研究与实现[D]. 郭杨虎.北京邮电大学 2018
本文编号:3265918
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/3265918.html