Method, device and equipment for container deployment and storage medium

By obtaining the image description information associated with the container and the driver version number of the node, the container is deployed on the node matching the driver version, solving the problem of operation failure caused by driver version mismatch, and reducing management complexity and operation and maintenance costs.

CN120085883APending Publication Date: 2025-06-03JD DIGITS HAIYI INFORMATION TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510168544.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-14
Publication Date
2025-06-03

AI Technical Summary

Technical Problem

During container deployment, due to mismatch of driver versions, the application fails to run, wasting system resources and increasing operation and maintenance costs.

Method used

Based on this information, the target container is deployed on the node matching the driver version by obtaining the mirror description information associated with the target container and the driver version number of the multiple nodes.

Benefits of technology

Avoid running failures due to driver version mismatch, reducing management complexity and operation and maintenance costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120085883A_ABST
    Figure CN120085883A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a container deployment method and device, equipment and a storage medium. The method comprises the steps of obtaining description information of a mirror image associated with a target container and first version numbers of driving programs installed by a plurality of nodes respectively, wherein operation of an application program associated with the mirror image depends on the driving programs; and deploying the target container to a target node in the plurality of nodes at least based on the description information and the first version number. In this way, the problem of running failure caused by incompatibility can be avoided, and the management difficulty is effectively reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Example embodiments of the present disclosure generally relate to the field of computer technology, and more particularly, to methods, apparatuses, devices, and storage media for container deployment. Background Art

[0002] With the development of technology, software applications run widely in various computing environments. The normal operation of an application depends on its underlying driver. The driver is like a bridge connecting the application and the hardware device, ensuring effective communication and interaction between the two. Summary of the Invention

[0003] In a first aspect of the present disclosure, there is provided a method for container deployment. The method includes: obtaining description information of an image associated with a target container and first version numbers of drivers installed on respective multiple nodes, wherein the operation of an application associated with the image depends on the drivers; and deploying the target container to a target node among the multiple nodes at least based on the description information and the first version numbers.

[0004] In a second aspect of the present disclosure, there is provided an apparatus for container deployment. The apparatus includes: an obtaining module configured to obtain description information of an image associated with a target container and first version numbers of drivers installed on respective multiple nodes, wherein the operation of an application associated with the image depends on the drivers; and a deployment module configured to deploy the target container to a target node among the multiple nodes at least based on the description information and the first version numbers.

[0005] In a third aspect of the present disclosure, there is provided an electronic device. The electronic device includes at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions causing the electronic device to execute the method of the first aspect of the present disclosure when executed by the at least one processing unit.

[0006] In a fourth aspect of the present disclosure, there is provided a computer-readable storage medium. A computer program is stored on the computer-readable storage medium and can be executed by a processor to execute the method according to the first aspect of the present disclosure.

[0007] In a fifth aspect of the present disclosure, there is provided a computer program product. The computer program product includes computer-executable instructions, wherein the computer-executable instructions implement the method according to the first aspect of the present disclosure when executed by a processor.

[0008] It should be understood that the content described in the present invention content section is not intended to define the key features or important features of the embodiments of the present disclosure, nor is it used to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] In the following, in combination with the accompanying drawings and with reference to the following detailed description, the above and other features, advantages, and aspects of the various implementations of the present disclosure will become more apparent. In the drawings, the same or similar reference numerals denote the same or similar elements, where:

[0010] Figure 1 FIG. shows a schematic diagram of an example environment in which embodiments of the present disclosure can be implemented;

[0011] Figure 2 FIG. shows a flowchart of a process for container deployment according to some embodiments of the present disclosure;

[0012] Figure 3 FIG. shows a schematic diagram of an example in which an image processor is deployed in a Kubernetes cluster according to some embodiments of the present disclosure;

[0013] Figure 4 FIG. shows a block diagram of a device for container deployment according to some embodiments of the present disclosure; and

[0014] Figure 5 FIG. shows a block diagram of an electronic device in which one or more embodiments of the present disclosure can be implemented. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0015] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although some embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. On the contrary, these embodiments are provided to more thoroughly and completely understand the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not used to limit the protection scope of the present disclosure.

[0016] It should be noted that in the technical solution of the present disclosure, the acquisition, storage, and application of the user's personal information involved all comply with the provisions of relevant laws and regulations and do not violate public order and good customs.

