Container scheduling method, container scheduling device and storage medium

By obtaining the call frequency and communication delay information between containers, selecting the appropriate scheduling node and adjusting resources, the problem of unbalanced resource utilization of container clusters is solved, and the rapid response and performance improvement of container calls is achieved.

CN115080179BActive Publication Date: 2024-12-27CHINA TELECOM CORP LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202110276368.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-03-15
Publication Date
2024-12-27
Estimated Expiration
2041-03-15

AI Technical Summary

Technical Problem

There is an imbalance in resource utilization and performance in container clusters, resulting in resource waste and performance degradation.

Method used

By obtaining the call frequency and communication delay information between the scheduled container and the related container, selecting the dispatching node from multiple alternative nodes, performing container scheduling, and balancing resource allocation through clustering and grouping adjustment.

Benefits of technology

It realizes rapid response and performance improvement of container calls, saves resources, and improves the overall performance of container clusters.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115080179B_ABST
    Figure CN115080179B_ABST
Patent Text Reader

Abstract

The present invention provides a container scheduling method, a container scheduling device and a storage medium. The container scheduling method comprises: obtaining a related container that has a calling relationship with a scheduled container; selecting a scheduling node for the scheduled container from a plurality of candidate nodes at least according to the calling frequency between the scheduled container and the related container; and scheduling the scheduled container to the scheduling node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to computer technology, and more specifically to a container scheduling method, a container scheduling device and a storage medium. Background Art

[0002] With the popularity of container technology, the scale of container clusters is also growing. Clusters may experience imbalanced resource utilization in time and space, resulting in resource waste, performance degradation and other problems. Therefore, based on the existing container scheduling strategy, more scheduling methods need to be combined to achieve the goals of saving resources, rapid response, and improving performance. Summary of the invention

[0003] A brief overview of the invention is given below in order to provide a basic understanding of some aspects of the invention. However, it should be understood that this overview is not an exhaustive overview of the invention. It is not intended to identify the key or important parts of the invention, nor is it intended to limit the scope of the invention. Its purpose is merely to give some concepts of the invention in a simplified form as a prelude to a more detailed description that will be given later.

[0004] The present invention provides a container scheduling method, a container scheduling device and a storage medium to achieve rapid response and performance improvement of container calls.

[0005] According to one aspect of the present invention, there is provided a container scheduling method, comprising: acquiring a related container having a calling relationship with a scheduled container; selecting a scheduling node for the scheduled container from a plurality of candidate nodes at least according to a calling frequency between the scheduled container and the related container; and scheduling the scheduled container to the scheduling node.

[0006] In an embodiment of the present invention, the method further includes: obtaining a node where the relevant container is located; wherein the scheduling node is selected from a plurality of candidate nodes at least according to a calling frequency between the scheduled container and the relevant container, and a communication delay between each of a plurality of candidate nodes and the node where the relevant container is located.

[0007] In an embodiment of the present invention, for each of the multiple candidate nodes, a score is performed based on the product of the calling frequency and the communication delay.

[0008] In an embodiment of the present invention, the lowest-scoring candidate node with the lowest scoring result is selected as the calling node.

[0009] In an embodiment of the present invention, the node where the related container is located and the calling node are grouped; the scheduled container and the related container are clustered according to the calling frequency between the scheduled container and the related container; the clustering result and the grouping result are compared; and according to the comparison result, it is determined whether to adjust the calling node for the scheduled container.

[0010] In an embodiment of the present invention, the nodes where the relevant containers are located and the calling nodes are grouped at least according to the physical locations and / or the communication delays between the nodes.

[0011] In an embodiment of the present invention, clustering is performed based on a predetermined number of clusters for clustering.

[0012] In an embodiment of the present invention, whether to adjust the calling node for the scheduled container is determined according to resource utilization.

[0013] In an embodiment of the present invention, the calling node for the scheduled container is adjusted by a greedy algorithm to balance resource allocation.

