CN113301004A - 数据处理方法、装置、通信方法和单网卡虚拟机 - Google Patents
数据处理方法、装置、通信方法和单网卡虚拟机 Download PDFInfo
- Publication number
- CN113301004A CN113301004A CN202010552988.8A CN202010552988A CN113301004A CN 113301004 A CN113301004 A CN 113301004A CN 202010552988 A CN202010552988 A CN 202010552988A CN 113301004 A CN113301004 A CN 113301004A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- data
- container instance
- request data
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据处理方法,包括:接收容器实例的操作请求数据;根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;根据所述通信协议,建立与所述虚拟机之间的通信链路;利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。采用上述方法,在容器管控的基于非网络化的通信链路实现中,降低了通信链路对于宿主机的内核版本的依赖。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据处理方法、装置、电子设备及存储设备,本申请还涉及一种通信方法和一种单网卡虚拟机。
背景技术
弹性容器实例(Elastic Container Instance,简称ECI)是无服务器(Serverless)和容器化的弹性计算服务。用户无需管理底层ECS(Elastic ComputeService)服务器,只需要提供打包好的镜像,即可运行容器,并仅为容器实际运行消耗的资源付费。目前,ECI运行在轻量级虚拟化虚拟机监视器(hypervisor)中,在虚拟机中,会部署一个组件用于创建Pod。创建Pod的请求是来自于上层管控,管控请求会通过ECI管控VPC(Virtual Private Cloud)通过网卡通信。采用这种方式意味着虚拟机需要两个网卡,一个是管控网卡,一个是用户的VPC网卡。由于小规格实例网卡数量被限制为1块,并且存在着用户可能从虚拟机逃逸,直接访问管控网络的安全风险,因此有必要将通信链路改造为基于非网络化的通信链路,以提升安全性,降低成本。
现有技术提供的基于非网络化的通信链路方案,例如,在KATA虚拟化中,kataproxy与kata agent之间通信采用vhost-vsock链路,但基于vhost-vsock对宿主机的内核版本有要求,只有内核版本大于4.8才能支持vhost-vsock。而在当前的网络环境中,大量的宿主机还在使用低于4.8的内核版本,这就意味着无法使用vhost-vsock链路。
在容器管控的基于非网络化的通信链路方案中,如何降低通信链路对于宿主机的内核版本的依赖成为亟待解决的技术问题。
发明内容
本申请提供一种数据处理方法、装置、电子设备和存储设备,以在容器管控的基于非网络化的通信链路实现中,降低通信链路对于宿主机的内核版本的依赖。
本申请提供一种数据处理方法,包括:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
根据所述通信协议,建立与所述虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
可选的,所述接收容器实例的操作请求数据,包括如下数据中的至少一种:
容器实例的控制请求数据;
容器实例的执行请求数据。
可选的,所述接收容器实例的操作请求数据,包括:
与发送容器实例的操作请求数据的管理组件建立传输控制协议套接字连接;
利用所述传输控制协议套接字连接,接收容器实例的控制请求数据。
可选的,所述接收容器实例的操作请求数据,包括:
与运行在所述宿主机上的计算节点管控组件建立UNIX套接字连接;
利用所述UNIX套接字连接,接收所述计算节点管控组件转发的容器实例的执行请求数据。
可选的,所述根据所述操作请求数据的类型,对所述请求数据进行处理,获得所述容器实例的操作数据,包括:
对于容器实例的控制请求数据,利用超文本传输协议服务器的控制句柄进行处理,获得所述容器实例的控制数据;
或者,对于容器实例的执行请求数据,利用超文本传输协议服务器的因特网包探测程序句柄进行处理,获得所述容器实例的执行数据。
可选的,所述根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议,包括:
根据运行虚拟机的宿主机上的文件标识信息,判断所述宿主机是否支持用户态虚拟套接字协议;
若支持,则将所述用户态虚拟套接字协议,确定为所述宿主机与所述虚拟机之间的通信协议。
可选的,所述数据处理方法,还包括:
若所述宿主机不支持用户态虚拟套接字协议,则将虚拟输入输出串行协议,确定为所述宿主机与所述虚拟机之间的通信协议。
可选的,所述根据所述通信协议,建立与所述虚拟机之间的通信链路,包括:
如果所述通信协议为用户态虚拟套接字协议,则建立与所述虚拟机之间的用户态虚拟套接字通信链路;
或者,如果所述通信协议为虚拟输入输出串行协议,则建立与所述虚拟机之间的多路复用流通道。
可选的,所述利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理,包括:
利用所述用户态虚拟套接字通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理;
或者,利用所述多路复用流通道,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
本申请还提供一种数据处理装置,包括:
接收单元,用于接收容器实例的操作请求数据;
处理单元,用于根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
确定单元,用于根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
建立单元,用于根据所述通信协议,建立与所述虚拟机之间的通信链路;
转发单元,用于利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
可选的,所述接收单元中用于接收容器实例的操作请求数据,包括如下数据中的至少一种:
容器实例的控制请求数据;
容器实例的执行请求数据。
可选的,所述接收单元,具体用于:
与发送容器实例的操作请求数据的管理组件建立传输控制协议套接字连接;
利用所述传输控制协议套接字连接,接收容器实例的控制请求数据。
可选的,所述接收单元,具体用于:
与运行在所述宿主机上的计算节点管控组件建立UNIX套接字连接;
利用所述UNIX套接字连接,接收所述计算节点管控组件转发的容器实例的执行请求数据。
可选的,所述处理单元,具体用于:
对于容器实例的控制请求数据,利用超文本传输协议服务器的控制句柄进行处理,获得所述容器实例的控制数据;
或者,对于容器实例的执行请求数据,利用超文本传输协议服务器的因特网包探测程序句柄进行处理,获得所述容器实例的执行数据。
可选的,所述确定单元,具体用于:
根据运行虚拟机的宿主机上的文件标识信息,判断所述宿主机是否支持用户态虚拟套接字协议;
若支持,则将所述用户态虚拟套接字协议,确定为所述宿主机与所述虚拟机之间的通信协议。
可选的,所述数据处理装置,还包括协议确定单元,所述协议确定单元用于:
若所述宿主机不支持用户态虚拟套接字协议,则将虚拟输入输出串行协议,确定为所述宿主机与所述虚拟机之间的通信协议。
可选的,所述建立单元,具体用于:
如果所述通信协议为用户态虚拟套接字协议,则建立与所述虚拟机之间的用户态虚拟套接字通信链路;
如果所述通信协议为虚拟输入输出串行协议,则建立与所述虚拟机之间的多路复用流通道。
可选的,所述转发单元,具体用于:
利用所述用户态虚拟套接字通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理;
或者,利用所述多路复用流通道,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
本申请还提供一种电子设备,包括:
处理器;以及
存储器,用于存储数据处理方法的程序,该设备通电并通过所述处理器运行该数据处理方法的程序后,执行下述步骤:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
根据所述通信协议,建立与所述虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
本申请提供一种存储设备,存储有数据处理方法的程序,该程序被处理器运行,执行下述步骤:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
根据所述通信协议,建立与所述虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
本申请提供一种通信方法,用于单网卡虚拟机,包括:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行单网卡虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述单网卡虚拟机之间的通信协议;
根据所述通信协议,建立与所述单网卡虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述单网卡虚拟机中运行的容器代理。
本申请提供一种单网卡虚拟机,包括:
所述单网卡虚拟机通过与宿主机代理之间的通信链路,获得容器实例的操作数据;其中,所述通信链路通过如下方法建立:
所述宿主机代理接收容器实例的操作请求数据;
所述宿主机代理根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
所述宿主机代理根据运行单网卡虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述单网卡虚拟机之间的通信协议;
所述宿主机代理根据所述通信协议,建立与所述单网卡虚拟机之间的通信链路。
与现有技术相比,本申请具有以下优点:
本申请提供的数据处理方法,接收容器实例的操作请求数据;根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;根据所述通信协议,建立与所述虚拟机之间的通信链路;利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。采用本申请提供的方法,根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议,从而在容器管控的基于非网络化的通信链路实现中,降低了通信链路对于宿主机的内核版本的依赖。
附图说明
图1a是本申请第一实施例提供的一种数据处理方法的应用场景的系统实施例示意图。
图1b是本申请第一实施例提供的一种数据处理方法的应用场景的系统实施例示意图。
图2是本申请第一实施例提供的一种数据处理方法的流程图。
图3是本申请第一实施例涉及的宿主机代理的工作示意图。
图4是本申请第一实施例涉及的宿主机代理的通信链路建立示意图。
图5是本申请第二实施例提供的一种数据处理装置的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
为了使本领域的技术人员更好的理解本申请方案,首先对本申请的具体应用场景实施例进行框架性的描述。
如图1a所示,其为本申请提供的一种数据处理方法的应用场景的系统实施例示意图,图1b是现有技术采用的技术方案。图1a中的系统使用宿主机代理替换了图1b中的网卡0。采用图1a提供的系统,提升了系统的安全性,并且降低了成本。
本申请第一实施例提供一种数据处理方法。以下结合图2对本申请第一实施例进行详细说明。
如图2所示,在步骤S201,接收容器实例的操作请求数据。
本步骤用于接收容器实例的操作请求数据。
所述容器实例可以是弹性容器实例(ECI,Elastic Container Instance),其提供安全的无服务器容器运行服务。客户无需管理底层服务器,只需要提供打包好的Docker镜像,即可运行容器,并仅为容器实际运行消耗的资源付费。
所述接收容器实例的操作请求数据,包括如下数据中的至少一种:
容器实例的控制请求数据;
容器实例的执行请求数据。
其中,所述容器实例的控制请求数据可以是ECI的创建、删除、查询状态等请求;所述容器实例的执行请求数据可以是服务健康状态检查等请求。
所述接收容器实例的操作请求数据,包括:
与发送容器实例的操作请求数据的管理组件建立传输控制协议套接字连接;
利用所述传输控制协议套接字连接,接收容器实例的控制请求数据。
这里,发送容器实例的操作请求数据的管理组件可以是Kubernetes。
所述接收容器实例的操作请求数据,包括:
与运行在所述宿主机上的计算节点管控组件建立UNIX套接字连接;
利用所述UNIX套接字连接,接收所述计算节点管控组件转发的容器实例的执行请求数据。
这里,计算节点管控组件可以是pync,其为计算节点的管控组件,可以对上层请求进行鉴权。请参考图3中步骤S302所作的unix-socket绑定,其用于处理来自pync的ECI请求,处理逻辑为ctrlHttpServer。
如图2所示,在步骤S202,根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据。
本步骤用于根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据。
所述根据所述操作请求数据的类型,对所述请求数据进行处理,获得所述容器实例的操作数据,包括:
对于容器实例的控制请求数据,利用超文本传输协议服务器的控制句柄进行处理,获得所述容器实例的控制数据;
或者,对于容器实例的执行请求数据,利用超文本传输协议服务器的因特网包探测程序句柄进行处理,获得所述容器实例的执行数据。所述因特网包探测程序即TCP/IP协议族中的PING(Packet Internet Groper)程序。
请参考图3步骤S303建立的tcp socket,其用于处理ECI的exec请求,处理逻辑为execHttpServer。
如图2所示,在步骤S203,根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议。
本步骤用于根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议。
所述根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议,包括:
根据运行虚拟机的宿主机上的文件标识信息,判断所述宿主机是否支持用户态虚拟套接字协议;
若支持,则将所述用户态虚拟套接字协议,确定为所述宿主机与所述虚拟机之间的通信协议。
所述文件标识信息可以是宿主机/dev/文件夹上的设备文件。所述用户态虚拟套接字协议,即用户态vsock,可以使用开源软件firecracker中的vsock设备来实现。
对比现有技术中Kata提供的vhost-vsock方案,本实施例提供的方案避免了vhost-vsock内核模块的加载,用户态的vsock对宿主机内核版本无要求。可见,用户态的vsock使用方便,对系统无特殊依赖。
所述数据处理方法,还包括:
若所述宿主机不支持用户态虚拟套接字协议,则将虚拟输入输出串行协议,确定为所述宿主机与所述虚拟机之间的通信协议。
所述虚拟输入输出串行协议,即virtio-serial协议。
如图2所示,在步骤S204,根据所述通信协议,建立与所述虚拟机之间的通信链路。
本步骤用于根据所述通信协议,建立与所述虚拟机之间的通信链路。
所述根据所述通信协议,建立与所述虚拟机之间的通信链路,包括:
如果所述通信协议为用户态虚拟套接字协议,则建立与所述虚拟机之间的用户态虚拟套接字通信链路;
或者,如果所述通信协议为虚拟输入输出串行协议,则建立与所述虚拟机之间的多路复用流通道。
请参考图4,其为宿主机代理的通信链路建立示意图。对于容器实例的控制请求,首先判断所述宿主机与所述虚拟机之间的通信协议属于virtio-serial还是vsock通道,如果是virtio-serial通道,建立yamux client创建yamux stream通道,这样http请求就可以基于yamux stream进行通讯。如果是vsock通道,建立相应的vsock通道,进而转发http请求。对于容器实例的执行请求,通道建立类似于容器实例的控制请求的过程,只不过请求不是http请求,而是websocket请求。
如图2所示,在步骤S205,利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
所述利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理,包括:
利用所述用户态虚拟套接字通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理;
或者,利用所述多路复用流通道,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
如果选择的通信链路为用户态虚拟套接字通信链路,则将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理;如果选择的通信链路为多路复用流通道,则利用所述多路复用流通道,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
与本申请第一实施例提供的数据处理方法相对应的,本申请第二实施例还提供了一种数据处理装置。
如图5所示,所述数据处理装置,包括:
接收单元501,用于接收容器实例的操作请求数据;
处理单元502,用于根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
确定单元503,用于根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
建立单元504,用于根据所述通信协议,建立与所述虚拟机之间的通信链路;
转发单元505,用于利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
本实施例中,所述接收单元中用于接收容器实例的操作请求数据,包括如下数据中的至少一种:
容器实例的控制请求数据;
容器实例的执行请求数据。
本实施例中,所述接收单元,具体用于:
与发送容器实例的操作请求数据的管理组件建立传输控制协议套接字连接;
利用所述传输控制协议套接字连接,接收容器实例的控制请求数据。
本实施例中,所述接收单元,具体用于:
与运行在所述宿主机上的计算节点管控组件建立UNIX套接字连接;
利用所述UNIX套接字连接,接收所述计算节点管控组件转发的容器实例的执行请求数据。
本实施例中,所述处理单元,具体用于:
对于容器实例的控制请求数据,利用超文本传输协议服务器的控制句柄进行处理,获得所述容器实例的控制数据;
或者,对于容器实例的执行请求数据,利用超文本传输协议服务器的因特网包探测程序句柄进行处理,获得所述容器实例的执行数据。
本实施例中,所述确定单元,具体用于:
根据运行虚拟机的宿主机上的文件标识信息,判断所述宿主机是否支持用户态虚拟套接字协议;
若支持,则将所述用户态虚拟套接字协议,确定为所述宿主机与所述虚拟机之间的通信协议。
本实施例中,所述数据处理装置,还包括协议确定单元,所述协议确定单元用于:
若所述宿主机不支持用户态虚拟套接字协议,则将虚拟输入输出串行协议,确定为所述宿主机与所述虚拟机之间的通信协议。
本实施例中,所述建立单元,具体用于:
如果所述通信协议为用户态虚拟套接字协议,则建立与所述虚拟机之间的用户态虚拟套接字通信链路;
如果所述通信协议为虚拟输入输出串行协议,则建立与所述虚拟机之间的多路复用流通道。
本实施例中,所述转发单元,具体用于:
利用所述用户态虚拟套接字通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理;
或者,利用所述多路复用流通道,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
需要说明的是,对于本申请第二实施例提供的装置的详细描述可以参考对本申请第一实施例的相关描述,这里不再赘述。
与本申请第一实施例提供的数据处理方法相对应的,本申请第三实施例提供一种电子设备,包括:
处理器;以及
存储器,用于存储数据处理方法的程序,该设备通电并通过所述处理器运行该数据处理方法的程序后,执行下述步骤:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
根据所述通信协议,建立与所述虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
可选的,所述接收容器实例的操作请求数据,包括如下数据中的至少一种:
容器实例的控制请求数据;
容器实例的执行请求数据。
可选的,所述接收容器实例的操作请求数据,包括:
与发送容器实例的操作请求数据的管理组件建立传输控制协议套接字连接;
利用所述传输控制协议套接字连接,接收容器实例的控制请求数据。
可选的,所述接收容器实例的操作请求数据,包括:
与运行在所述宿主机上的计算节点管控组件建立UNIX套接字连接;
利用所述UNIX套接字连接,接收所述计算节点管控组件转发的容器实例的执行请求数据。
可选的,所述根据所述操作请求数据的类型,对所述请求数据进行处理,获得所述容器实例的操作数据,包括:
对于容器实例的控制请求数据,利用超文本传输协议服务器的控制句柄进行处理,获得所述容器实例的控制数据;
或者,对于容器实例的执行请求数据,利用超文本传输协议服务器的因特网包探测程序句柄进行处理,获得所述容器实例的执行数据。
可选的,所述根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议,包括:
根据运行虚拟机的宿主机上的文件标识信息,判断所述宿主机是否支持用户态虚拟套接字协议;
若支持,则将所述用户态虚拟套接字协议,确定为所述宿主机与所述虚拟机之间的通信协议。
可选的,所述电子设备还用于执行下述步骤:
若所述宿主机不支持用户态虚拟套接字协议,则将虚拟输入输出串行协议,确定为所述宿主机与所述虚拟机之间的通信协议。
可选的,所述根据所述通信协议,建立与所述虚拟机之间的通信链路,包括:
如果所述通信协议为用户态虚拟套接字协议,则建立与所述虚拟机之间的用户态虚拟套接字通信链路;
或者,如果所述通信协议为虚拟输入输出串行协议,则建立与所述虚拟机之间的多路复用流通道。
可选的,所述利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理,包括:
利用所述用户态虚拟套接字通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理;
或者,利用所述多路复用流通道,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
需要说明的是,对于本申请第三实施例提供的电子设备的详细描述可以参考对本申请第一实施例的相关描述,这里就不再赘述了。
与本申请第一实施例提供的数据处理方法相对应的,本申请第四实施例提供一种存储设备,存储有数据处理方法的程序,该程序被处理器运行,执行下述步骤:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
根据所述通信协议,建立与所述虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
需要说明的是,对于本申请第四实施例提供的电子设备的详细描述可以参考对本申请第一实施例的相关描述,这里就不再赘述了。
本申请第五实施例提供一种通信方法,用于单网卡虚拟机,包括:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行单网卡虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述单网卡虚拟机之间的通信协议;
根据所述通信协议,建立与所述单网卡虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述单网卡虚拟机中运行的容器代理。
本实施例的实施主体可以是图1a中的宿主机代理,如图1a中的虚拟机,其只有一个弹性网卡。
需要说明的是,对于本申请第五实施例提供的通信方法的详细描述可以参考对本申请第一实施例的相关描述,这里就不再赘述了。
本申请第六实施例提供一种单网卡虚拟机,包括:
所述单网卡虚拟机通过与宿主机代理之间的通信链路,获得容器实例的操作数据;其中,所述通信链路通过如下方法建立:
所述宿主机代理接收容器实例的操作请求数据;
所述宿主机代理根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
所述宿主机代理根据运行单网卡虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述单网卡虚拟机之间的通信协议;
所述宿主机代理根据所述通信协议,建立与所述单网卡虚拟机之间的通信链路。
如图1a中的虚拟机,其只有一个弹性网卡,即本实施例中的单网卡虚拟机。
需要说明的是,对于本申请第六实施例提供的单网卡虚拟机的详细描述可以参考对本申请第一实施例的相关描述,这里就不再赘述了。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、存储器映射输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
根据所述通信协议,建立与所述虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
2.根据权利要求1所述的方法,其特征在于,所述接收容器实例的操作请求数据,包括如下数据中的至少一种:
容器实例的控制请求数据;
容器实例的执行请求数据。
3.根据权利要求2所述的方法,其特征在于,所述接收容器实例的操作请求数据,包括:
与发送容器实例的操作请求数据的管理组件建立传输控制协议套接字连接;
利用所述传输控制协议套接字连接,接收容器实例的控制请求数据。
4.根据权利要求2所述的方法,其特征在于,所述接收容器实例的操作请求数据,包括:
与运行在所述宿主机上的计算节点管控组件建立UNIX套接字连接;
利用所述UNIX套接字连接,接收所述计算节点管控组件转发的容器实例的执行请求数据。
5.根据权利要求2所述的方法,其特征在于,所述根据所述操作请求数据的类型,对所述请求数据进行处理,获得所述容器实例的操作数据,包括:
对于容器实例的控制请求数据,利用超文本传输协议服务器的控制句柄进行处理,获得所述容器实例的控制数据;
或者,对于容器实例的执行请求数据,利用超文本传输协议服务器的因特网包探测程序句柄进行处理,获得所述容器实例的执行数据。
6.根据权利要求1所述的方法,其特征在于,所述根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议,包括:
根据运行虚拟机的宿主机上的文件标识信息,判断所述宿主机是否支持用户态虚拟套接字协议;
若支持,则将所述用户态虚拟套接字协议,确定为所述宿主机与所述虚拟机之间的通信协议。
7.根据权利要求6所述的方法,其特征在于,还包括:
若所述宿主机不支持用户态虚拟套接字协议,则将虚拟输入输出串行协议,确定为所述宿主机与所述虚拟机之间的通信协议。
8.根据权利要求1所述的方法,其特征在于,所述根据所述通信协议,建立与所述虚拟机之间的通信链路,包括:
如果所述通信协议为用户态虚拟套接字协议,则建立与所述虚拟机之间的用户态虚拟套接字通信链路;
或者,如果所述通信协议为虚拟输入输出串行协议,则建立与所述虚拟机之间的多路复用流通道。
9.根据权利要求8所述的方法,其特征在于,所述利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理,包括:
利用所述用户态虚拟套接字通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理;
或者,利用所述多路复用流通道,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
10.一种数据处理装置,其特征在于,包括:
接收单元,用于接收容器实例的操作请求数据;
处理单元,用于根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
确定单元,用于根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
建立单元,用于根据所述通信协议,建立与所述虚拟机之间的通信链路;
转发单元,用于利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
11.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储数据处理方法的程序,该设备通电并通过所述处理器运行该数据处理方法的程序后,执行下述步骤:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
根据所述通信协议,建立与所述虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
12.一种存储设备,其特征在于,存储有数据处理方法的程序,该程序被处理器运行,执行下述步骤:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述虚拟机之间的通信协议;
根据所述通信协议,建立与所述虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述虚拟机中运行的容器代理。
13.一种通信方法,用于单网卡虚拟机,其特征在于,包括:
接收容器实例的操作请求数据;
根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
根据运行单网卡虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述单网卡虚拟机之间的通信协议;
根据所述通信协议,建立与所述单网卡虚拟机之间的通信链路;
利用所述通信链路,将所述容器实例的操作数据转发到所述单网卡虚拟机中运行的容器代理。
14.一种单网卡虚拟机,其特征在于,包括:
所述单网卡虚拟机通过与宿主机代理之间的通信链路,获得容器实例的操作数据;其中,所述通信链路通过如下方法建立:
所述宿主机代理接收容器实例的操作请求数据;
所述宿主机代理根据所述操作请求数据的类型,对所述操作请求数据进行处理,获得所述容器实例的操作数据;
所述宿主机代理根据运行单网卡虚拟机的宿主机的软件环境参数数据,确定所述宿主机与所述单网卡虚拟机之间的通信协议;
所述宿主机代理根据所述通信协议,建立与所述单网卡虚拟机之间的通信链路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010552988.8A CN113301004B (zh) | 2020-06-17 | 2020-06-17 | 数据处理方法、装置、通信方法和单网卡虚拟机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010552988.8A CN113301004B (zh) | 2020-06-17 | 2020-06-17 | 数据处理方法、装置、通信方法和单网卡虚拟机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113301004A true CN113301004A (zh) | 2021-08-24 |
CN113301004B CN113301004B (zh) | 2023-05-09 |
Family
ID=77318613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010552988.8A Active CN113301004B (zh) | 2020-06-17 | 2020-06-17 | 数据处理方法、装置、通信方法和单网卡虚拟机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113301004B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791865A (zh) * | 2021-09-08 | 2021-12-14 | 山石网科通信技术股份有限公司 | 容器安全的处理方法及装置、存储介质和处理器 |
CN114422350A (zh) * | 2021-12-02 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 一种公共云容器实例创建方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557420A (zh) * | 2009-03-31 | 2009-10-14 | 北京航空航天大学 | 虚拟机监控器高效网络通信的实现方法 |
CN101859263A (zh) * | 2010-06-12 | 2010-10-13 | 中国人民解放军国防科学技术大学 | 一种支持在线迁移的虚拟机间快速通信方法 |
CN103428226A (zh) * | 2013-08-30 | 2013-12-04 | 天津汉柏汉安信息技术有限公司 | 一种用户态与内核通信的方法与系统 |
CN103491203A (zh) * | 2013-09-09 | 2014-01-01 | 北京三快在线科技有限公司 | 一种虚拟化dhcp服务的方法、装置、系统及服务器 |
CN105099706A (zh) * | 2015-08-25 | 2015-11-25 | 华为技术有限公司 | 一种数据通信方法、用户设备和服务器 |
US20160286003A1 (en) * | 2015-03-25 | 2016-09-29 | Amazon Technologies, Inc. | Using multiple protocols in a virtual desktop infrastructure |
US20160337426A1 (en) * | 2015-05-14 | 2016-11-17 | Hola Networks Ltd. | System and Method for Streaming Content from Multiple Servers |
WO2017053441A1 (en) * | 2015-09-21 | 2017-03-30 | Huawei Technologies Co., Ltd. | Fast and scalable database cluster communication path |
CN107003862A (zh) * | 2014-09-30 | 2017-08-01 | 亚马逊技术有限公司 | 动态代码部署和版本化 |
CN107368358A (zh) * | 2016-05-11 | 2017-11-21 | 华为技术有限公司 | 实现客户端所在虚拟机在不同主机间迁移的装置和方法 |
CN107426034A (zh) * | 2017-08-18 | 2017-12-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
CN107608757A (zh) * | 2017-08-29 | 2018-01-19 | 华为技术有限公司 | 一种基于容器的隔离处理方法及相关设备 |
US20190132393A1 (en) * | 2017-10-30 | 2019-05-02 | Deltek, Inc. | Dynamic content and cloud based content within collaborative electronic content creation and management tools |
CN110704155A (zh) * | 2018-07-09 | 2020-01-17 | 阿里巴巴集团控股有限公司 | 容器网络构建方法及装置、物理主机、数据传输方法 |
-
2020
- 2020-06-17 CN CN202010552988.8A patent/CN113301004B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557420A (zh) * | 2009-03-31 | 2009-10-14 | 北京航空航天大学 | 虚拟机监控器高效网络通信的实现方法 |
CN101859263A (zh) * | 2010-06-12 | 2010-10-13 | 中国人民解放军国防科学技术大学 | 一种支持在线迁移的虚拟机间快速通信方法 |
CN103428226A (zh) * | 2013-08-30 | 2013-12-04 | 天津汉柏汉安信息技术有限公司 | 一种用户态与内核通信的方法与系统 |
CN103491203A (zh) * | 2013-09-09 | 2014-01-01 | 北京三快在线科技有限公司 | 一种虚拟化dhcp服务的方法、装置、系统及服务器 |
CN107003862A (zh) * | 2014-09-30 | 2017-08-01 | 亚马逊技术有限公司 | 动态代码部署和版本化 |
US20160286003A1 (en) * | 2015-03-25 | 2016-09-29 | Amazon Technologies, Inc. | Using multiple protocols in a virtual desktop infrastructure |
US20160337426A1 (en) * | 2015-05-14 | 2016-11-17 | Hola Networks Ltd. | System and Method for Streaming Content from Multiple Servers |
CN105099706A (zh) * | 2015-08-25 | 2015-11-25 | 华为技术有限公司 | 一种数据通信方法、用户设备和服务器 |
WO2017053441A1 (en) * | 2015-09-21 | 2017-03-30 | Huawei Technologies Co., Ltd. | Fast and scalable database cluster communication path |
CN107368358A (zh) * | 2016-05-11 | 2017-11-21 | 华为技术有限公司 | 实现客户端所在虚拟机在不同主机间迁移的装置和方法 |
CN107426034A (zh) * | 2017-08-18 | 2017-12-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度系统及方法 |
CN107608757A (zh) * | 2017-08-29 | 2018-01-19 | 华为技术有限公司 | 一种基于容器的隔离处理方法及相关设备 |
US20190132393A1 (en) * | 2017-10-30 | 2019-05-02 | Deltek, Inc. | Dynamic content and cloud based content within collaborative electronic content creation and management tools |
CN110704155A (zh) * | 2018-07-09 | 2020-01-17 | 阿里巴巴集团控股有限公司 | 容器网络构建方法及装置、物理主机、数据传输方法 |
Non-Patent Citations (2)
Title |
---|
DONGYANG WANG,BINZHANG FU,GANG LU,KUN TAN,BEI HUA: "Vsocket:virtual socket interface for RDMA in public clouds", 《ACM》 * |
张新星: "基于虚拟化的网络流量模拟系统设计与实现", 《中国优秀硕士学位论文全文库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113791865A (zh) * | 2021-09-08 | 2021-12-14 | 山石网科通信技术股份有限公司 | 容器安全的处理方法及装置、存储介质和处理器 |
CN114422350A (zh) * | 2021-12-02 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 一种公共云容器实例创建方法 |
CN114422350B (zh) * | 2021-12-02 | 2024-02-06 | 阿里巴巴(中国)有限公司 | 一种公共云容器实例创建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113301004B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7203444B2 (ja) | 代替サーバ名を使用する相互トランスポート層セキュリティを選択的に提供すること | |
US10341251B2 (en) | Method and system for securely transmitting volumes into cloud | |
US9122509B2 (en) | Co-location of virtual machines with nested virtualization | |
CN115269184B (zh) | 函数即服务(faas)执行分配器 | |
US10310878B2 (en) | Execution of an application in a runtime environment installed in a virtual appliance | |
US9525592B2 (en) | Client/server network environment setup method and system | |
US20190026100A1 (en) | Unified update tool for multi-protocol network adapter | |
US8694685B2 (en) | Migrating virtual machines with adaptive compression | |
CN109218356B (zh) | 管理服务器上有状态应用的方法和设备 | |
US20240020131A1 (en) | Isolating applications at the edge | |
CN106657180B (zh) | 用于云服务的信息传输方法、装置、终端设备及系统 | |
CN109542862B (zh) | 用于控制文件系统的挂载的方法、装置和系统 | |
CN114281263B (zh) | 容器集群管理系统的存储资源处理方法、系统和设备 | |
CN113301004B (zh) | 数据处理方法、装置、通信方法和单网卡虚拟机 | |
CN113315706B (zh) | 私有云流量控制方法、设备及系统 | |
US7627655B2 (en) | Increased performance of grid applications | |
US20130325960A1 (en) | Client-side sharing of event information | |
CN113938527B (zh) | Api网关的扩展处理方法、计算设备及存储介质 | |
CN110333914B (zh) | 一种用于执行目标操作的方法与设备 | |
US20050132084A1 (en) | Method and apparatus for providing server local SMBIOS table through out-of-band communication | |
US10824476B1 (en) | Multi-homed computing instance processes | |
US8966019B2 (en) | Application server for mainframe computer systems | |
WO2023097703A1 (en) | A storage server forsecure and performant execution of user code in a data center storage | |
US11381634B1 (en) | TFTP (trivial file transfer protocol) broadcast controller | |
US11917035B1 (en) | Egress rate control in an event bus service |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40059168 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |