CN114510323A - 在容器中运行虚机的网络优化实现方法 - Google Patents

在容器中运行虚机的网络优化实现方法 Download PDF

Info

Publication number
CN114510323A
CN114510323A CN202210182138.2A CN202210182138A CN114510323A CN 114510323 A CN114510323 A CN 114510323A CN 202210182138 A CN202210182138 A CN 202210182138A CN 114510323 A CN114510323 A CN 114510323A
Authority
CN
China
Prior art keywords
virtual machine
network
pod
created
container
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210182138.2A
Other languages
English (en)
Inventor
王世钰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CLP Cloud Digital Intelligence Technology Co Ltd
Original Assignee
CLP Cloud Digital Intelligence Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CLP Cloud Digital Intelligence Technology Co Ltd filed Critical CLP Cloud Digital Intelligence Technology Co Ltd
Priority to CN202210182138.2A priority Critical patent/CN114510323A/zh
Publication of CN114510323A publication Critical patent/CN114510323A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明属于计算机操作方法和软件设计技术领域,涉及一种在容器中运行虚机的网络优化实现方法。本方法在Kubernetes的场景下,通过主机网络模式创建虚机的容器组Pod,然后通过kubevirt在Pod的容器中创建主机网络设备并完成网络设置,最终完成虚机创建。本方法解决了虚机网络到节点的链路过长导致网络延迟的问题,缩短了虚机网络到节点的链路,减少了网络延迟,提高了网络传输效率,降低了虚机网络性能的损耗。另外,本方法改进了kubevirt创建虚机的流程,简化了处理过程,在整个虚机的生命周期里,排除了cni的业务流程,降低了和ovn的耦合性,改善了用户体验,为容器和虚机整合技术的发展提供了助力。

Description

