Cluster container scheduling method, program product, electronic device and storage medium

By constructing a resource demand matrix and a state matrix and using a weighted optimal scheduling strategy, the problem of low resource utilization in cluster container scheduling, especially low GPU resource utilization, is solved, achieving more efficient resource allocation and scheduling accuracy.

CN122195578APending Publication Date: 2026-06-12CHINA MOBILE (SUZHOU) SOFTWARE TECH CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
CHINA MOBILE (SUZHOU) SOFTWARE TECH CO LTD
Filing Date
2026-02-13
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

Existing technologies have low resource utilization in cluster container scheduling, especially low GPU resource utilization, and cannot dynamically adapt to the customized needs of tenants.

Method used

By constructing a resource requirement matrix for container groups and a resource status matrix for cluster nodes, a weight-based optimal scheduling strategy is used to determine the matching degree between container groups and nodes, and to schedule container groups to the most suitable target nodes. GPU resources are dynamically managed using custom resource CRD-GPURequest resource requirements.

Benefits of technology

It improves the utilization of cluster resources, especially GPU resources, and can dynamically adapt to the task requirements at different stages, reduce resource contention, and improve scheduling accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122195578A_ABST
    Figure CN122195578A_ABST
Patent Text Reader

Abstract

The application discloses a cluster container scheduling method, a program product, an electronic device and a storage medium. The cluster container scheduling method comprises the following steps: determining a resource requirement matrix of a container group to be scheduled; determining a matching degree of the container group to be scheduled and each cluster node according to the resource requirement matrix of the container group to be scheduled, a weight value of the container group to be scheduled and a resource state matrix of each cluster node; the weight value at least represents a task priority of the container group to be scheduled; determining a target node corresponding to the container group to be scheduled according to the matching degree, so that the container group to be scheduled is run in the target node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer technology, and in particular to a cluster container scheduling method, program product, electronic device and storage medium. Background Technology

[0002] When scheduling containers in a cluster, related technologies typically select the nearest node as the container deployment node, or prioritize nodes with more remaining resources as container deployment nodes, resulting in low cluster resource utilization. Summary of the Invention

[0003] In view of this, embodiments of the present invention provide a cluster container scheduling method, a program product, an electronic device, and a storage medium.

[0004] The technical solution of this invention is implemented as follows: On one hand, embodiments of the present invention provide a cluster container scheduling method, the method comprising: Determine the resource requirement matrix of the container group to be scheduled; Based on the resource requirement matrix of the container group to be scheduled, the weight value of the container group to be scheduled, and the resource status matrix of each cluster node, the matching degree between the container group to be scheduled and each cluster node is determined; the weight value at least represents the task priority of the container group to be scheduled. The target node corresponding to the container group to be scheduled is determined based on the matching degree, so that the container group to be scheduled is run on the target node.

[0005] In the above scheme, determining the resource requirement matrix of the container group to be scheduled includes: Based on the resource demand of the container group to be scheduled within a preset time period, a resource demand matrix of the container group to be scheduled is constructed.

[0006] In the above scheme, the method further includes: Obtain resource requirement information for multiple resource metrics input by the tenant; Build custom resource request parameters based on the resource requirement information; The request parameters are standardized to obtain the resource requirements of multiple resource indicators.

[0007] In the above scheme, the method further includes: Based on the remaining allocable resources of multiple resource indicators corresponding to the task processing node at least two unit time periods, construct the resource status matrix of the cluster nodes.

[0008] In the above scheme, determining the matching degree between the container group to be scheduled and each cluster node based on the resource requirement matrix of the container group to be scheduled, the weight value of the container group to be scheduled, and the resource status matrix of each cluster node includes:

[0009] Among them, y i,j Let r be the matching degree between the i-th container group to be scheduled and the j-th cluster node. i Let w be the resource requirement matrix of the i-th container group to be scheduled. i Let s be the weight value of the i-th container group to be scheduled. j For the resource state matrix of the j-th cluster node, Let be the average of the resource requirements of multiple resource indicators for the i-th container group to be scheduled. Let r be the average resource utilization rate of multiple resource indicators for the j-th cluster node. jk Let s be the value of the k-th resource indicator in the resource demand matrix. jk This represents the value of the k-th resource indicator in the resource status matrix.