[0014] In an embodiment of the present invention, adjusting the calling node for the scheduled container includes: assuming that one container in one cluster is divided into another cluster each time, and then evaluating the clustering result at least according to the calling frequency between the containers in the one cluster and the calling frequency between the containers in the other cluster; and selecting to divide one container in the one cluster into the other cluster based on the evaluation result.

[0015] In the embodiment of the present invention, the calling frequency is the calling frequency per unit time.

[0016] According to another aspect of the present invention, a container scheduling device is provided, comprising: a memory on which instructions are stored; and a processor configured to execute the instructions stored in the memory to execute the above container scheduling method.

[0017] According to another aspect of the present invention, a computer-readable storage medium is provided, comprising computer-executable instructions, which, when executed by one or more processors, enable the one or more processors to execute the above-mentioned container scheduling method.

[0018] According to the embodiments of the present invention, rapid response and performance improvement of container calls are achieved. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The accompanying drawings, which constitute a part of the specification, illustrate embodiments of the present invention and, together with the description, serve to explain the principles of the present invention.

[0020] The present invention may be more clearly understood from the following detailed description with reference to the accompanying drawings, in which:

[0021] Figure 1 The figure is an exemplary flow chart of a container scheduling method according to an embodiment of the present invention.

[0022] Figure 2 The figure is a specific schematic diagram of scheduling a new container by using the container scheduling method according to an embodiment of the present invention.

[0023] Figure 3 The following is an exemplary flow chart of further actions of the container scheduling method according to an embodiment of the present invention.

[0024] Figure 4(A) to Figure 4(C) The figure is a specific schematic diagram of dynamically adjusting the scheduling container by using the container scheduling method according to an embodiment of the present invention.

[0025] Figure 5(A) to Figure 5(B) The figure is a comparison diagram showing the effects of the present invention and the prior art.

[0026] Figure 6 An exemplary configuration of a computing device in which embodiments according to the present invention may be implemented is shown. DETAILED DESCRIPTION

[0027] The following detailed description is made with reference to the accompanying drawings, and the following detailed description is provided to assist in a comprehensive understanding of various exemplary embodiments of the present invention. The following description includes various details to assist in understanding, but these details are considered to be examples only and are not intended to limit the present invention, which is defined by the appended claims and their equivalents. The words and phrases used in the following description are only used to enable a clear and consistent understanding of the present invention. In addition, for the sake of clarity and brevity, descriptions of well-known structures, functions, and configurations may be omitted. Those of ordinary skill in the art will recognize that various changes and modifications may be made to the examples described herein without departing from the spirit and scope of the present invention.

[0028] Currently, container cluster scheduling is mainly based on pre-selection strategies and optimization strategies.

[0029] As an example of a container scheduler (i.e., scheduling management software, etc.), kube-scheduler can be cited. Its fundamental task is to bind containers or their collections (e.g., Pods) to the most suitable working nodes according to various scheduling algorithms. The entire scheduling process can be divided into two stages: preselection strategies (Predicates) and priority strategies (Priorities).

[0030] Predicates means that all nodes are input and the output is the nodes that meet the preselection conditions. Kube-scheduler filters out nodes that do not meet the policy according to the preselection strategy. For example, if a node has insufficient resources or does not meet the conditions of the preselection strategy, such as "the label of the Node must be consistent with the Selector of the Pod", it will not pass the preselection.

[0031] Priorities means that the input is the nodes selected in the pre-selection stage. Priorities will score and rank the pre-selected nodes according to the priority strategy and select the nodes with the highest scores. For example, nodes with more abundant resources and smaller loads may have higher rankings.

[0032] Examples of network nodes may be various servers or a collection of servers (e.g., a computer room) in a communication system, and network functions may run on containers.

[0033] However, these two strategies mainly consider the resources of network nodes (CPU, memory, hard disk, port, etc.), combined with the affinity strategy set by the user (node, container). They cannot be considered from a business perspective (such as call chain), nor can they be dynamically adjusted according to the status of the container cluster after deployment.