[0017] In the description of the embodiments of the present disclosure, the term "including" and its similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "an embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". There may also be other explicit and implicit definitions hereinafter.

[0018] As briefly mentioned above, the normal operation of an application depends on its underlying driver. The driver is like a bridge, connecting the application and the hardware device to ensure effective communication and interaction between the two. Taking a cluster as an example, the application can be installed in a container Pod, and the driver can be installed on the physical nodes of the cluster. On the one hand, over time, the version of the driver installed in the nodes that go online later is newer. On the other hand, with the development of technology, the Pod will gradually migrate to a newer version of the application. Since the old version of the driver does not support the new version of the application, if a Pod with a new version of the application runs on a node with an old version of the driver, it will cause errors in operation, thus wasting the resources of the central processing unit (CPU), memory, disk, etc. of the cluster. At the same time, it also increases the time for troubleshooting errors.

[0019] For example, in a large-scale cluster equipped with a graphics processing unit (GPU), the nodes in the cluster will install different versions of the driver (for example, the version of the driver installed in the nodes with an earlier online time is older, and the version of the driver installed in the nodes with a later online time is newer). When a Pod with a new version of CUDA runs on a node with an old version of the driver, it will cause errors in operation, thus wasting system resources.

[0020] In some solutions, in order to be compatible with multiple old and new driver versions, for example, a software release platform usually adds a driver version selection function to schedule the Pod to a node with a specified driver version. This requires software developers to clearly know on which driver version the Pod should run, and they also need to manually select the node when releasing the Pod, increasing the management complexity.

[0021] In some solutions, the version of the driver software installed on all nodes can be kept up to date. However, during the upgrade process, it is necessary to migrate the Pods running on the nodes. After the offline upgrade is completed, the Pods need to be migrated back to the original nodes, greatly increasing the operation and maintenance cost.

[0022] To at least partially solve the above problems and other potential problems that may exist in traditional solutions, the present disclosure provides a solution for container deployment. According to various embodiments of the present disclosure, description information of an image associated with a target container and first version numbers of drivers installed on each of a plurality of nodes are obtained, and the operation of an application associated with the image depends on the drivers; based at least on the description information and the first version numbers, the target container is deployed to a target node among the plurality of nodes. In this way, the problem of operation failure due to incompatibility can be avoided, and the management difficulty is also effectively reduced.

[0023] Exemplary embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.

[0024] Figure 1 A schematic diagram of an exemplary environment 100 in which embodiments of the present disclosure can be implemented is shown. As Figure 1 shown, the environment 100 includes an electronic device 110, clusters 120-1, 120-2, ……, 120-N, nodes 130, containers (Pods) 140-1, 140-2, ……, 140-N, and a hardware device 150. For the convenience of discussion, the clusters 120-1, 120-2, ……, 120-N can be collectively or individually referred to as the cluster 120, and the containers 140-1, 140-2, ……, 140-N can be collectively or individually referred to as the container 140. It should be understood that a plurality of nodes 130 are deployed in the cluster 120, and only one node 130 deployed in one cluster 120 is exemplarily shown in the environment 100.

[0025] In the environment 100, various types of applications can be encapsulated in the container 140, and relevant hardware devices for supporting the normal operation of the applications are installed in the node 130. If the application is to run properly, relevant drivers need to be installed in the node 130 to drive the hardware device 150 to provide support for various functions of the normal operation of the application.

[0026] In the environment 100, the electronic device 110 can schedule the container 140 so that the container 140 can be deployed in different nodes 130, so that the version of the application in the container 140 is adapted to the version of the driver in the node 130, thereby ensuring that the application can run properly.

[0027] In some embodiments, the electronic device 110 can be a device in any one of the plurality of clusters 120 or a device outside the plurality of clusters 120.

[0028] In some embodiments, the electronic device 110 can be any type of mobile or portable terminal, including a mobile phone, a laptop computer, a notebook computer, a netbook computer, a tablet computer, a media computer, a multimedia tablet, a handheld computer, a portable gaming terminal, a VR / AR device, a Personal Communication System (PCS) device, a personal navigation device, a Personal Digital Assistant (PDA), an audio / video player, a digital camera / video camera, a positioning device, a television receiver, a radio broadcast receiver, an e-book device, a gaming device, or any combination of the foregoing, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the electronic device 110 can also support any type of user interface (such as a "wearable" circuit, etc.).

[0029] It should be understood that the structure and function of the environment 100 are described only for exemplary purposes and do not imply any limitation on the scope of the present disclosure.

[0030] Figure 2 A flowchart of a process 200 for container deployment according to some embodiments of the present disclosure is shown. For example, the process 200 can be implemented in the electronic device 110. Next, a detailed introduction to the process 200 will be given in conjunction with Figure 1 The process 200 will be introduced in detail.

[0031] In block 210, the electronic device 110 obtains description information of an image associated with a target container and a first version number of a driver installed on each of the plurality of nodes 130. The operation of the application associated with the image depends on the driver.

[0032] It should be understood that the image associated with the container 140 can encapsulate information required to run the container 140, such as the code of the application, the running environment, and the configuration file, etc. Since the image has been encapsulated in the container before the container 140 is deployed, that is, the description information of the image has been pre-configured. The electronic device 110 only needs to directly obtain it from the cluster 120. Of course, the obtaining method can be that the cluster 120 actively sends the description information to the electronic device 110, or the electronic device 110 actively obtains the description information from the cluster 120.

[0033] In some embodiments, the description information may include tags of the image associated with the target container, and the tags may indicate the version number of the application carried by the image and the version number of the driver on which the application carried by the image depends. For example, the tag may be two tags, namely, the first tag and the second tag. The first tag indicates the version number of the application carried by the image, and the second tag indicates the version number of the driver on which the application carried by the image depends. For the convenience of discussion, in this article, sometimes the version number of the application carried by the image is also referred to as the "second version number", and the version number of the driver on which the application carried by the image depends is referred to as the "third version number".

[0034] In one example, the first tag may be expressed as: xxx.xxx.com / xxx-version, and the second tag may be expressed as: xxx.xxx.com / xxx-required.

[0035] Among them, "xxx-version" represents the version number of application xxx, and "xxx-required" represents the version number of the driver software required by application xxx.

[0036] For example,

[0037] xxx.xxx.com / xxx-version: 12.3.1

[0039] xxx.xxx.com / xxx-required:

[0040] "xxx>=11.1 brand=tesla, driver>=418, driver<419"

[0041] The above two tags may indicate that the version number of the application is 12.3.1, and the version number of the driver required by the application is 11.1.

[0042] In some embodiments, the description information may further include metadata of the image, and the metadata may include at least one of the following: the version number of the driver on which the image depends, the version number of the application, or indication information indicating that the image includes a compatibility package for the application. For the convenience of discussion, in this article, sometimes the version number of the driver on which the image depends is also referred to as the "fourth version number", and the version number of the application is referred to as the "fifth version number".

[0043] It should be noted that both the second version number and the fifth version number are the version numbers of the application. However, the difference is that the second version number is the version number obtained from the tag of the image, and the fifth version number is the version number obtained from the metadata of the image, and the two are different.

[0044] At block 220, the electronic device 110 deploys the target container to the target node among the multiple nodes based at least on the description information and the first version number.

[0045] As mentioned above, the driver can drive the relevant hardware device 150 in the node 130, so that the corresponding hardware device 150 provides support for certain functions for the normal operation of the application program. Before deploying the container 140, the image has been encapsulated in the container 140. Therefore, to ensure the normal operation of the container 140, the container 140 needs to be deployed on the node 130 that installs the driver matching the version of the application program carried by the container 140.

[0046] The electronic device 110 can determine the target node from the multiple nodes 130 based on the description information of the image associated with the target container (the container 140 to be deployed) and the first version number of the drivers installed on each of the multiple nodes 130, and deploy the target container on the target node.

[0047] In some embodiments, if the description information obtained by the electronic device 110 is the label of the image associated with the target container, then the electronic device 110 can determine the target node from the multiple nodes based on the first label, the second label, and the first version number. Then deploy the target container to the target node.

[0048] Since the first label indicates the second version number of the application program carried by the image, and the second label indicates the third version number of the driver on which the application program carried by the image depends, the electronic device 110 can match the third version number with the first version numbers of each of the multiple nodes 130. If the match is successful, the target container can be deployed on the target node where the match is successful.

[0049] In addition to the above methods, the electronic device 110 can also determine the target node based on the first label and the predetermined relationship. The predetermined relationship can indicate the corresponding relationship between the version number of the application program and the version number of the driver. The electronic device 110 can query the predetermined relationship based on the second version number, so as to determine the third version number corresponding to the second version number, and match the third version number with the first version numbers of each of the multiple nodes 130, and then can determine the target node from the multiple nodes 130.

[0050] In some embodiments, if the description information obtained by the electronic device 110 is the metadata of the image, then the electronic device 110 can determine the target node from the multiple nodes 130 based on the metadata of the image and the first version number. Then deploy the target container to the target node.

[0051] Specifically, the electronic device 110 may first determine a target node from multiple nodes based on the fourth version number and the first version number. In the case where the target node is determined, the electronic device 110 may deploy the target container to the target node.

[0052] Further, in response to the non-existence of the target node (that is, the target node cannot be determined from the multiple nodes 130 based on the fourth version number and the first version number), the electronic device 110 may determine the sixth version number of the driver on which the application depends based on the fifth version number and the predetermined relationship. Then, based on the sixth version number and the first version number, one or more nodes with the first version number greater than the sixth version number are determined from the multiple nodes. Finally, the target container is deployed to any one of the one or more nodes.

[0053] Further, in response to the non-existence of one or more nodes (that is, one or more nodes cannot be determined based on the sixth version number and the first version number), if the electronic device 110 obtains indication information, the target container is deployed to any one of the multiple nodes.

[0054] Further, if the indication information is not obtained, the electronic device 110 may determine a target node from the multiple nodes based on the major version number of the application, the first version number, and the predetermined relationship. Finally, the target container is deployed to the target node.

[0055] In some embodiments, in response to determining that the deployment of the target container fails, the electronic device 110 issues a deployment failure message, thereby avoiding errors when the target container runs and wasting resources such as the central processing unit (CPU) and memory.

[0056] To more clearly explain the solution for containers provided in some embodiments of the present disclosure, the following describes an example in the scenario where a graphics processing unit (GPU) is deployed in a Kubernetes cluster. Of course, it can be understood that the embodiments of the present disclosure are not limited to this application scenario.

[0057] Figure 3 FIG. 300 shows a schematic diagram of an example in which a graphics processor is deployed in a Kubernetes cluster according to some embodiments of the present disclosure. It should be understood that Figure 3 the controller 320 and the scheduling plugin 330 in Figure 1 may be implemented in the electronic device 110 in Figure 3 It should also be understood that Figure 3 both the cluster 120 and the node 130 in

[0058] In the cluster 120 configured with multiple GPUs, in order for the CUDA software and the corresponding driver to be compatible, the controller 320 needs to deploy the container 140 in a suitable node 130.

[0059] First, a correspondence relationship (i.e., a predetermined relationship) between the version number of the CUDA software and the version number of the corresponding driver needs to be maintained. In some embodiments, this correspondence relationship can be represented in the form of a table. For example, the correspondence relationship table can be as shown in Table 1 below.

[0060] Table 1

[0061]

[0062] Then, two labels of the container 140 need to be configured. The two labels are respectively:

[0063] xxx.xxx.com / cuda-version

[0064] xxx.xxx.com / cuda-required

[0065] Among them, the label "xxx.xxx.com / cuda-version" can be used to declare the version number of CUDA used by the container 140, and the label "xxx.xxx.com / cuda-required" can be used to declare the version number of the required driver.

[0066] For example,

[0067] xxx.xxx.com / cuda-version: 12.3.1

[0069] xxx.xxx.com / cuda-required:

[0070] "cuda>=11.1 brand=tesla, driver>=418, driver<419"

[0071] The above two labels can indicate that the version number of CUDA is 12.3.1 and the version number of the driver required by CUDA is 11.1.

[0072] It should be understood that the scheduling / deployment of the container 140 may include an initialization phase and a scheduling / deployment phase.

[0073] In the initialization phase, the device plugin 340 can scan the types of GPUs 350 installed in the nodes 130, the versions of the driver software, and the card series information (e.g., tesla, quoda, geforce, etc.), and transmit the relevant scanned information to the controller 320. The controller 320 can store and maintain all the information of the nodes 130 (the relevant information scanned by the device plugin 340) in the database 310.

[0074] In the scheduling / deployment phase, when the user creates a container 140, if the container 140 uses GPU resources, the kube scheduler in the Kubernetes cluster can call the scheduling plugin 330 to schedule the container.