[0010] In the above scheme, determining the target node corresponding to the container group to be scheduled based on the matching degree includes: The matching score between the container group to be scheduled and each cluster node is determined based on the matching degree. The cluster node with the highest matching score is identified as the target node.

[0011] In the above scheme, the resource is the graphics processing unit (GPU) resource.

[0012] On the other hand, embodiments of this application also provide a computer program product, including a computer program that, when executed by a processor, implements the steps of the above-described cluster container scheduling method.

[0013] On the other hand, embodiments of the present invention provide an electronic device including a processor and a memory interconnected thereto, wherein the memory is used to store a computer program, the computer program including program instructions, and the processor is configured to invoke the program instructions to execute the steps of the cluster container scheduling method provided in the first aspect of the present invention.

[0014] On the other hand, embodiments of the present invention provide a computer-readable storage medium, comprising: the computer-readable storage medium storing a computer program. When the computer program is executed by a processor, it implements the steps of the cluster container scheduling method provided in the first aspect of the present invention.

[0015] The solution of this invention involves determining the resource requirement matrix of the container group to be scheduled; determining the matching degree between the container group to be scheduled and each cluster node based on the resource requirement matrix, the weight value of the container group to be scheduled, and the resource status matrix of each cluster node; the weight value at least represents the task priority of the container group to be scheduled; and determining the target node corresponding to the container group to be scheduled based on the matching degree, so that the container group to be scheduled runs on the target node. This invention uses a weight-based optimal scheduling strategy to schedule the container group to be scheduled to the most suitable target node, improving scheduling accuracy and comprehensively considering resource requirements, thereby improving resource utilization. Attached Figure Description

[0016] Figure 1 This is a schematic diagram of a cluster architecture provided in an embodiment of the present invention; Figure 2 This is a schematic diagram illustrating the implementation process of a cluster container scheduling method provided in an embodiment of the present invention; Figure 3 This is a schematic diagram of an electronic device provided in an embodiment of the present invention. Detailed Implementation

[0017] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0018] Container cluster management system (Kubernetes, K8s) is a container-based cluster management platform. A cluster managed by K8s deploys multiple nodes and multiple container groups. When executing processing tasks, the container group can carry the task to be processed and be scheduled to the corresponding node to run the task. Therefore, how to determine the corresponding node for the container group to be scheduled from multiple nodes becomes a key issue.

[0019] The relevant technology uses Kube-Scheduler to determine the corresponding node for a group of containers to be scheduled from multiple nodes. Specifically, Kube-Scheduler is the scheduler officially provided by Kubernetes. When scheduling containers in a cluster, this technology collects the average utilization of the Central Processing Unit (CPU) and memory, as well as CPU resource consumption and memory consumption of each node in the cluster. It calculates the similarity of CPU-memory utilization among nodes based on these metrics. Then, it evaluates the nodes in the cluster based on the similarity of CPU, memory, and CPU-memory utilization and selects the optimal node as the container deployment node. This solution, which schedules based on CPU usage, has two drawbacks: first, the number of resource metrics is too small to fully meet the customized container scheduling needs of tenants; second, it cannot dynamically change the container scheduling strategy according to tenant requirements.

[0020] In addition, when scheduling GPU cluster containers, the relevant technologies determine whether the idle Graphics Processing Unit (GPU) resources in the cluster meet the resource requirements specified in the instruction to create the GPU container. If the requirements are not met, the container management system suspends the scheduling task until the requirements are met before executing it. The execution progress and calculation results can proceed as planned and will not be affected by other computing tasks. However, this solution does not solve the problem of low GPU resource utilization.

[0021] To address the shortcomings of the aforementioned related technologies, this invention provides a cluster container scheduling method. Specific embodiments are described below to illustrate the technical solution described in this invention.

[0022] Figure 1 This is a schematic diagram of a cluster architecture provided by an embodiment of the present invention. Within a node, the GPU device manager, which shares GPU device information, interacts with the kubelet of Kubernetes. Information such as the number of GPU devices and the size of their video memory is reported to the kubelet as extended resources. The kubelet then reports this information to the apiserver, updating the GPU device resource status of the cluster nodes in the node status. The apiserver is connected to the Controller and scheduler.

[0023] This invention provides a custom resource CRD-GPURequest to store tenant requests for multi-metric GPU resources. The controller listens for the Create / Update / Delete events of the CRD GPURequest to dynamically manage the requirements of a GPURequest. When a tenant enters GPU usage requirements in the console, the listener constructs the CRD resource for the GPURequest upon receiving the request.

[0024] For example, a schematic diagram of a CDR resource is shown below: 1. apiVersion: k8s.io / v1alpha1 defines the API version of the resource. 2. metadata: metadata 3. name: <string> 4.spec: 5. Resources: 6. requests: 7. ecloud.gpu / gpu-core: 10 cores 8. ecloud.gpu / gpu-memory: 4GB video memory 9. ecloud.gpu / gpu-clock: 4GB graphics card clock speed 10. ecloud.gpu / gpu-temp: 50°C GPU temperature 11. ecloud.gpu / task-weight: 7 GPU task priority 12. ecloud.gpu / task-use-time:1h GPU usage time The Controller tunes the GPURequest request parameters. Upon receiving a request, it determines the scheduling metrics for the extended scheduler based on the parameters in the CRD and the GPU usage data of the node obtained in real time from GPU monitoring.

[0025] The extended scheduler determines the weight of each pod to be scheduled based on the characteristics and requirements of the scheduling task. It then uses a weight-based coefficient correlation optimization strategy to select nodes that meet the GPU requirements, scheduling the pods to the most suitable nodes and binding the pods to the nodes. This improves GPU utilization, comprehensively considers resource requirements, reduces resource contention, and adapts to task requirements at different stages and complex GPU resource application scenarios.

[0026] In a Kubernetes cluster, a Pod is the foundation of all business types and the smallest unit managed by Kubernetes. It is a combination of one or more containers. One or more containers can run within a Pod, and the containers share the same network environment as the Pod. Kubernetes uses the Pod as the smallest unit for scheduling, scaling, resource sharing, and lifecycle management.

[0027] Container groups can be pods in Kubernetes. A pod is the smallest unit of work in a Kubernetes cluster. One or more containers can run within a pod, and containers share the same network environment as the pod.

[0028] Figure 2 This is a schematic diagram illustrating the implementation flow of a cluster container scheduling method provided in an embodiment of the present invention. The execution subject of the cluster container scheduling method is an electronic device. (Reference) Figure 2 Cluster container scheduling methods include: S201, determine the resource requirement matrix of the container group to be scheduled.

[0029] In a Kubernetes cluster, a container group can be referred to as a pod. A pod contains an application container (or in some cases, multiple containers), and a pod container group represents a single running instance of an application in Kubernetes. This instance may consist of a single container or several tightly coupled containers. In the embodiments of this application, each container group corresponds to at least one processing task; that is, a container group can host at least one processing task to run.

[0030] Based on the resource requirements of the processing tasks corresponding to the pod to be scheduled, the resource requirements of the pod to be scheduled can be determined, and then a resource requirement matrix for the pod to be scheduled can be constructed. The resource requirement matrix includes the required values ​​of multiple resource indicators. For example, taking GPU resources as an example, resource indicators include the number of cores, video memory, GPU frequency, GPU usage time, etc.

[0031] The resource requirements of a pod to be scheduled can be predicted based on the historical resource usage of the container group to be scheduled, or they can be entered by the user in real time.

[0032] S202, based on the resource requirement matrix of the container group to be scheduled, the weight value of the container group to be scheduled, and the resource status matrix of each cluster node, determine the matching degree between the container group to be scheduled and each cluster node; the weight value at least represents the task priority of the container group to be scheduled.

[0033] The cluster consists of at least two nodes, and the resource status matrix for each node can be determined based on the remaining allocable resources. Similarly, the resource status matrix also includes the required values ​​for multiple resource metrics. For example, taking GPU resources as an example, resource metrics include the number of cores, video memory, GPU frequency, and GPU usage time.

[0034] The weight value of the container group to be scheduled can be determined based on the priority of the processing tasks of the container group to be scheduled. The task priority can be manually entered by the user or automatically determined according to the task type.

[0035] In this embodiment of the invention, a weighted coefficient correlation method is used to determine the target node most suitable for the container group to be scheduled. Based on the resource requirement matrix and weight value of the container group to be scheduled, and the resource status matrix of each cluster node, the matching degree calculation formula is used to calculate the matching degree between the container group to be scheduled and each cluster node.

[0036] For example, the higher the weight value of the container group to be scheduled, the more remaining resources the cluster nodes have, and the higher its matching degree.

[0037] The matching degree between cluster nodes and container groups to be scheduled is determined by at least one method. Specifically, at least one method may include: Euclidean distance and / or cosine similarity, that is, determining the Euclidean distance and / or cosine similarity between the resource state matrix of the cluster nodes and the resource demand matrix of the container groups to be scheduled, and substituting the weight values ​​into the calculation formula of Euclidean distance and / or cosine similarity.

[0038] By incorporating the weight values ​​of the container groups to be scheduled into the matching degree calculation, node resources can be allocated rationally based on the task status of each container group, resulting in more accurate scheduling. This approach comprehensively considers resource requirements, reduces resource contention, and adapts to task requirements at different stages and complex resource application scenarios.

[0039] S203, determine the target node corresponding to the container group to be scheduled based on the matching degree, so that the container group to be scheduled is run on the target node.

[0040] For example, the cluster node with the highest match to the container group to be scheduled can be used as the target node for running the container group to be scheduled.

[0041] Once a target node is identified for a container group to be scheduled, that target node is used as the final cluster node to which the container group to be scheduled is bound, so that the container group to be scheduled can run on that target node and execute the processing tasks corresponding to the container group to be scheduled.

[0042] The solution of this invention involves determining the resource requirement matrix of the container group to be scheduled; determining the matching degree between the container group to be scheduled and each cluster node based on the resource requirement matrix, the weight value of the container group to be scheduled, and the resource status matrix of each cluster node; the weight value at least represents the task priority of the container group to be scheduled; and determining the target node corresponding to the container group to be scheduled based on the matching degree, so that the container group to be scheduled runs on the target node. This invention uses a weight-based optimal scheduling strategy to schedule the container group to be scheduled to the most suitable target node, improving scheduling accuracy and comprehensively considering resource requirements, thereby improving resource utilization.

[0043] Before determining the target node, at least one candidate node that meets the resource requirements of the container group to be scheduled can be selected from the cluster nodes based on the remaining allocable resources of each cluster node. Based on the resource requirements of the container group to be scheduled and the remaining allocable resources of each candidate node, the target node of the container group to be scheduled can be determined from the candidate nodes.

[0044] Specifically, in the embodiments of this application, the remaining allocable resources corresponding to each cluster node and the required resources corresponding to the container group to be scheduled can be obtained through the above embodiments, so as to select at least one cluster node whose remaining allocable resources are not less than the required resources corresponding to the container group to be scheduled as a candidate node.

[0045] First, filter out certain nodes where the remaining allocable resources may be less than the resource requirement, to obtain candidate nodes where the remaining allocable resources are all greater than the resource requirement. This improves the accuracy of subsequent target node selection and reduces the computational load of subsequent target node selection.

[0046] In one embodiment, determining the resource requirement matrix of the container group to be scheduled includes: Based on the resource demand of the container group to be scheduled within a preset time period, a resource demand matrix of the container group to be scheduled is constructed.

[0047] The preset time period can be pre-set or entered by the tenant. In this embodiment, the preset time period can be any time period, for example, a day or a month can be used as the preset time period.

[0048] Taking GPU resources as an example, multiple resource metrics include the number of cores, video memory, GPU frequency, and GPU usage time.

[0049] The resource requirements of a Pod are quantified using metrics obtained from tenant demand and GPU usage data acquired through cluster monitoring. Assume the feature matrix of the resource requirements for each GPU Pod can be represented as follows:

[0050] in, This indicates the number of cores required by the GPU Pod. This indicates the GPU memory requirements of the Pod. Indicates the time required for the task. Indicates the importance of GPU tasks. This is the resource requirement matrix for the i-th GPU Pod.

[0051] In one embodiment, the method further includes: Obtain resource requirement information for multiple resource metrics input by the tenant; Build custom resource request parameters based on the resource requirement information; The request parameters are standardized to obtain the resource requirements of multiple resource indicators.

[0052] Tenants can fill in resource requirement information for multiple resource metrics in the console. This embodiment of the invention designs a custom resource CRD to store tenants' requirements when requesting to use resources with multiple metrics. When the listener receives a tenant's resource usage request, it constructs the CRD resource. Z-score standardization can be used to convert the value of each metric into a value with a mean of 0 and a standard deviation of 1.

[0053] For example, taking GPU resources as an example, this embodiment of the invention designs a custom resource CRD-GPURequest resource requirement to store the requirements of tenants when requesting the use of multi-metric GPU resources. The controller listens for the Create / Update / Delete events of the CRD GPURequest to dynamically manage the requirements of a GPURequest. When a tenant fills in the GPU usage requirement parameters in the console, the listener constructs the CRD resource for the GPURequest when it receives the GPU resource usage requirement.

[0054] In one example, the resource requirements for multiple resource metrics in a CRD resource are shown below: ecloud.gpu / gpu-core: 10 cores ecloud.gpu / gpu-memory: 4GB video memory ecloud.gpu / gpu-clock: 4GB graphics card clock speed ecloud.gpu / gpu-temp: 50°C GPU temperature ecloud.gpu / task-weight: 7 GPU task priority ecloud.gpu / task-use-time:1h GPU usage time Based on tenant needs, quantify metrics and establish a weight model to determine metric weights. Use Z-score standardization to convert each metric value into a value with a mean of 0 and a standard deviation of 1. Map the standardized metric feature values ​​to the weight value range. The mapping function can be determined according to specific needs. Task requirements may change, therefore the weight model needs to be dynamically adjusted, and task features need to be re-evaluated and weight values ​​updated periodically.

[0055] This application proposes to determine the weight of each GPU performance metric based on multiple custom GPU performance metrics provided by the tenant, using weighted summation and the characteristics of the scheduling task. It then uses a weighted coefficient correlation method to optimize scheduling to the most suitable node, thereby improving GPU utilization. This approach comprehensively considers resource requirements, reduces resource contention, adapts to task requirements at different stages and complex GPU resource application scenarios, and enables customized scheduling based on specific application scenarios.

[0056] In one embodiment, the method further includes: Based on the remaining allocable resources of multiple resource indicators corresponding to the task processing node at least two unit time periods, construct the resource status matrix of the cluster nodes.

[0057] For example, the feature matrix of GPU metrics on each Node in the cluster can be represented as a resource state matrix as follows:

[0058] Each item in the resource status matrix represents the remaining allocable resources or resource status for a certain resource indicator.

[0059] In one embodiment, determining the matching degree between the container group to be scheduled and each cluster node based on the resource demand matrix of the container group to be scheduled, the weight value of the container group to be scheduled, and the resource status matrix of each cluster node includes:

[0060] Among them, y i,j Let r be the matching degree between the i-th container group to be scheduled and the j-th cluster node. i Let w be the resource requirement matrix of the i-th container group to be scheduled. i Let s be the weight value of the i-th container group to be scheduled. j For the resource state matrix of the j-th cluster node, Let be the average of the resource requirements of multiple resource indicators for the i-th container group to be scheduled. Let r be the average resource utilization rate of multiple resource indicators for the j-th cluster node. jk Let s be the value of the k-th resource indicator in the resource demand matrix. jk This represents the value of the k-th resource indicator in the resource status matrix.

[0061] Where, assuming k=4, then:

[0062]

[0063] In one embodiment, determining the target node corresponding to the container group to be scheduled based on the matching degree includes: The matching score between the container group to be scheduled and each cluster node is determined based on the matching degree. The cluster node with the highest matching score is identified as the target node.

[0064] The matching degree between the resource requirements of a Pod and the resource utilization of each Node is calculated using the above formula. The matching score between each Pod to be scheduled and a Node can be represented by the following formula. This finds the most suitable Node for each Pod to be scheduled.

[0065]

[0066] The higher the matching score between each Pod and Node to be scheduled, the better the match between the Pod and the Node, and the more suitable the Pod is to be scheduled onto that Node. Conversely, the lower the score, the less suitable the Pod is to be scheduled onto that Node. Assume the set of all Pods to be scheduled in the cluster is P{ , ... }, where the candidate set of resource nodes for a given Pod to be scheduled is N{ , ..., The resources in the cluster are abstracted into clusters based on nodes.

[0067] The Pod scheduling problem can be described as follows:

[0068]

[0069]

[0070] in, The values ​​include 0 and 1. A value of 0 indicates that the Pod is not in the candidate set of nodes. above, A value of 1 indicates that the Pod is on the node. Above. The second formula indicates that each scheduled Pod can only be scheduled onto one Node, and the third formula indicates the target node to which the Pod to be scheduled will ultimately be scheduled.

[0071] An example of a weighted correlation coefficient-based optimal scheduling strategy is shown below: z-score(metric...) Standardized metrics weight(metric..) weight value FOR i=0;i <len( ) ;i++{ FOR j=0;j <len( );j++{ Calculate(score, wight...) if score(j) == Max(score) { =1 return else if score(j) != max(score) If node j is the node with the highest score, then select that node as the target node. =0 return 0 This invention proposes a Resource Requirement Decision (CRD) constructed using multiple custom GPU performance metrics provided by tenants. A listener can tune GPU usage in real time, and an extended scheduler determines the weight of each GPU performance metric based on the characteristics and requirements of the scheduled tasks. This approach comprehensively considers resource requirements, reduces resource contention, and adapts to task demands at different stages and complex GPU resource application scenarios. A weighted correlation coefficient-based optimization scheduling strategy is used to schedule to the most suitable node, improving GPU utilization. Customized scheduling based on specific application scenarios enhances system flexibility.

[0072] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present invention.

[0073] It should be understood that, when used in this specification and the appended claims, the terms "comprising" and "including" indicate the presence of the described features, integrals, steps, operations, elements and / or components, but do not exclude the presence or addition of one or more other features, integrals, steps, operations, elements, components and / or collections thereof.

[0074] It should be noted that the technical solutions described in the embodiments of the present invention can be combined arbitrarily without conflict.

[0075] In addition, in the embodiments of the present invention, "first", "second", etc. are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0076] In practical applications, the method steps of the above embodiments can be implemented by processors in electronic devices, such as central processing units (CPUs), digital signal processors (DSPs), microcontroller units (MCUs), or field-programmable gate arrays (FPGAs).

[0077] To implement the methods of the embodiments of this application, an electronic device is also provided. Figure 3 This is a schematic diagram of the hardware structure of the electronic device according to an embodiment of this application, as shown below. Figure 3 As shown, the electronic device includes: A communication interface enables information exchange with other devices, such as network devices. The processor, connected to the communication interface, enables information interaction with other devices and, when running a computer program, executes the methods provided by one or more technical solutions on the electronic device side. The computer program is stored in memory.

[0078] Of course, in practical applications, the various components in an electronic device are coupled together through a bus system. It can be understood that the bus system is used to achieve communication and connection between these components. In addition to the data bus, the bus system also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in... Figure 3 The general will label all buses as bus systems.

[0079] The memory in this application embodiment is used to store various types of data to support the operation of the electronic device. Examples of such data include any computer program used to operate on the electronic device.

[0080] It is understood that memory can be volatile or non-volatile, or both. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); magnetic surface memory can be disk storage or magnetic tape storage. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), SyncLink Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM).The memories described in the embodiments of this application are intended to include, but are not limited to, these and any other suitable types of memories.

[0081] The methods disclosed in the embodiments of this application can be applied to a processor or implemented by a processor. The processor may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by integrated logic circuits in the processor's hardware or by instructions in software form. The processor may be a general-purpose processor, a DSP, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The processor can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. A general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor. The software modules may be located in a storage medium, which is located in memory. The processor reads the program from the memory and, in conjunction with its hardware, completes the steps of the aforementioned method.

[0082] Optionally, when the processor executes the program, it implements the corresponding processes implemented by the electronic device in the various methods of the embodiments of this application. For the sake of brevity, these will not be described in detail here.

[0083] In an exemplary embodiment, this application also provides a computer program product, including a computer program that can be executed by a processor of an electronic device to perform the steps described in the method of this application embodiment.

[0084] In an exemplary embodiment, this application also provides a storage medium, namely a computer storage medium, specifically a computer-readable storage medium, such as a first memory storing a computer program, which can be executed by a processor of an electronic device to complete the steps described in the aforementioned method. The computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM.

[0085] In the several embodiments provided in this application, it should be understood that the disclosed electronic devices and methods can be implemented in other ways. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple units or components may be combined, or integrated into another system, or some features may be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the various components shown or discussed may be through some interfaces, and the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.

[0086] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the units may be selected to achieve the purpose of this embodiment according to actual needs.

[0087] In addition, each functional unit in the various embodiments of this application can be integrated into one processing unit, or each unit can be a separate unit, or two or more units can be integrated into one unit; the integrated unit can be implemented in hardware or in the form of hardware plus software functional units.

[0088] Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media that can store program code, such as mobile storage devices, ROM, RAM, magnetic disks, or optical disks.

[0089] Alternatively, if the integrated units described above are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, or the parts that contribute to related technologies, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, ROM, RAM, magnetic disks, or optical disks.

[0090] It should be noted that the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.

[0091] In addition, in this application example, "first," "second," etc., are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0092] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.< / string>

Claims

1. A cluster container scheduling method, characterized in that, The method includes: Determine the resource requirement matrix of the container group to be scheduled; Based on the resource requirement matrix of the container group to be scheduled, the weight value of the container group to be scheduled, and the resource status matrix of each cluster node, the matching degree between the container group to be scheduled and each cluster node is determined; the weight value at least represents the task priority of the container group to be scheduled. The target node corresponding to the container group to be scheduled is determined based on the matching degree, so that the container group to be scheduled is run on the target node.

2. The method according to claim 1, characterized in that, The determination of the resource requirement matrix for the container group to be scheduled includes: Based on the resource demand of the container group to be scheduled within a preset time period, a resource demand matrix of the container group to be scheduled is constructed.

3. The method according to claim 2, characterized in that, The method further includes: Obtain resource requirement information for multiple resource metrics input by the tenant; Build custom resource request parameters based on the resource requirement information; The request parameters are standardized to obtain the resource requirements of multiple resource indicators.

4. The method according to claim 1, characterized in that, The method further includes: Based on the remaining allocable resources of multiple resource indicators corresponding to the task processing node at least two unit time periods, construct the resource status matrix of the cluster nodes.

5. The method according to claim 1, characterized in that, The step of determining the matching degree between the container group to be scheduled and each cluster node based on the resource requirement matrix of the container group to be scheduled, the weight value of the container group to be scheduled, and the resource status matrix of each cluster node includes: Among them, y i,j Let r be the matching degree between the i-th container group to be scheduled and the j-th cluster node. i Let w be the resource requirement matrix of the i-th container group to be scheduled. i Let s be the weight value of the i-th container group to be scheduled. j For the resource state matrix of the j-th cluster node, Let be the average of the resource requirements of multiple resource indicators for the i-th container group to be scheduled. Let r be the average resource utilization rate of multiple resource indicators for the j-th cluster node. jk Let s be the value of the k-th resource indicator in the resource demand matrix. jk This represents the value of the k-th resource indicator in the resource status matrix.

6. The method according to claim 1, characterized in that, Determining the target node corresponding to the container group to be scheduled based on the matching degree includes: The matching score between the container group to be scheduled and each cluster node is determined based on the matching degree. The cluster node with the highest matching score is identified as the target node.

7. The method according to claim 1, characterized in that, The resources mentioned are graphics processing unit (GPU) resources.

8. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the steps of the cluster container scheduling method as described in any one of claims 1 to 7.

9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the cluster container scheduling method as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, the computer program including program instructions that, when executed by a processor, cause the processor to perform the steps of the cluster container scheduling method as described in any one of claims 1 to 7.