[0034] Figure 1 FIG. 1 is an exemplary flow chart of a container scheduling method according to an embodiment of the present invention. The container scheduling method according to an embodiment of the present invention may include steps S101 to S103.

[0035] like Figure 1 As shown, in step S101, a related container having a calling relationship with the scheduled container is obtained; in step S102, a scheduling node for the scheduled container is selected from multiple candidate nodes at least according to the calling frequency between the scheduled container and the related container; in step S103, the scheduled container is scheduled to the scheduling node.

[0036] For example, Figure 1 The container scheduling method shown is based on a call chain, that is, a scheduled container and a related container have a call relationship on the call chain. For example, the scheduled container will be scheduled to a scheduling node and run on the scheduling node.

[0037] In some embodiments, the container scheduling method may further include: obtaining a node where the relevant container is located; wherein a scheduling node is selected from a plurality of candidate nodes based at least on a call frequency between the scheduled container and the relevant container, and a communication delay between each of the plurality of candidate nodes and the node where the relevant container is located.

[0038] For example, the node where the relevant container is located is the node where the container is running. There are communication delays between multiple candidate nodes and the node where the relevant container is located.

[0039] In some embodiments, for each of the plurality of candidate nodes, a score is performed based on a product of a call frequency and a communication delay.

[0040] In particular, when there are multiple related containers, the score is based on the sum of the product of the call frequency and the communication delay. That is, for each of the multiple candidate nodes, the product of the call frequency between the scheduled container and each related container and the communication delay between the candidate node and the node where each related container is located is calculated respectively, and then summed. For all multiple candidate nodes, the score is performed based on the summed result of each candidate node.

[0041] For example, after obtaining the communication delay between a candidate node and the node where the related container is located, multiply it by the calling frequency between the scheduled container and the related container to get the product, add up multiple such products (add as many products as there are calling relationships), and use the sum as the basis for scoring to score each candidate node.

[0042] In some embodiments, the lowest scoring candidate node with the lowest scoring result is selected as the calling node.

[0043] The following is a specific example of the operation of scheduling a new container using the above container scheduling method. Figure 2 The figure is a specific schematic diagram of scheduling a new container by using the container scheduling method according to an embodiment of the present invention.

[0044] like Figure 2 As shown, for example, a region refers to a computer room in different regions, such as East China and North China. N1 and N2 are two nodes in one region; N3 and N4 are two nodes in another region. B is a container in the container cluster that is scheduled to node N1 in one region, C is a container in the container cluster that is scheduled to node N4 in another region, and A is a new container to be scheduled. As can be seen from the call chain, container A can call container C, and A can call container B. For example, scheduling a new container A can mean putting container A on a certain node to run. The following describes an example of the specific operation of scheduling a new container A.

[0045] First, when a new container A needs to be scheduled, the call frequency per unit time between container A and the connected containers B and C in the call chain is calculated. For example, frequencyAB = 200 times / second, frequencyAC = 100 times / second. Depending on the actual network deployment method, the calculation can also be based on the frequency of B calling A and C calling A.

[0046] Then, after satisfying other scheduling strategies (such as the pre-selection strategy and / or the preferred strategy mentioned above), the candidate nodes that can be scheduled by the container A are N2 and N3.

[0047] Afterwards, the latency time of the candidate nodes N2 and N3 connected to the nodes N1 and N4 where containers B and C are located in each call chain is calculated. n As well as the above-mentioned calling frequency, score each candidate node according to the following formula 1.

[0048] (Formula 1)

[0049] score=Σfrequency*time n

[0050] For example, the latency between candidate node N2 and node N1 where container B is located is timeN2N1=0.3ms, the latency between candidate node N2 and node N4 where container C is located is timeN2N4=1.8ms, the latency between candidate node N3 and node N1 where container B is located is timeN3N1=1.7ms, and the latency between candidate node N3 and node N4 where container C is located is timeN3N4=0.4ms. The score of candidate node N2 is scoreN2=0.3*200+1.8*100=240, and the score of candidate node N3 is scoreN3=1.7*200+0.4*100=380.

[0051] Finally, container A is scheduled to the candidate node N2 with the lowest score. That is, N2 is the scheduling node for the new container A.

[0052] According to an embodiment of the present invention, nodes are scheduled based on the call frequency between the scheduled container and the related containers to achieve a reasonable distribution of containers. During operation, calls between the scheduled container and the related containers can be responded to quickly, thereby improving performance.

[0053] In addition, further adjustment operations can be performed. Figure 3 This is an exemplary flow chart of further actions of the container scheduling method according to an embodiment of the present invention. The container scheduling method according to an embodiment of the present invention may further include steps S301 to S304.

[0054] like Figure 3 As shown, in step S301, the nodes where the relevant containers are located and the calling nodes are grouped; in step S302, the scheduled containers and the relevant containers are clustered according to the calling frequencies between the scheduled containers and the relevant containers; in step S303, the clustering results and the grouping results are compared; in step S304, according to the comparison results, it is determined whether to adjust the calling node for the scheduled container.

[0055] In some embodiments, the nodes where the related containers are located and the calling nodes are grouped at least according to the physical location and / or the communication delay between the nodes.

[0056] For example, the purpose of grouping is to divide cluster resources. For example, there are three regions, two in Beijing and one in Shanghai. According to the physical location and the communication delay between nodes, they can be divided into two groups (two computer rooms in Beijing are one group, and two in Shanghai are one group).

[0057] The purpose of container clustering can be to group containers with close calling relationships into the same category. After container clustering, for example, if there are two classes a and b, then the containers in class a can be placed in Beijing, and the containers in class b can be placed in Shanghai. This division is because the calling relationship of containers in Beijing is relatively close (the calling relationship can be calculated based on the calling frequency between containers, for example, the higher the calling frequency, the closer the relationship, and the closer the distance (distance = 1 / frequency)), and the communication frequency with containers in Shanghai is relatively low. Similarly, the calling relationship of containers in Shanghai is relatively close, and the communication frequency with containers in Beijing is relatively low. In this way, the overall communication latency can be lower.

[0058] In some embodiments, clustering is performed based on a predetermined number of clusters for clustering.

[0059] For example, if the number of clusters is 3, then containers A, B, and C can each be a category; if the number of clusters is 2, A and B are called more frequently, so AB is a class and C is a class; if the number of clusters is 1, then ABC is a class.

[0060] In some embodiments, whether to adjust the invocation node for the scheduled container is determined based on resource utilization.

[0061] For example, containers are clustered and then correspond to two groups of resources. However, if there are too many containers in one group of resources and too few containers in the other group of resources, it may lead to unbalanced resource allocation and affect resource utilization. At this time, it is necessary to adjust the calling node for the scheduled container to balance the resource allocation.

[0062] In some embodiments, the invocation nodes for scheduled containers are adjusted by a greedy algorithm to balance resource allocation.

[0063] For example, when solving a problem, a greedy algorithm always makes the best choice at the moment. In other words, it does not consider the overall optimal solution, and the algorithm obtains a local optimal solution in a certain sense.

[0064] In some embodiments, adjusting the call node for the scheduled container includes: assuming that a container in a cluster is divided into another cluster each time, and then evaluating the clustering result at least according to the call frequency between containers in one cluster and the call frequency between containers in another cluster; and based on the evaluation result, selecting to divide a container in a cluster into another cluster.

[0065] An example of dynamic adjustment using the above container scheduling method is described below. Figure 4(A) to Figure 4(C) The figure is a specific schematic diagram of dynamically adjusting the scheduling container by using the container scheduling method according to an embodiment of the present invention.

[0066] As shown in the figure, Figure 4 (A) is the final container distribution result. In this figure, it is shown that after adjustment, the clustering result and the grouping result are more matched.