[0075] Specifically, the scheduling plugin 330 can first check the labels of the container 140. If the container 140 has labels, the scheduling plugin 330 can schedule / deploy the container according to the declared labels of the container 140.

[0076] If the container 140 does not have labels, the scheduling plugin 330 can access the image repository to obtain the metadata of the image. Since the metadata is very small, the cost of obtaining the metadata is almost negligible. The metadata can contain the information of the environment variables declared in the image. For example, the NVIDIA_REQUIRE_CUDA variable in the environment variables, the CUDA_VERSION variable in the environment variables, and the COMPAT_PACKAGE variable in the environment variables.

[0077] The NVIDIA_REQUIRE_CUDA variable is used to describe the version information of the driver software required by the image, which has the same effect as the "cuda-required" in the label of the above image.

[0078] The CUDA_VERSION variable is used to describe the version number of the currently installed CUDA in the image, which has the same effect as the "cuda-version" in the label of the above image.

[0079] The COMPAT_PACKAGE variable is used to describe whether the container 140 has installed the CUDA compatibility package for compatibility with the old version of the driver software.

[0080] The scheduling plugin 330 can select a node from multiple nodes 130 based on the NVIDIA_REQUIRE_CUDA variable of the image, and determine whether there is a node that is exactly the same as the version information of the driver software declared by the NVIDIA_REQUIRE_CUDA variable. If so, the container is scheduled / deployed to that node.

[0081] If there is no suitable node, the scheduling plugin 330 can, based on the CUDA_VERSION variable of the image, look up the version number of the driver software compatible with the declared CUDA version number in Table 1 above, and then look for one or more nodes among the multiple nodes 130 that are greater than the version number of the driver software. If there is one or more such nodes, the container can be scheduled / deployed to any one of the one or more nodes.

[0082] If there is no such one or more nodes, the scheduling plugin 330 can determine whether a CUDA-compatible package is installed in the container 140 based on the COMPAT_PACKAGE variable. If it is determined that a compatible package is installed in the container 140, the container 140 can be scheduled / deployed to any node.

[0083] If it is determined that the compatible package is not installed in the container 140, the minor version number in the CUDA version number in the CUDA_VERSION variable can be set to 0, and nodes can be selected only according to the major version number. It should be understood that this method conforms to the MinorVersionCompatibility mechanism, which can enable the container 140 to run, but there will be some incompatible functions.

[0084] If none of the above conditions are met, the scheduling plugin 330 can return a scheduling / deployment failure message, thereby avoiding errors when the container is running and wasting resources such as CPU and memory.

[0085] In summary, for the solution for container deployment proposed by the present disclosure, first, obtain the description information of the image associated with the target container and the first version number of the driver programs installed on each of the multiple nodes. The operation of the application associated with the image depends on the driver program. Then, based at least on the description information and the first version number, deploy the target container to the target node among the multiple nodes. In this way, the problem of running failure due to incompatibility can be avoided, and the management difficulty is also effectively reduced.

[0086] Figure 4 The block diagram of a device 400 for container deployment according to some embodiments of the present disclosure is shown. The device 400 can be implemented in the electronic device 110. Each module / component in the device 400 can be implemented by hardware, software, firmware, or any combination thereof.

[0087] The apparatus 400 includes an obtaining module 410 configured to obtain description information of an image associated with a target container and first version numbers of drivers installed on each of a plurality of nodes, where the operation of an application associated with the image depends on the drivers. The apparatus 400 further includes a deployment module 420 configured to deploy the target container to a target node among the plurality of nodes at least based on the description information and the first version numbers.

[0088] In some embodiments, the description information includes a first tag and a second tag of the target container, the first tag indicating a second version number of the application hosted by the image, and the second tag indicating a third version number of the driver on which the application hosted by the image depends.

[0089] In some embodiments, the deployment module 420 is further configured to determine a target node from the plurality of nodes based on the first tag, the second tag, and the first version numbers; and deploy the target container to the target node.

[0090] In some embodiments, the description information includes at least one of the following: a fourth version number of the driver on which the image depends, a fifth version number of the application, or indication information indicating that the image includes a compatibility package for the application.

[0091] In some embodiments, the deployment module 420 is further configured to determine a target node from the plurality of nodes based on the fourth version number and the first version numbers; and deploy the target container to the target node.

[0092] In some embodiments, the deployment module 420 is further configured to, in response to the non-existence of the target node, determine a sixth version number of the driver on which the application depends based on the fifth version number and a predetermined relationship, the predetermined relationship indicating a correspondence between the version number of the application and the version number of the driver; determine one or more nodes from the plurality of nodes whose first version numbers are greater than the sixth version number based on the sixth version number and the first version numbers; and deploy the target container to any node among the one or more nodes.

[0093] In some embodiments, the deployment module 420 is further configured to, in response to the non-existence of one or more nodes, if the indication information is obtained, deploy the target container to any node among the plurality of nodes.

[0094] In some embodiments, the deployment module 420 is further configured to, if the indication information is not obtained, determine a target node from the plurality of nodes based on the major version number of the application, the first version numbers, and the predetermined relationship; and deploy the target container to the target node.

[0095] In some embodiments, the apparatus 400 further includes a prompting module configured to issue a deployment failure message in response to determining that the deployment of the target container fails.

[0096] The units included in apparatus 400 can be implemented in various ways, including software, hardware, firmware, or any combination thereof. In some embodiments, one or more units can be implemented using software and / or firmware, such as machine-executable instructions stored on a storage medium. In addition to or as an alternative to the machine-executable instructions, some or all of the units in apparatus 400 can be implemented at least partially by one or more hardware logic components. By way of example and not limitation, exemplary types of hardware logic components that can be used include field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems on a chip (SOCs), complex programmable logic devices (CPLDs), and the like.

[0097] Figure 5 A block diagram of an electronic device 500 in which one or more embodiments of the present disclosure can be implemented is shown. It should be understood that Figure 5 the electronic device 500 shown is merely exemplary and should not constitute any limitation on the functions and scope of the embodiments described herein. Figure 5 The electronic device 500 shown can be used to implement Figure 1 electronic device 110.

[0098] As Figure 5 shown, the electronic device 500 is in the form of a general-purpose electronic device. The components of the electronic device 500 can include, but are not limited to, one or more processors or processing units 510, a memory 520, a storage device 530, one or more communication units 540, one or more input devices 550, and one or more output devices 560. The processing unit 510 can be an actual or virtual processor and can execute various processes according to programs stored in the memory 520. In a multi-processor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing ability of the electronic device 500.

[0099] The electronic device 500 generally includes multiple computer storage media. Such media can be any available media accessible to the electronic device 500, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 520 can be volatile memory (such as registers, caches, random access memory (RAM)), non-volatile memory (such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. The storage device 530 can be removable or non-removable media and can include machine-readable media, such as flash drives, magnetic disks, or any other media that can be used to store information and / or data (such as training data for training) and can be accessed within the electronic device 500.

[0100] The electronic device 500 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not shown in Figure 5 , a disk drive for reading from and writing to a removable, non-volatile disk (e.g., a "floppy disk") and an optical disk drive for reading from and writing to a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to a bus (not shown) by one or more data media interfaces. The memory 520 may include a computer program product 525 having one or more program modules configured to perform the various methods or actions of the various embodiments of the present disclosure.

[0101] The communication unit 540 enables communication with other electronic devices via a communication medium. Additionally, the functions of the components of the electronic device 500 may be implemented by a single computing cluster or multiple computer machines that are capable of communicating via a communication connection. Thus, the electronic device 500 may operate in a networked environment using a logical connection to one or more other servers, network personal computers (PCs), or another network node.

[0102] The input device 550 may be one or more input devices such as a mouse, keyboard, trackball, etc. The output device 560 may be one or more output devices such as a display, speaker, printer, etc. The electronic device 500 may also communicate with one or more external devices (not shown) as needed via the communication unit 540, such as a storage device, a display device, etc., communicate with one or more devices that enable a user to interact with the electronic device 500, or communicate with any device that enables the electronic device 500 to communicate with one or more other electronic devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface (not shown).

[0103] According to an exemplary implementation of the present disclosure, a computer-readable storage medium is provided, on which one or more computer instructions are stored, and the one or more computer instructions are executed by a processor to implement the method described above. According to an exemplary implementation of the present disclosure, a computer program product is also provided, the computer program product being tangibly stored on a non-transitory computer-readable medium and including computer-executable instructions, and the computer-executable instructions being executed by a processor to implement the method described above.

[0104] Aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of methods, apparatuses (systems), and computer program products according to the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and the combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.

[0105] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when the instructions are executed by the processing unit of the computer or other programmable data processing apparatus, a device is created that implements the functions / acts specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, a programmable data processing apparatus, and / or other devices to operate in a particular manner, so that the computer-readable medium storing the instructions comprises a manufacture including instructions that implement various aspects of the functions / acts specified in one or more boxes of the flowchart and / or block diagram.

[0106] The computer-readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other devices so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other devices to produce a computer-implemented process such that the instructions executed on the computer, other programmable data processing apparatus, or other devices implement the functions / acts specified in one or more boxes of the flowchart and / or block diagram.

[0107] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various implementations of the present disclosure. In this regard, each box in the flowchart or block diagram may represent a module, a segment of a program, or a part of an instruction, and the module, segment of a program, or part of an instruction includes one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the boxes may occur out of the order noted in the figures. For example, two consecutive boxes may in fact be executed substantially in parallel, or they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each box in the block diagrams and / or flowcharts, and combinations of boxes in the block diagrams and / or flowcharts, can be implemented by a dedicated hardware-based system that performs the specified functions or acts, or by a combination of dedicated hardware and computer instructions.

[0108] The various implementations of the present disclosure have been described above. The above description is exemplary, not exhaustive, and is not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The choice of terms used herein is intended to best explain the principles of the implementations, the practical application, or improvements made to the technology in the marketplace, or to enable other ordinary skilled persons in the art to understand the implementations disclosed herein.

Claims

1. A method for container deployment, comprising: Obtain description information of an image associated with a target container and first version numbers of drivers installed on each of the plurality of nodes, wherein the running of an application associated with the image depends on the driver; as well as Based at least on the description information and the first version number, the target container is deployed to a target node among the multiple nodes.

2. The method according to claim 1, wherein the description information comprises a first label and a second label of the target container, the first label indicates a second version number of an application carried by the image, and the second label indicates a third version number of a driver on which the application carried by the image depends.

3. The method according to claim 2, wherein deploying the target container to the target node comprises: Determine the target node from the multiple nodes based on the first tag, the second tag, and the first version number; as well as Deploy the target container to the target node.

4. The method according to claim 1, wherein the description information includes at least one of the following: The fourth version number of the driver that the image depends on, the fifth version number of the application, or Indication information indicating that the image includes a compatibility package for the application.

5. The method according to claim 4, wherein deploying the target container to the target node comprises: Determine the target node from the plurality of nodes based on the fourth version number and the first version number; as well as Deploy the target container to the target node.

6. The method according to claim 5, wherein deploying the target container to the target node comprises: In response to the target node not existing, determining a sixth version number of a driver program on which the application program depends based on the fifth version number and a predetermined relationship, the predetermined relationship indicating a corresponding relationship between a version number of the application program and a version number of the driver program; Based on the sixth version number and the first version number, determine one or more nodes from the plurality of nodes whose first version number is greater than the sixth version number; as well as Deploy the target container to any node among the one or more nodes.

7. The method according to claim 6, wherein deploying the target container to the target node comprises: In response to the one or more nodes not existing, if the indication information is obtained, deploying the target container to any node among the multiple nodes.

8. The method according to claim 7, wherein deploying the target container to the target node comprises: If the indication information is not obtained, determining the target node from the multiple nodes based on the major version number of the application, the first version number, and the predetermined relationship; as well as Deploy the target container to the target node.

9. The method according to claim 1, further comprising: In response to determining that the target container fails to be deployed, deployment failure information is issued.

10. An apparatus for container deployment, comprising: an acquisition module configured to acquire description information of an image associated with a target container and first version numbers of drivers installed on each of the plurality of nodes, wherein the running of an application associated with the image depends on the driver; as well as A deployment module is configured to deploy the target container to a target node among the multiple nodes based at least on the description information and the first version number.

11. An electronic device, comprising: at least one processing unit; as well as At least one memory, the at least one memory being coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions causing the electronic device to perform the method according to any one of claims 1 to 9 when executed by the at least one processing unit.

12. A computer-readable storage medium having a computer program stored thereon, wherein the computer program can be executed by a processor to implement the method according to any one of claims 1 to 9.

13. A computer program product comprising computer executable instructions, wherein the computer executable instructions, when executed by a processor, implement the method according to any one of claims 1 to 9.