一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在容器中运行虚机的网络优化实现方法与流程

2022-05-18 12:39:47 来源:中国专利 TAG:


1.本发明属于计算机操作方法和软件设计技术领域,尤其涉及一种在容器中运行虚机的网络优化实现方法及其应用。


背景技术:

2.虚拟机(虚机,virtual machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚机中都能够实现。在计算机中创建虚机时,需要将实体机的部分硬盘和内存容量作为虚机的硬盘和内存容量,每个虚机都有独立的cmos、硬盘和操作系统,可以像使用实体机一样对虚机进行操作。
3.kubernetes是一个可移植、可扩展的开源平台,作为目前主流的容器管理平台,kubernetes用于管理容器化的工作负载和服务,可促进声明式配置和自动化。而且,kubernetes拥有一个庞大且快速增长的生态系统,kubernetes的服务、支持和工具广泛可用。
4.kube-ovn是一款开源企业级云原生kubernetes容器网络编排系统,它通过将openstack领域成熟的网络功能平移到kubernetes中,极大地增强了kubernetes容器网络的安全性、可运维性、管理性等性能。在一些kube-ovn作为云原生kubernetes容器网络编排系统的应用场景下,为了向用户提供能够满足容器工作负载要求的传统虚机工作负载能力,可通过使用自定义资源定义(crd)和其他kubernetes功能,将虚机运行在容器中。
5.在虚机所在kubernetes的pod创建过程中,kube-ovn-controller会关注kubernetes内所有和网络资源变化相关的资源,当pod创建时,kube-ovn-controller将网络对应的变化翻译成北向数据库的资源对象,并为容器配置具体的网络信息,例如:ip、mac等信息,然后再以annotation的方式回写到kubernetes的资源里。kube-ovn-cni在pod所在的物理机上,完成veth pair的创建,其中一端链接到物理机的ovs桥上,另一端在容器的网络空间下。
6.在创建虚机的容器中,会创建一个linux桥和一个tap类型的端口。将容器内的veth pair端口接入到linux桥,再将新创建的tap端口也接入linux桥,然后用tap端口作为启动虚机的网络端口启动虚机,完成虚机的创建(参见图1-2)。
7.然而,在当前的方法中,虚机的网络到节点(openvswitch网桥)的链路过长,虚机的网络流量会先经由linux桥上的tap端口接入linux桥,然后再由veth pair虚拟设备口接入openvswitch网桥。整个链路会通过一个linux桥的转发,还会通过一系列veth pair虚拟设备口,过长的网络链路大大增加了网络的延迟,降低了网络传输效率。因此,如何缩短虚机网络到节点的链路,减少网络延迟,提高网络传输效率是个迫切需要解决的问题。


技术实现要素:

8.为了解决虚机网络到节点的链路过长导致网络延迟的问题,本发明提出了一套解
决方案。
9.通常,在容器中创建虚机时,我们按照以下流程予以实施:
10.开始

kube-ovn-cni创建veth pair

桥接方式创建pod

利用kubevirt在容器中创建linux桥和tap端口

将容器内的veth pair和tap端口接入linux桥

用tap端口作为网络端口启动虚机,完成虚机创建。
11.为了缩短虚机的网络链接到openvswitch网桥的链路,减少虚机网络的延迟,我们对上述流程进行了进一步优化。
12.本发明提供了一种在容器中运行虚机的网络优化实现方法,本方法在kubernetes的场景下,通过主机网络模式创建虚机的容器组pod,然后通过kubevirt在pod的容器中创建主机网络设备并完成网络设置,最终完成虚机创建。
13.进一步地,本发明方法包括下述步骤(参见图3-4):
14.步骤一:采用主机网络模式创建pod;
15.步骤二:通过kubevirt在步骤一创建的pod的容器中创建主机网络设备并完成网络设置;
16.步骤三:利用步骤二创建的网络设备启动虚机,完成虚机创建。
17.进一步地,上述方法步骤一中采用主机网络模式替代桥接模式创建虚机的容器组pod,使新创建的pod能够看到并直接使用主机的网络资源。
18.进一步地,上述方法步骤二中在步骤一创建的pod的容器中,利用kubevirt完成tap端口的创建,将创建的tap端口绑定到主机上的openvswitch网桥上,并将tap端口与ovn的port进行绑定,最后通过该tap端口创建虚机指定的网卡。
19.此外,本发明还涉及上述在容器中运行虚机的网络优化实现方法在容器和虚机整合技术中的应用。
20.综上,本发明在容器中运行虚机的网络优化实现方法具有以下优点:
21.(1)解决了虚机网络到节点的链路过长导致网络延迟的问题,缩短了虚机网络到节点(openvswitch网桥)的链路,减少了网络延迟,提高了网络传输效率,降低了虚机网络性能的损耗。
22.(2)改进了kubevirt创建虚机的流程,通过主机网络模式创建虚机的容器,并在virt-launcher里完成主机网络资源的创建、绑定等工作,简化了处理过程,在整个虚机的生命周期里,排除掉了cni的业务流程,降低了和ovn的耦合性。
23.(3)改善了用户体验,为容器和虚机整合技术的发展提供了助力。
附图说明
24.为了更清楚地说明现有技术和本发明实施例技术方案,下面对现有技术和实施例描述中需要使用的附图作简要介绍。显而易见地,下面描述中的附图仅是本发明中记载的一些实施例,而不是全部实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1为在容器中创建虚机的结构示意图。
26.图2为在容器中创建虚机的流程示意图。
27.图3为本发明改进后的在容器中创建虚机的流程示意图。
28.图4为本发明改进后的在容器中创建虚机的结构示意图。
具体实施方式
29.为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例,本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
30.同时,应理解,本发明的保护范围并不局限于下述特定的具体实施方案;还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。
31.实施例1:一种在容器中运行虚机的网络优化实现方法,本方法在kubernetes的场景下,通过主机网络模式创建虚机的容器组pod,然后通过kubevirt在pod的容器中创建主机网络设备并完成网络设置,最终完成虚机创建。
32.具体而言,本方法包括以下步骤(参见图3-4):
33.步骤一:采用主机网络模式替代桥接模式创建虚机的容器组pod,使新创建的pod能够看到并直接使用主机的网络资源。
34.步骤二:通过kubevirt在步骤一创建的pod的容器中创建主机网络设备并完成网络设置,利用kubevirt完成tap端口的创建,将创建的tap端口绑定到主机上的openvswitch网桥上,并将tap端口与ovn的port进行绑定,最后通过该tap端口创建虚机指定的网卡。
35.步骤三:利用步骤二创建的网络设备启动虚机,完成虚机创建。
36.以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、替换等,均应包含在本发明的权利要求保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献