[0067] As an example of clustering results, Figure 4(B) may be the initial clustering result, where A, C, D, and E are clustered into a class 1, and B is clustered into a class 2 alone. Since there are too many containers in class 1 and relatively few containers in class 2, there are two resource groups, resulting in an unbalanced resource allocation. For example, it is necessary to consider classifying container A into class 2. The basis for the division may be a greedy algorithm. Each time a container in class 1 is assigned to class 2, the sum of the product of the call frequency between all containers with a call relationship in each class after the division and between each class and the communication delay of the nodes where the two containers with the call relationship are located (if there is no call relationship between the two containers, the product is not calculated), can be calculated, and then the corresponding container with the minimum sum is assigned to class 2. If the resources are still unbalanced, continue the above operation.

[0068] For example, as shown in Figure 4(B), if container A in class 1 is divided into class 2, we get C, D, E in class 1, and A and B in class 2. We can calculate the product of the frequency of container A in class 2 calling container B and the communication delay between the node where container A is located and the node where container B is located. Then, we calculate the product of the frequency of container A in class 2 calling container C in class 1 and the communication delay between the node where container A is located and the node where container C is located, and calculate the product of the frequency of container C in class 1 calling container D and the communication delay between the node where container C is located and the node where container D is located, plus the product of the frequency of container C in class 1 calling container E and the communication delay between the node where container C is located and the node where container E is located, and add all the above products to get the sum.

[0069] Similarly, if container C in class 1 is divided into class 2, we get A, D, E of class 1, and C, B of class 2. We can also calculate the product of the frequency of container A in class 1 calling container B in class 2 and the communication delay between the node where container A is located and the node where container B is located, calculate the product of the frequency of container A in class 1 calling container C in class 2 and the communication delay between the node where container A is located and the node where container C is located, and calculate the product of the frequency of container C in class 2 calling container D in class 1 and the communication delay between the node where container C is located and the node where container D is located, plus the product of the frequency of container C in class 2 calling container E in class 1 and the communication delay between the node where container C is located and the node where container E is located, and add the above products to get the sum.

[0070] Similarly, each time a container in class 1 is divided into class 2, the sum is obtained in a similar manner. Then, the container corresponding to the division when the sum of the products is the smallest (in this example, it can be A) is divided from class 1 to class 2.

[0071] Figure 4(C) is the adjusted clustering result. In Figure 4(C), container A, which is clustered as class 1 in Figure 4(B), is adjusted to class 2. In addition, as shown in Figure (A), containers A and B in container class 2 are run in node group 1, and containers C, D, and E in container class 1 are run in node group 2. In this way, a relatively balanced grouping and clustering matching result as shown in Figure 4(A) can be obtained.

[0072] In addition, in some embodiments, the calling frequency may be the calling frequency per unit time, for example, in times / second.

[0073] The embodiment of the present invention relates to a container scheduling method based on call chain. Container clusters with close and frequent call relationships are deployed on relatively close nodes, and can be dynamically adjusted according to the deployment of subsequent container clusters. Through this method, rapid response and performance improvement of container calls can be achieved.

[0074] Figure 5(A) to Figure 5(B) The figure is a comparison diagram showing the effects of the present invention and the prior art.

[0075] As shown in the figure, the scheme 1 shown in FIG5(A) corresponds to the prior art, and the scheme 2 shown in FIG5(B) corresponds to the present invention. Figure 5(A) to Figure 5(B) It can be seen that the solution 1 of the prior art needs to be called three times in different areas, that is, container A calls container B once, container B calls container C once, and container C calls container D once, while the solution 2 of the present invention only needs to be called once in different areas, that is, container B calls container C once.

[0076] According to the embodiments of the present invention, compared with the prior art, the present invention has the following advantages: The present invention proposes a container scheduling method based on a call chain, which makes full use of the scheduling information between containers. It includes two parts: scheduling when the container node is created, and dynamic adjustment according to the state of the container cluster. Containers that are called more frequently are closer in the physical node, thereby saving network transmission resources and reducing call delays, achieving rapid response and performance improvement of container calls. The present invention can be applied to cloud computing, microservices, containers and orchestration, etc.

[0077] The present invention also provides a container scheduling device, which includes: a memory described later, on which instructions are stored; and a processor described later, which is configured to execute the instructions stored in the memory to execute the above container scheduling method.

[0078] Figure 6 An exemplary configuration of a computing device in which embodiments according to the present invention may be implemented is shown.

[0079] The computing device 600 is an example of a hardware device to which the above aspects of the present invention can be applied. The computing device 600 can be any machine configured to perform processing and / or calculations. The computing device 600 can be, but is not limited to, a workstation, a server, a desktop computer, a laptop computer, a tablet computer, a personal data assistant (PDA), a smart phone, a vehicle-mounted computer, or a combination thereof.

[0080] like Figure 6As shown, the computing device 600 may include one or more elements that can be connected or communicated with the bus 602 via one or more interfaces. The bus 602 may include, but is not limited to, an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus, etc. The computing device 600 may include, for example, one or more processors 604, one or more input devices 606, and one or more output devices 608. The one or more processors 604 may be any kind of processor, and may include, but is not limited to, one or more general-purpose processors or special-purpose processors (such as special-purpose processing chips). The processor 602 may be configured to execute instructions stored on the memory, for example, to execute the above-mentioned container scheduling method. The input device 606 may be any type of input device capable of inputting information to the computing device, and may include, but is not limited to, a mouse, a keyboard, a touch screen, a microphone, and / or a remote controller. The output device 608 may be any type of device capable of presenting information, and may include, but is not limited to, a display, a speaker, a video / audio output terminal, a vibrator, and / or a printer.

[0081] The computing device 600 may also include or be connected to a non-transitory storage device 614, which may be any non-transitory storage device that can implement data storage, and may include, but is not limited to, a disk drive, an optical storage device, a solid-state memory, a floppy disk, a flexible disk, a hard disk, a tape, or any other magnetic medium, a compressed disk or any other optical medium, a cache memory, and / or any other storage chip or module, and / or any other medium from which a computer can read data, instructions, and / or code. The computing device 600 may also include a random access memory (RAM) 610 and a read-only memory (ROM) 612. The ROM 612 may store programs, utilities, or processes to be executed in a non-volatile manner. The RAM 610 may provide volatile data storage and store instructions related to the operation of the computing device 600. The computing device 600 may also include a network / bus interface 616 coupled to a data link 618. The network / bus interface 616 can be any type of device or system capable of enabling communication with external devices and / or networks, and can include but is not limited to a modem, a network card, an infrared communication device, a wireless communication device and / or a chipset (such as a Bluetooth™ device, an 802.11 device, a WiFi device, a WiMax device, a cellular communication facility, etc.).

[0082] The present invention may be implemented as any combination of a device, a system, an integrated circuit, and a computer program on a non-transitory computer-readable storage medium. One or more processors may be implemented as an integrated circuit (IC), an application specific integrated circuit (ASIC), or a large scale integrated circuit (LSI), a system LSI, a super LSI, or a super LSI component that performs some or all of the functions described in the present invention.

[0083] The present invention includes the use of software, applications, computer programs or algorithms. The software, applications, computer programs or algorithms can be stored on a non-transitory computer-readable storage medium to enable a computer such as one or more processors to perform the above steps and the steps described in the accompanying drawings. For example, one or more memories store the software or algorithm in executable instructions, and one or more processors can associate a set of instructions to execute the software or algorithm to provide various functions according to the embodiments described in the present invention.

[0084] Software and computer programs (which may also be referred to as programs, software applications, applications, components or code) include machine instructions for a programmable processor and may be implemented in a high-level procedural language, an object-oriented programming language, a functional programming language, a logic programming language, or an assembly language or machine language. The term "computer-readable storage medium" refers to any computer program product, apparatus or device for providing machine instructions or data to a programmable data processor, such as magnetic disks, optical disks, solid-state storage devices, memories and programmable logic devices (PLDs), including computer-readable storage media that receive machine instructions as computer-readable signals.

[0085] For example, computer readable storage media may include dynamic random access memory (DRAM), random access memory (RAM), read-only memory (ROM), electrically erasable read-only memory (EEPROM), compact disk read-only memory (CD-ROM) or other optical disk storage devices, magnetic disk storage devices or other magnetic storage devices, or any other medium that can be used to carry or store the desired computer readable program code in the form of instructions or data structures and can be accessed by a general or special-purpose computer or a general or special-purpose processor. As used in the present invention, disks or discs include compact disks (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, where disks typically reproduce data magnetically, while discs reproduce data optically by lasers. Combinations of the above are also included in the scope of computer readable storage media.

[0086] The subject matter of the present invention is provided as an example of a method, system, and computer-readable storage medium for performing the features described in the present invention. However, in addition to the above features, other features or variations may also be expected. It is expected that any emerging technology that may replace any of the above-mentioned technologies can be used to complete the implementation of the components and functions of the present invention.

[0087] In addition, the above description provides examples without limiting the scope, applicability or configuration set forth in the claims. Without departing from the spirit and scope of the present invention, the functions and arrangements of the elements discussed may be changed. Various embodiments may appropriately omit, replace or add various processes or components. For example, features described with respect to certain embodiments may be combined in other embodiments.

[0088] Similarly, while operations are depicted in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed to achieve desired results. In certain circumstances, multitasking and parallel processing can be advantageous.

Claims

1. A container scheduling method, comprising: Obtaining related containers that have a calling relationship with the scheduled container and the node where the related containers are located; At least according to the calling frequency between the scheduled container and the related container, and the communication delay between each of the multiple candidate nodes and the node where the related container is located, selecting a scheduling node for the scheduled container from the multiple candidate nodes, including: for each of the multiple candidate nodes, scoring based on the product of the calling frequency and the communication delay, and selecting the lowest-scoring candidate node with the lowest scoring result as the scheduling node; as well as The scheduled container is scheduled to the scheduling node.

2. The container scheduling method according to claim 1, wherein: Also includes: Grouping the nodes where the relevant containers are located and the scheduling nodes; Clustering the scheduled container and the related container according to the calling frequency between the scheduled container and the related container; comparing the clustering results and the grouping results; According to the comparison result, it is determined whether to adjust the scheduling node for the scheduled container.

3. The container scheduling method according to claim 2, wherein: The nodes where the related containers are located and the scheduling nodes are grouped at least according to the physical locations and / or the communication delays between the nodes.

4. The container scheduling method according to claim 2, wherein: Based on the predetermined number of clusters for clustering, clustering is performed.

5. The container scheduling method according to claim 2, wherein: Also includes: Determine whether to adjust the scheduling node for the scheduled container according to resource utilization.

6. The container scheduling method according to claim 5, wherein: The scheduling node for the scheduled container is adjusted by a greedy algorithm to balance resource allocation.

7. The container scheduling method according to claim 6, wherein: Adjusting the scheduling node for the scheduled container includes: assuming that one container in one cluster is divided into another cluster each time, and then evaluating the clustering result at least according to the calling frequency between the containers in the one cluster and the calling frequency between the containers in the other cluster; and selecting to divide one container in the one cluster into the other cluster based on the evaluation result.

8. The container scheduling method according to any one of claims 1 to 7, wherein: The calling frequency is the calling frequency per unit time.

9. A container scheduling device, comprising: a memory having instructions stored therein; as well as A processor is configured to execute instructions stored in the memory to perform the container scheduling method according to any one of claims 1 to 8.

10. A computer-readable storage medium comprising computer-executable instructions, wherein when the computer-executable instructions are executed by one or more processors, the one or more processors execute the container scheduling method according to any one of claims 1 to 8.