在容器中运行虚机的网络优化实现方法
技术领域
本发明属于计算机操作方法和软件设计技术领域,尤其涉及一种在容器中运行虚机的网络优化实现方法及其应用。
背景技术
虚拟机(虚机,Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚机中都能够实现。在计算机中创建虚机时,需要将实体机的部分硬盘和内存容量作为虚机的硬盘和内存容量,每个虚机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚机进行操作。
Kubernetes是一个可移植、可扩展的开源平台,作为目前主流的容器管理平台,Kubernetes用于管理容器化的工作负载和服务,可促进声明式配置和自动化。而且,Kubernetes拥有一个庞大且快速增长的生态系统,Kubernetes的服务、支持和工具广泛可用。
Kube-OVN是一款开源企业级云原生Kubernetes容器网络编排系统,它通过将OpenStack领域成熟的网络功能平移到Kubernetes中,极大地增强了Kubernetes容器网络的安全性、可运维性、管理性等性能。在一些Kube-OVN作为云原生Kubernetes容器网络编排系统的应用场景下,为了向用户提供能够满足容器工作负载要求的传统虚机工作负载能力,可通过使用自定义资源定义(CRD)和其他Kubernetes功能,将虚机运行在容器中。
在虚机所在Kubernetes的Pod创建过程中,kube-ovn-controller会关注Kubernetes内所有和网络资源变化相关的资源,当Pod创建时,kube-ovn-controller将网络对应的变化翻译成北向数据库的资源对象,并为容器配置具体的网络信息,例如:IP、MAC等信息,然后再以Annotation的方式回写到Kubernetes的资源里。kube-ovn-cni在Pod所在的物理机上,完成veth pair的创建,其中一端链接到物理机的ovs桥上,另一端在容器的网络空间下。
在创建虚机的容器中,会创建一个linux桥和一个tap类型的端口。将容器内的veth pair端口接入到linux桥,再将新创建的tap端口也接入linux桥,然后用tap端口作为启动虚机的网络端口启动虚机,完成虚机的创建(参见图1-2)。
然而,在当前的方法中,虚机的网络到节点(openvswitch网桥)的链路过长,虚机的网络流量会先经由linux桥上的tap端口接入linux桥,然后再由veth pair虚拟设备口接入openvswitch网桥。整个链路会通过一个linux桥的转发,还会通过一系列veth pair虚拟设备口,过长的网络链路大大增加了网络的延迟,降低了网络传输效率。因此,如何缩短虚机网络到节点的链路,减少网络延迟,提高网络传输效率是个迫切需要解决的问题。
发明内容
为了解决虚机网络到节点的链路过长导致网络延迟的问题,本发明提出了一套解决方案。
通常,在容器中创建虚机时,我们按照以下流程予以实施:
开始→kube-ovn-cni创建veth pair→桥接方式创建Pod→利用kubevirt在容器中创建linux桥和tap端口→将容器内的veth pair和tap端口接入linux桥→用tap端口作为网络端口启动虚机,完成虚机创建。
为了缩短虚机的网络链接到openvswitch网桥的链路,减少虚机网络的延迟,我们对上述流程进行了进一步优化。
本发明提供了一种在容器中运行虚机的网络优化实现方法,本方法在Kubernetes的场景下,通过主机网络模式创建虚机的容器组Pod,然后通过kubevirt在Pod的容器中创建主机网络设备并完成网络设置,最终完成虚机创建。
进一步地,本发明方法包括下述步骤(参见图3-4):
步骤一:采用主机网络模式创建Pod;
步骤二:通过kubevirt在步骤一创建的Pod的容器中创建主机网络设备并完成网络设置;
步骤三:利用步骤二创建的网络设备启动虚机,完成虚机创建。
进一步地,上述方法步骤一中采用主机网络模式替代桥接模式创建虚机的容器组Pod,使新创建的Pod能够看到并直接使用主机的网络资源。
进一步地,上述方法步骤二中在步骤一创建的Pod的容器中,利用kubevirt完成tap端口的创建,将创建的tap端口绑定到主机上的openvswitch网桥上,并将tap端口与ovn的port进行绑定,最后通过该tap端口创建虚机指定的网卡。
此外,本发明还涉及上述在容器中运行虚机的网络优化实现方法在容器和虚机整合技术中的应用。
综上,本发明在容器中运行虚机的网络优化实现方法具有以下优点:
(1)解决了虚机网络到节点的链路过长导致网络延迟的问题,缩短了虚机网络到节点(openvswitch网桥)的链路,减少了网络延迟,提高了网络传输效率,降低了虚机网络性能的损耗。
(2)改进了kubevirt创建虚机的流程,通过主机网络模式创建虚机的容器,并在virt-launcher里完成主机网络资源的创建、绑定等工作,简化了处理过程,在整个虚机的生命周期里,排除掉了cni的业务流程,降低了和ovn的耦合性。
(3)改善了用户体验,为容器和虚机整合技术的发展提供了助力。
附图说明
为了更清楚地说明现有技术和本发明实施例技术方案,下面对现有技术和实施例描述中需要使用的附图作简要介绍。显而易见地,下面描述中的附图仅是本发明中记载的一些实施例,而不是全部实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为在容器中创建虚机的结构示意图。
图2为在容器中创建虚机的流程示意图。
图3为本发明改进后的在容器中创建虚机的流程示意图。
图4为本发明改进后的在容器中创建虚机的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例,本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
同时,应理解,本发明的保护范围并不局限于下述特定的具体实施方案;还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。
实施例1:一种在容器中运行虚机的网络优化实现方法,本方法在Kubernetes的场景下,通过主机网络模式创建虚机的容器组Pod,然后通过kubevirt在Pod的容器中创建主机网络设备并完成网络设置,最终完成虚机创建。
具体而言,本方法包括以下步骤(参见图3-4):
步骤一:采用主机网络模式替代桥接模式创建虚机的容器组Pod,使新创建的Pod能够看到并直接使用主机的网络资源。
步骤二:通过kubevirt在步骤一创建的Pod的容器中创建主机网络设备并完成网络设置,利用kubevirt完成tap端口的创建,将创建的tap端口绑定到主机上的openvswitch网桥上,并将tap端口与ovn的port进行绑定,最后通过该tap端口创建虚机指定的网卡。
步骤三:利用步骤二创建的网络设备启动虚机,完成虚机创建。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、替换等,均应包含在本发明的权利要求保护范围之内。

Claims (5)

1.一种在容器中运行虚机的网络优化实现方法,其特征在于,本方法在Kubernetes的场景下,通过主机网络模式创建虚机的容器组Pod,然后通过kubevirt在Pod的容器中创建主机网络设备并完成网络设置,最终完成虚机创建。
2.根据权利要求1所述的在容器中运行虚机的网络优化实现方法,其特征在于,所述方法包括下述步骤:
步骤一:采用主机网络模式创建Pod;
步骤二:通过kubevirt在步骤一创建的Pod的容器中创建主机网络设备并完成网络设置;
步骤三:利用步骤二创建的网络设备启动虚机,完成虚机创建。
3.根据权利要求2所述的在容器中运行虚机的网络优化实现方法,其特征在于,步骤一中采用主机网络模式替代桥接模式创建虚机的容器组Pod,使新创建的Pod能够看到并直接使用主机的网络资源。
4.根据权利要求2所述的在容器中运行虚机的网络优化实现方法,其特征在于,步骤二中在步骤一创建的Pod的容器中,利用kubevirt完成tap端口的创建,将创建的tap端口绑定到主机上的openvswitch网桥上,并将tap端口与ovn的port进行绑定,最后通过该tap端口创建虚机指定的网卡。
5.根据权利要求1-4任一项所述的在容器中运行虚机的网络优化实现方法在容器和虚机整合技术中的应用。
CN202210182138.2A 2022-02-25 2022-02-25 在容器中运行虚机的网络优化实现方法 Pending CN114510323A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210182138.2A CN114510323A (zh) 2022-02-25 2022-02-25 在容器中运行虚机的网络优化实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210182138.2A CN114510323A (zh) 2022-02-25 2022-02-25 在容器中运行虚机的网络优化实现方法

Publications (1)

Publication Number Publication Date
CN114510323A true CN114510323A (zh) 2022-05-17

Family

ID=81553094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210182138.2A Pending CN114510323A (zh) 2022-02-25 2022-02-25 在容器中运行虚机的网络优化实现方法

Country Status (1)

Country Link
CN (1) CN114510323A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116800605A (zh) * 2023-08-25 2023-09-22 苏州思萃工业互联网技术研究所有限公司 在容器中运行虚拟机的网络实现方法、系统、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116800605A (zh) * 2023-08-25 2023-09-22 苏州思萃工业互联网技术研究所有限公司 在容器中运行虚拟机的网络实现方法、系统、设备及介质
CN116800605B (zh) * 2023-08-25 2023-12-22 苏州思萃工业互联网技术研究所有限公司 在容器中运行虚拟机的网络实现方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
RU2595540C2 (ru) Базовые контроллеры для преобразования универсальных потоков
CN104967585B (zh) 一种远程调试移动终端的方法和装置
EP3373518B1 (en) Service configuration method and device for network service
CN105630488A (zh) 一种基于docker容器技术的持续集成实现方法
CN109088820B (zh) 一种跨设备链路聚合方法、装置、计算装置和存储介质
CN105187512A (zh) 一种虚拟机集群负载均衡方法及系统
WO2021104156A1 (zh) 一种管理网络服务的方法、设备及系统
CN114363170A (zh) 容器服务网络配置方法及相关产品
US20200351155A1 (en) Base station configuration method and apparatus
US11765244B1 (en) Latency-based service discovery and routing for multi-location service-oriented applications
CN107911251A (zh) 一种网络设备配置方法、装置和介质
CN112235133A (zh) 通用云管平台的设计方法和通用云管平台
CN116800616B (zh) 虚拟化网络设备的管理方法及相关装置
CN111367804B (zh) 基于云计算及网络编程实现前端协作调试的方法
CN102662745B (zh) 一种虚拟机管理系统与方法
CN114510323A (zh) 在容器中运行虚机的网络优化实现方法
CN114816665A (zh) 混合编排系统及超融合架构下虚拟机容器资源混合编排方法
CN114237853A (zh) 应用于异构系统的任务执行方法、装置、设备、介质和程序产品
CN114579250B (zh) 一种构建虚拟集群的方法、装置及存储介质
JP2024501005A (ja) コンテナクラスタのための管理方法および装置
CN114071488A (zh) 策略配置方法、装置、设备及存储介质
CN113342456A (zh) 一种连接方法、装置、设备和存储介质
US11558207B2 (en) Method and apparatus for starting up blockchain system, and non-transitory computer-readable storage medium
CN114363164B (zh) 云网络服务编排控制方法、系统、存储介质和电子设备
CN116136857A (zh) 数据采集方法及装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination