CN117632350A - 容器部署方法及装置 - Google Patents

容器部署方法及装置 Download PDF

Info

Publication number
CN117632350A
CN117632350A CN202210998277.2A CN202210998277A CN117632350A CN 117632350 A CN117632350 A CN 117632350A CN 202210998277 A CN202210998277 A CN 202210998277A CN 117632350 A CN117632350 A CN 117632350A
Authority
CN
China
Prior art keywords
container
virtual
physical
management device
creation command
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
CN202210998277.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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210998277.2A priority Critical patent/CN117632350A/zh
Publication of CN117632350A publication Critical patent/CN117632350A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请公开了一种容器部署方法及装置,属于容器技术领域。该方法应用于容器管理设备,该方法包括:容器管理设备接收容器创建命令,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格;容器管理设备创建满足规格的虚拟设备;容器管理设备创建容器,并将虚拟设备与容器绑定。本申请提高了资源的利用率。

Description

容器部署方法及装置
技术领域
本申请涉及容器技术领域,特别涉及一种容器部署方法及装置。
背景技术
容器提供了一个轻量级的虚拟运行环境。容器可以将用户的应用程序的所有代码、库和依赖关系等打包成镜像。执行镜像时,镜像运行在该虚拟运行环境中。该镜像不会与其他镜像共享宿主机的内存、处理器(如中央处理器(central processing unit,CPU))以及磁盘等资源,实现了该镜像与主机之间、该镜像与其他镜像之间的容器隔离,保证了容器内的进程不能监控容器外的任何进程或资源。
目前,在使用docker部署容器时,需要预先由管理员创建虚拟设备,并在创建完成后将虚拟设备的信息更新到docker。在用户需要使用docker部署容器时,需要指定容器所需的虚拟设备。docker接收到用户的容器创建命令后,需要根据容器创建命令的指示,创建容器,并将其指示的虚拟设备与容器绑定,以便于容器使用该虚拟设备的资源。在该实现过程中,由于虚拟设备的管理和使用是分离的,这就需要管理员预先规划好虚拟设备的数量和规格。
但是,容器所需的虚拟设备的规格和数量一般较难预先预测,为容器选择虚拟设备的规格与容器所需的规格的匹配程度较低,导致资源的利用率较低。
发明内容
本申请提供了一种容器部署方法及装置。本申请提高了资源的利用率。本申请提供的技术方案如下:
第一方面,本申请提供了一种容器部署方法。该方法应用于容器管理设备。该方法包括:容器管理设备接收容器创建命令,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格;容器管理设备创建满足规格的虚拟设备;容器管理设备创建容器,并将虚拟设备与容器绑定。
在该容器部署方法中,在接收到容器创建命令后,才根据该容器创建命令指示的虚拟设备的规格创建满足该规格的虚拟设备,并在完成容器的创建后,将容器与创建的虚拟设备绑定。这样一来,能够根据容器需要使用的虚拟设备的规格,按需创建虚拟设备,保证了虚拟设备的规格与容器所需的规格的匹配程度,相对于相关技术,无需预先规划和创建虚拟设备,能够有效提高资源的利用率。
虚拟设备的创建依赖于物理设备为其提供的物理资源。即容器管理设备可以在物理设备提供的物理资源的基础上,虚拟出虚拟设备。则容器管理设备在创建虚拟设备时,可以先确定为虚拟设备提供物理资源的目标物理设备,然后基于该目标物理设备创建满足规格的虚拟设备。其中,能够基于目标物理设备创建虚拟设备的前提是该目标物理设备的空闲硬件资源能够满足该虚拟设备的规格。物理设备的空闲硬件资源为物理设备的硬件资源中未被占用的硬件资源。则在一种实现方式中,容器管理设备创建满足规格的虚拟设备,包括:容器管理设备确定为虚拟设备提供物理资源的目标物理设备,目标物理设备的空闲硬件资源能够提供规格;容器管理设备基于目标物理设备,创建满足规格的虚拟设备。
可选的,容器创建命令还可以指示为虚拟设备提供物理资源的物理设备。此时,容器管理设备确定为虚拟设备提供物理资源的目标物理设备,包括:容器管理设备将容器创建命令指示的物理设备作为目标物理设备。
在一种实现方式中,虚拟设备的规格可以通过物理设备的物理资源表示。例如,虚拟资源的规格可以表示为其占用的资源在物理设备的物理资源总量中的占比。
可选的,容器创建命令还可以指示容器需要使用的虚拟设备的数量。则容器管理设备创建满足规格的虚拟设备,包括:容器管理设备创建满足数量和规格的虚拟设备。
在一种实现方式中,在容器管理设备创建容器,并将虚拟设备与容器绑定之后,该方法还包括:容器管理设备在容器运行结束后,回收虚拟设备。这样能够释放该虚拟设备占用的物理资源,以便于提高该物理资源的利用率。
其中,在容器即将运行结束时,容器可以向容器发送结束通知,则容器管理设备在接收到容器发送的结束通知后,确定容器运行结束。
在一种实现方式中,容器管理设备运行有应用容器引擎,该应用容器引擎用于执行该方法。
第二方面,本申请提供了一种容器部署装置。该装置包括:收发模块,用于接收容器创建命令,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格;执行模块,用于创建满足规格的虚拟设备;管理模块,用于创建容器,并将虚拟设备与容器绑定。
可选的,执行模块,具体用于:确定为虚拟设备提供物理资源的目标物理设备,目标物理设备的空闲硬件资源能够提供规格;基于目标物理设备,创建满足规格的虚拟设备。
可选的,容器创建命令还指示为虚拟设备提供物理资源的物理设备,执行模块,具体用于:将容器创建命令指示的物理设备作为目标物理设备。
可选的,规格通过物理设备的物理资源表示。
可选的,容器创建命令还指示容器需要使用的虚拟设备的数量,执行模块,具体用于:创建满足数量和规格的虚拟设备。
可选的,执行模块,具体用于:在容器运行结束后,回收虚拟设备。
可选的,执行模块在收发模块接收到容器发送的结束通知后,确定容器运行结束。
第三方面,本申请提供了一种容器管理设备,包括存储器和处理器,存储器存储有程序指令,处理器运行程序指令以执行本申请第一方面以及其任一种可能的实现方式中提供的方法。
第四方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在容器管理设备上运行时,使得容器管理设备执行本申请第一方面以及其任一种可能的实现方式中提供的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本申请第一方面以及其任一种可能的实现方式中提供的方法。
附图说明
图1是本申请实施例提供的一种docker的结构示意图;
图2是本申请实施例提供的一种容器部署方法涉及的应用场景的示意图;
图3是本申请实施例提供的另一种docker的结构示意图;
图4是本申请实施例提供的一种计算机设备的结构示意图;
图5是本申请实施例提供的一种容器部署方法的流程图;
图6是本申请实施例提供的一种创建虚拟设备的方法流程图;
图7是本申请实施例提供的一种容器部署装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为便于理解,下面先对本申请实施例涉及的一些术语和技术进行简单介绍。
虚拟化(virtualization)是一种资源管理技术,是将主机的各种实体资源,如计算资源、网络资源及存储资源等,予以抽象、转换后呈现出来,打破主机的实体结构间的不可切割的障碍,使用户可以采用比原本的组态更好的方式来应用这些资源。通过虚拟化使用的资源称为虚拟化资源,虚拟化资源不受现有实体资源的架设方式、设置地域或物理组态所限制。
主机(也称物理机):用于承载虚拟化技术的物理资源(如物理机)。通常的,用于部署虚拟机的主机通常为物理服务器。物理机具有多个物理设备。例如,物理服务器具有处理器和存储器等物理设备。
虚拟实例运行在主机的操作系统上,且虚拟实例自身设置有操作系统,虚拟实例的操作系统运行有应用程序,该应用程序用于实现用户的业务。虚拟实例可使用主机的硬件资源,不同虚拟实例之间相互隔离。通常的,虚拟实例可以为虚拟机或容器。
虚拟机(virtual machine,VM):指通过虚拟化技术模拟得到的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整的计算机系统。虚拟机的部分指令子集可以在宿主(host)机中处理,其它部分指令可以以仿真的方式执行。
虚拟机可视为若干个虚拟设备的集合,该若干个设备的集合为具有完整硬件系统功能的、且运行在一个完全隔离环境中的完整的计算机系统。虚拟设备通过利用虚拟化技术,在能够被共享资源的物理设备的基础上虚拟得到。例如,利用虚拟化技术,在处理器的基础上虚拟得到的虚拟处理器是一种虚拟设备。又例如,利用虚拟化技术,在现场可编程逻辑门阵列(field-programmable gate array,FPGA)的基础上虚拟得到的训练卡也是一种虚拟设备。
容器提供了一个轻量级的虚拟运行环境。容器可以将用户的应用程序的所有代码、库和依赖关系等打包成镜像。执行镜像时,镜像运行在该虚拟运行环境中。该镜像不会与其他镜像共享宿主机的内存、处理器(如中央处理器(central processing unit,CPU))以及磁盘等资源,实现了该镜像与主机之间、该镜像与其他镜像之间的容器隔离,保证了容器内的进程不能监控容器外的任何进程或资源。
容器技术包括docker、coreos以及其他容器技术。本申请实施例所提供的容器部署方法适用于开放容器标准(open container initiative,OCI)的容器技术,也适用于docker自身标准的容器技术。下面以docker为例进行说明。
docker是一个开源的应用容器引擎,其基于内核轻量级虚拟化技术,可以实现应用程序之间的资源隔离、配置与安全保障,并能够满足应用程序按需分配的资源需求以及应用程序的隔离性和可用性。使用docker运行应用程序之前需要在容器管理设备上创建对应的容器,并在容器中运行应用程序。
图1是本申请实施例提供的一种docker的架构示意图。如图1所示,docker 10包括dockerd101、runc 102和containerd 103等组件。docker的功能可以通过dockerd 101、runc 102和containerd 103等组件协同实现。其中,dockerd 101用于响应并处理docker客户端的请求,然后转化为docker的具体操作。runc 102用于创建、运行和回收容器。contained 103用于启动并管理runc 102,实现对容器的生命周期的管理。
容器的运行需要使用硬件设备(device)的资源。并且,容器可以直接使用硬件设备的资源,或者,使用从硬件设备虚拟出的虚拟设备的资源。例如,对于某些硬件设备,为保证其资源利用率的最大化,能够支持设备虚拟化。此时,可以利用硬件设备的资源虚拟出虚拟设备(vdevice)。并在创建容器后,可以将容器与虚拟设备绑定,以便于容器使用虚拟设备的资源。一般地,一个硬件设备可以虚拟出多个虚拟设备,且不同的虚拟设备可以具有不同的规格。如图1所示,与docker关联的硬件设备包括硬件设备21、硬件设备22和硬件设备23。管理员从硬件设备23虚拟出了虚拟设备231和虚拟设备232,并将虚拟设备231与容器绑定。
目前,在使用容器管理设备部署容器时,需要预先由管理员创建虚拟设备,并在创建完成后将虚拟设备的信息更新到容器管理设备。在用户需要使用容器管理设备部署容器时,需要在容器创建命令中指定容器所需的虚拟设备(如指定虚拟设备的标识)。容器管理设备接收到用户的容器创建命令后,需要根据容器创建命令的指示创建容器,并将其指示的虚拟设备与创建的容器绑定,以便于容器使用该虚拟设备的资源。在该实现过程中,由于虚拟设备的管理和使用是分离的,这就需要管理员预先规划好虚拟设备的数量和规格。
但是,容器所需的虚拟设备的规格和数量一般较难预先预测,为容器选择虚拟设备的规格与容器所需的规格的匹配程度较低,导致资源的利用率较低。
本申请实施例提供了一种容器部署方法。该方法应用于容器管理设备。该方法包括:容器管理设备接收容器创建命令,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格,容器管理设备按照容器创建命令创建容器和满足规格的虚拟设备,并将虚拟设备与容器绑定。
在该容器部署方法中,容器管理设备在接收到容器创建命令后,才根据该容器创建命令指示的虚拟设备的规格创建满足该规格的虚拟设备,并在完成容器的创建后,将容器与创建的虚拟设备绑定。这样一来,就能够在容器的部署过程中,根据容器需要使用的虚拟设备的规格,按需创建虚拟设备,保证了虚拟设备的规格与容器所需的规格的匹配程度,相对于相关技术,无需预先规划和创建虚拟设备,能够有效提高资源的利用率。
图2是本申请实施例提供的容器部署方法涉及的实施环境的结构示意图。如图2所示,该实施环境包括:客户端01和容器管理设备02。客户端01能够与容器管理设备02建立通信连接。例如,客户端01与容器管理设备02之间可以通过网络建立通信连接。可选的,该网络可以为局域网,也可以为互联网,还可以为其它网络,本申请实施例不作限定。
客户端01用于按照用户的指示向容器管理设备02发送容器创建命令。在一种可实现方式中,客户端01可以为台式计算机、膝上型计算机、移动电话、智能手机、平板电脑、多媒体播放器、智能家电、人工智能设备、智能可穿戴设备、电子阅读器、智能车载设备或物联网设备等。
容器管理设备02用于接收客户端01发送的容器创建命令,并基于该容器创建命令实现本申请实施例提供的容器部署方法。例如,容器管理设备02用于接收容器创建命令,基于容器创建命令创建容器和满足容器创建命令指示的规格的虚拟设备,并将虚拟设备与容器绑定。其中,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格。在一种可实现方式中,该容器管理设备02可以通过计算机设备实现。例如,该计算机设备可以为服务器。
可选的,该容器管理设备02中可以运行有应用容器引擎,本申请实施例提供的容器部署方法可以由该应用容器引擎执行。在一种实现方式中,应用容器引擎可以为docker等能够实现开放容器标准的容器引擎。
在一种实现方式中,容器管理设备可以包括执行组件。该执行组件用于对虚拟设备进行管理。例如,执行组件用于创建和/或回收虚拟设备。示例的,如图3所示,当应用容器引擎为docker时,该docker不仅包括dockerd、runc和containerd等组件,该应用容器引擎还包括执行组件104。该执行组件104用于基于容器创建命令创建容器需要使用的虚拟设备,并在容器运行结束时,回收该虚拟设备。
根据前面描述可知,容器管理设备可以通过计算机设备实现。本申请实施例提供了一种计算机设备。该计算机设备能够实现本申请实施例提供的容器部署方法中的部分或全部功能。图4是本申请实施例提供的一种计算机设备的结构示意图。如图4所示,该计算机设备400包括处理器401、存储器402、通信接口403和总线404。其中,处理器401、存储器402、通信接口403通过总线404实现彼此之间的通信连接。
处理器401可以包括通用处理器和/或专用硬件芯片。通用处理器可以包括:中央处理器(central processing unit,CPU)、微处理器或图形处理器(graphics processingunit,GPU)。CPU例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。专用硬件芯片是一个高性能处理的硬件模块。专用硬件芯片包括数字信号处理器、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)或者网络处理器(network processer,NP)中的至少一项。处理器401还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的容器部署方法的部分或全部功能,可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。
存储器402用于存储计算机程序,计算机程序包括操作系统402a和可执行代码(即程序指令)402b。存储器402例如是只读存储器或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器、只读光盘或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的可执行代码并能够由计算机存取的任何其它介质,但不限于此。例如存储器402用于存放出端口队列等。存储器402例如是独立存在,并通过总线404与处理器401相连接。或者存储器402和处理器401集成在一起。存储器402可以存储可执行代码,当存储器402中存储的可执行代码被处理器401执行时,处理器401用于执行本申请实施例提供的容器部署方法的部分或全部功能。例如,处理器401执行以下过程:容器管理设备接收容器创建命令,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格;容器管理设备创建满足规格的虚拟设备;容器管理设备创建容器,并将虚拟设备与容器绑定。且处理器401执行该过程的实现方式请相应参考本申请方法实施例中的相关描述。存储器402中还可以包括操作系统等其他运行进程所需的软件模块和数据等。
通信接口403使用例如但不限于收发器一类的收发模块,来实现与其他设备或通信网络之间的通信。例如,通信接口403可以是以下器件的任一种或任一种组合:网络接口(如以太网接口)、无线网卡等具有网络接入功能的器件。
总线404是任何类型的,用于实现计算机设备的内部器件(例如,存储器402、处理器401、通信接口403)互连的通信总线。例如系统总线。本申请实施例以计算机设备内部的上述器件通过总线404互连为例说明,可选地,计算机设备400内部的上述器件还可以采用除了总线404之外的其他连接方式彼此通信连接。例如,计算机设备400内部的上述器件通过内部的逻辑接口互连。
需要说明的是,上述多个器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本申请实施例对上述器件的具体实现形式不做限定。且上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。提供程序开发平台的计算机程序产品包括一个或多个计算机指令,在计算机设备上加载和执行这些计算机程序指令时,全部或部分地实现本申请实施例提供的容器部署方法的流程或功能。
并且,计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质存储有提供程序开发平台的计算机程序指令。
应当理解的是,以上内容是对本申请实施例提供的容器部署方法的应用场景的示例性说明,并不构成对于该容器部署方法的应用场景的限定,本领域普通技术人员可知,随着业务需求的改变,其应用场景可以根据应用需求进行调整,本申请实施例对其不做一一列举。
下面对本申请实施例提供的容器部署方法的实现过程进行说明。该方法可以应用于容器管理设备。如图5所示,该容器部署方法的实现过程可以包括以下步骤:
步骤501、容器管理设备接收容器创建命令,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格。
用户需要使用容器实现其业务时,可以通过客户端向容器管理设备发送容器创建命令,并在容器创建命令中指示容器需要使用的虚拟设备的规格,使得容器管理设备根据容器创建命令创建容器和虚拟设备,并将容器和虚拟设备绑定,以便于容器使用该虚拟设备的资源。
在一种实现方式中,容器创建命令可以指定为虚拟设备提供物理资源的物理设备,并根据物理设备的物理资源表示虚拟设备的规格。例如,虚拟资源的规格可以表示为其占用的资源在物理设备的物理资源总量中的占比。如虚拟设备的规格可以为物理设备的物理资源总量的四分之一,即将物理设备的物理资源均分为4份,使用其中的一份创建虚拟设备。在一种实现方式中,当容器管理设备运行有docker时,容器创建命令可以携带规格描述参数,该规格描述参数用于指示虚拟设备的规格。示例的,容器创建命令携带有规格描述参数docker run-device,且规格描述参数docker run-device=/dev/device1-e VDEVICE_SPE={1/4}。其中,VDEVICE_SPE指示虚拟设备vdevice的规格,根据规格描述参数的指示,虚拟设备的规格为物理设备device的物理资源的1/4。
在另一种实现方式中,容器创建命令可以指示容器所需的虚拟设备的类型,不同类型的虚拟设备对应不同的规格。容器管理设备从容器创建命令中获取虚拟设备的类型后,可以根据虚拟设备的类型与规格的对应关系,确定虚拟设备的规格。例如,虚拟设备的类型可以为使用1/8指定物理资源的虚拟设备、使用1/4指定物理资源的虚拟设备、使用1/2指定物理资源的虚拟设备,这三种类型对应的虚拟设备的规格分别为:使用1/8指定物理资源、使用1/4指定物理资源、使用1/2指定物理资源,若容器管理设备从容器创建命令获取的虚拟设备的类型为使用1/4指定物理资源的虚拟设备,则容器管理设备可以确定容器需要使用的虚拟设备的规格为使用1/4指定物理资源。
需要说明的是,虚拟设备的规格也可以采用其他方式表示。在一种实现方式中,虚拟设备的规格还可以使用需要的虚拟处理器和虚拟内存等虚拟资源的数量表示。例如,虚拟设备的规格可以表示为需要使用2个虚拟处理器(如vcpu)和8吉比特(GB)的内存等。
可选的,容器创建命令还可以指示容器需要使用的虚拟设备的数量。例如,当用户的业务需要使用多个应用程序实现时,用户触发的容器创建命令还指示容器需要使用的虚拟设备的数量为多个。此时,可以分别利用多个虚拟设备的资源运行多个应用程序。并且,分别通过多个虚拟设备的资源运行多个应用程序时,能够实现多个应用程序运行过程的隔离,有助于提高应用程序的数据的安全性。
在一种实现方式中,该步骤501的操作可以通过运行可执行程序实现。例如,当容器管理设备运行有docker时,如图3所示,docker的容器管理设备10可以包括执行组件104,该执行组件104通过运行可执行程序实现。此时,可以由该执行组件104接收容器创建命令,并从容器创建命令中获取虚拟设备的规格。其中,用于实现执行组件104该功能的可执行程序可以为本申请在docker的开源版本的基础上新增的可执行程序。
步骤502、容器管理设备创建满足规格的虚拟设备。
容器管理设备获取虚拟设备的规格后,就可以创建满足该规格的虚拟设备。在一种实现方式中,如图6所示,该步骤502的实现过程包括:
步骤5021、容器管理设备确定为虚拟设备提供物理资源的目标物理设备,目标物理设备的空闲硬件资源能够提供规格。
虚拟设备的创建依赖于物理设备为其提供的物理资源。即容器管理设备可以在物理设备提供的物理资源的基础上,虚拟出虚拟设备。则容器管理设备在创建虚拟设备时,可以先确定为虚拟设备提供物理资源的目标物理设备,然后基于该目标物理设备创建满足规格的虚拟设备。其中,能够基于目标物理设备创建虚拟设备的前提是该目标物理设备的空闲硬件资源能够满足该虚拟设备的规格。物理设备的空闲硬件资源为物理设备的硬件资源中未被占用的硬件资源。
在一种实现方式中,容器创建命令可以指示为虚拟设备提供物理资源的物理设备。此时,容器管理设备可以将容器创建命令指示的物理设备作为目标物理设备。或者,容器创建命令也可以不指示物理设备,此时,容器管理设备可以在其具有使用权限的多个物理设备中,选择空闲硬件资源能够满足该虚拟设备的规格的物理设备,并将选择的物理设备确定为目标物理设备。
在另一种可实现方式中,容器管理设备能够获取其管理的所有物理设备的资源状态,并根据资源状态对对应的物理设备进行调度。则容器管理设备确定为虚拟设备提供物理资源的目标物理设备可以包括:容器管理设备基于容器管理设备管理的所有物理设备的资源状态,在该所有物理设备中选择目标物理设备。其中,容器管理设备可以根据物理设备的资源状态确定物理设备的空闲硬件资源,并将空闲硬件资源能够满足虚拟设备的规格的物理设备确定为目标物理设备。可选的,容器管理设备在确定目标物理设备时,还可以参考其他策略,以保证创建的虚拟设备的性能。例如,容器管理设备还可以参考负载均衡策略等策略,在容器管理设备在其管理的物理设备中确定有多个物理设备的空闲硬件资源能够满足虚拟设备的规格时,可以按照负载均衡策略,在该多个物理设备中确定目标物理设备。资源状态用于反映物理设备的资源使用情况,例如,反映资源是否被占用,未被占用的资源即为空闲资源。
类似于步骤501的实现方式,该步骤502的操作也可以通过运行可执行程序实现。例如,当容器管理设备运行有docker时,如图3所示,docker的容器管理设备10可以包括执行组件104,该执行组件104通过运行可执行程序实现。此时,可以由该执行组件104确定目标物理设备。其中,用于实现执行组件104该功能的可执行程序可以为本申请在docker的开源版本的基础上新增的可执行程序。
步骤5022、容器管理设备基于目标物理设备,创建满足规格的虚拟设备。
容器管理设备确定为虚拟设备提供物理资源的目标物理设备后,即可基于该目标物理设备创建满足规格的虚拟设备。可选的,容器创建命令还可以指示容器需要使用的虚拟设备的数量。此时,容器管理设备创建满足规格的虚拟设备可以包括:容器管理设备创建满足数量和规格的虚拟设备。
类似于步骤501的实现方式,该步骤5022的操作也可以通过运行可执行程序实现。例如,当容器管理设备运行有docker时,如图3所示,docker的容器管理设备10可以包括执行组件104,该执行组件104通过运行可执行程序实现。此时,可以由该执行组件104基于目标物理设备,创建满足规格的虚拟设备。其中,用于实现执行组件104该功能的可执行程序可以为本申请在docker的开源版本的基础上新增的可执行程序。并且,执行组件104创建虚拟设备的功能可以通过调用创建函数实现。可选的,创建函数可以为钩子(hook)函数,例如Prestart-hook函数。该创建函数可以在docker的启动过程中,通过docker的OCI接口注册,并在容器管理设备获取虚拟设备的规格后,调用该创建函数,使用该创建函数创建满足规格的虚拟设备。其中,创建函数可以为本申请在docker的开源版本的基础上新增的函数。
步骤503、容器管理设备创建容器,并将虚拟设备与容器绑定。
容器管理设备接收到容器创建命令后,可以根据该容器创建命令的指示创建容器。在容器管理设备完成虚拟设备的创建后,可以将容器与该虚拟设备绑定,以便于容器使用该虚拟设备的资源。
可选的,容器管理设备可以在其管理的虚拟设备中确定满足规格的目标虚拟设备,并将目标虚拟设备与容器绑定。
在确定目标虚拟设备的一种可实现方式中,容器管理设备可以在容器管理设备管理的所有虚拟设备中,确定满足规格的一个或多个虚拟设备,然后将该一个或多个虚拟设备中的一个确定为目标虚拟设备。可选的,容器管理设备可以在该一个或多个虚拟设备中,随机选择一个虚拟设备,将选择的虚拟设备确定为目标虚拟设备。或者,容器管理设备可以根据负载均衡等策略,在该一个或多个虚拟设备中选择目标虚拟设备。
在确定目标虚拟设备的另一种可实现方式中,由于容器和满足规格的虚拟设备均由容器管理设备创建,容器管理设备可以获取容器与该虚拟设备之间的对应关系。则容器管理设备可以根据该对应关系,将该容器对应的虚拟设备确定为目标虚拟设备。
类似于步骤501的实现方式,该步骤503的操作也可以通过运行可执行程序实现。例如,当容器管理设备运行有docker时,如图3所示,docker的容器管理设备10可以包括runc 102,runc 102通过运行可执行程序实现。此时,可以由runc 102创建容器,并将虚拟设备与容器绑定。
步骤504、容器管理设备在容器运行结束后,回收虚拟设备。
在容器运行结束后,容器管理设备可以回收与该容器绑定的虚拟设备,释放该虚拟设备占用的物理资源,以便于提高该物理资源的利用率。
容器管理设备确定容器运行结束的实现方式有多种。在一种实现方式中,在容器即将运行结束时,容器可以向容器发送结束通知,则容器管理设备在接收到容器发送的结束通知后,可以确定容器运行结束。
类似于步骤501的实现方式,该步骤504的操作也可以通过运行可执行程序实现。例如,当容器管理设备运行有docker时,如图3所示,docker的容器管理设备10可以包括执行组件104,该执行组件104通过运行可执行程序实现。此时,可以由该执行组件104在容器运行结束后,回收虚拟设备。其中,用于实现执行组件104该功能的可执行程序可以为本申请在docker的开源版本的基础上新增的可执行程序。并且,执行组件104回收虚拟设备的功能可以通过调用回收函数实现。可选的,回收函数可以为钩子(hook)函数,例如Poststop-hook函数。该回收函数可以在docker的启动过程中,通过docker的OCI接口注册,并在容器运行结束后,调用该回收函数,使用该回收函数回收虚拟设备。其中,回收函数可以为本申请在docker的开源版本的基础上新增的函数。
综上所述,本申请实施例提供了一种容器部署方法,该方法包括:容器管理设备接收容器创建命令,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格,容器管理设备创建容器和满足规格的虚拟设备,并将虚拟设备与容器绑定。在该容器部署方法中,在接收到容器创建命令后,才根据该容器创建命令指示的虚拟设备的规格创建满足该规格的虚拟设备,并在完成容器的创建后,将容器与创建的虚拟设备绑定。这样一来,能够根据容器需要使用的虚拟设备的规格,按需创建虚拟设备,保证了虚拟设备的规格与容器所需的规格的匹配程度,相对于相关技术,无需预先规划和创建虚拟设备,能够有效提高资源的利用率。
需要说明的是,本申请实施例提供的容器部署方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。并且,本申请实施例提供的容器部署方法也可以不限于部署容器,例如,还可以用于部署需要依赖虚拟设备运行的其他虚拟实例,本申请实施例对其不做具体限定。
本申请实施例还提供了一种容器部署装置。如图7所示,该容器部署装置700包括:
收发模块701,用于接收容器创建命令,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格。
执行模块702,用于创建满足规格的虚拟设备。
管理模块703,用于创建容器,并将虚拟设备与容器绑定。
可选的,执行模块702,具体用于:确定为虚拟设备提供物理资源的目标物理设备,目标物理设备的空闲硬件资源能够提供规格;基于目标物理设备,创建满足规格的虚拟设备。
可选的,容器创建命令还指示为虚拟设备提供物理资源的物理设备。则执行模块702,具体用于:将容器创建命令指示的物理设备作为目标物理设备。
可选的,规格通过物理设备的物理资源表示。
可选的,容器创建命令还指示容器需要使用的虚拟设备的数量,执行模块702,具体用于:创建满足数量和规格的虚拟设备。
可选的,执行模块702,具体用于:在容器运行结束后,回收虚拟设备。
可选的,执行模块702在收发模块701接收到容器发送的结束通知后,确定容器运行结束。
综上所述,本申请实施例提供了一种容器部署装置,收发模块接收容器创建命令,容器创建命令用于指示创建容器和容器需要使用的虚拟设备的规格,执行模块创建容器,管理模块创建满足规格的虚拟设备,并将虚拟设备与容器绑定。在该容器部署装置中,在接收到容器创建命令后,才根据该容器创建命令指示的虚拟设备的规格创建满足该规格的虚拟设备,并在完成容器的创建后,将容器与创建的虚拟设备绑定。这样一来,能够根据容器需要使用的虚拟设备的规格,按需创建虚拟设备,保证了虚拟设备的规格与容器所需的规格的匹配程度,相对于相关技术,无需预先规划和创建虚拟设备,能够有效提高资源的利用率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应内容,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在计算机设备上运行时,使得计算机设备执行如本申请实施例提供的容器部署方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本申请实施例提供的容器部署方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的容器创建命令都是在充分授权的情况下获取的。
在本申请实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”是指一个或多个,术语“多个”指两个或两个以上,除非另有明确的限定。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种容器部署方法,其特征在于,所述方法应用于容器管理设备,所述方法包括:
所述容器管理设备接收容器创建命令,所述容器创建命令用于指示创建容器和所述容器需要使用的虚拟设备的规格;
所述容器管理设备创建满足所述规格的虚拟设备;
所述容器管理设备创建所述容器,并将所述虚拟设备与所述容器绑定。
2.根据权利要求1所述的方法,其特征在于,所述容器管理设备创建满足所述规格的虚拟设备,包括:
所述容器管理设备确定为所述虚拟设备提供物理资源的目标物理设备,所述目标物理设备的空闲硬件资源能够提供所述规格;
所述容器管理设备基于所述目标物理设备,创建满足所述规格的虚拟设备。
3.根据权利要求2所述的方法,其特征在于,所述容器创建命令还指示为所述虚拟设备提供物理资源的物理设备,所述容器管理设备确定为所述虚拟设备提供物理资源的目标物理设备,包括:
所述容器管理设备将所述容器创建命令指示的物理设备作为所述目标物理设备。
4.根据权利要求3所述的方法,其特征在于,所述规格通过所述物理设备的物理资源表示。
5.根据权利要求1至4任一所述的方法,其特征在于,所述容器创建命令还指示所述容器需要使用的虚拟设备的数量,所述容器管理设备创建满足所述规格的虚拟设备,包括:
所述容器管理设备创建满足所述数量和所述规格的虚拟设备。
6.根据权利要求1至5任一所述的方法,其特征在于,在所述容器管理设备创建所述容器,并将所述虚拟设备与所述容器绑定之后,所述方法还包括:
所述容器管理设备在所述容器运行结束后,回收所述虚拟设备。
7.根据权利要求6所述的方法,其特征在于,所述容器管理设备在接收到所述容器发送的结束通知后,确定所述容器运行结束。
8.根据权利要求1至7任一所述的方法,其特征在于,所述容器管理设备运行有应用容器引擎,所述应用容器引擎用于执行所述方法。
9.一种容器部署装置,其特征在于,所述装置包括:
收发模块,用于接收容器创建命令,所述容器创建命令用于指示创建容器和所述容器需要使用的虚拟设备的规格;
执行模块,用于创建满足所述规格的虚拟设备;
管理模块,用于创建所述容器,并将所述虚拟设备与所述容器绑定。
10.根据权利要求9所述的装置,其特征在于,所述执行模块,具体用于:
确定为所述虚拟设备提供物理资源的目标物理设备,所述目标物理设备的空闲硬件资源能够提供所述规格;
基于所述目标物理设备,创建满足所述规格的虚拟设备。
11.根据权利要求10所述的装置,其特征在于,所述容器创建命令还指示为所述虚拟设备提供物理资源的物理设备,所述执行模块,具体用于:
将所述容器创建命令指示的物理设备作为所述目标物理设备。
12.根据权利要求11所述的装置,其特征在于,所述规格通过所述物理设备的物理资源表示。
13.根据权利要求9至12任一所述的装置,其特征在于,所述容器创建命令还指示所述容器需要使用的虚拟设备的数量,所述执行模块,具体用于:
创建满足所述数量和所述规格的虚拟设备。
14.根据权利要求9至13任一所述的装置,其特征在于,所述执行模块,具体用于:
在所述容器运行结束后,回收所述虚拟设备。
15.根据权利要求14所述的装置,其特征在于,所述执行模块在所述收发模块接收到所述容器发送的结束通知后,确定所述容器运行结束。
16.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有程序指令,所述处理器运行所述程序指令以执行权利要求1至8任一所述的方法。
17.一种计算机可读存储介质,其特征在于,包括程序指令,当所述程序指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1至8任一所述的方法。
18.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1至8任一所述的方法。
CN202210998277.2A 2022-08-19 2022-08-19 容器部署方法及装置 Pending CN117632350A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210998277.2A CN117632350A (zh) 2022-08-19 2022-08-19 容器部署方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210998277.2A CN117632350A (zh) 2022-08-19 2022-08-19 容器部署方法及装置

Publications (1)

Publication Number Publication Date
CN117632350A true CN117632350A (zh) 2024-03-01

Family

ID=90027536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210998277.2A Pending CN117632350A (zh) 2022-08-19 2022-08-19 容器部署方法及装置

Country Status (1)

Country Link
CN (1) CN117632350A (zh)

Similar Documents

Publication Publication Date Title
US11121915B2 (en) FPGA-enabled compute instances
CN110199271B (zh) 用于现场可编程门阵列虚拟化的方法和设备
CN110032413B (zh) 一种桌面虚拟化方法、相关设备及计算机存储介质
EP3313023A1 (en) Life cycle management method and apparatus
US9239921B2 (en) System and methods of performing antivirus checking in a virtual environment using different antivirus checking techniques
US11263058B2 (en) Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty
US11924117B2 (en) Automated local scaling of compute instances
KR20080106908A (ko) 하드웨어 장치와 같은 자원을 소유하는 가상 컴퓨터를 이동시키기 위해 이용될 수 있는 컴퓨팅 시스템 및 방법
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
US11321109B2 (en) Container engine for selecting driver based on container metadata
US20230035594A1 (en) Managing peripherals in a containerized environment
CN114238236A (zh) 共享文件的访问方法、电子设备及计算机可读存储介质
CN108667750B (zh) 虚拟资源管理方法及装置
US20150227383A1 (en) Application program virtualization system and method of virtualizing application program of user terminal
CN116257320B (zh) 一种基于dpu虚拟化配置管理方法、装置、设备及介质
US11847611B2 (en) Orchestrating and automating product deployment flow and lifecycle management
CN117632350A (zh) 容器部署方法及装置
KR101614920B1 (ko) 다수 개의 컴퓨팅 시스템 및/또는 환경들에서의 입출력 자원들의 공유
CN112217654B (zh) 服务资源许可管理方法和相关设备
US10911371B1 (en) Policy-based allocation of provider network resources
CN116932234A (zh) 应用程序间通信方法、装置、存储介质及程序产品
CN112470443B (zh) 将复位向的生物辨识装置隔离到远程会话
CN112181401A (zh) 应用构建方法及应用构建平台
CN117632351A (zh) 容器部署方法及系统
US20240036925A1 (en) Lcs sdxi data plane configuration system

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