WO2025243162A1 - 一种调度方法、系统、计算机程序产品及存储介质 - Google Patents

一种调度方法、系统、计算机程序产品及存储介质

Info

Publication number
WO2025243162A1
WO2025243162A1 PCT/IB2025/055117 IB2025055117W WO2025243162A1 WO 2025243162 A1 WO2025243162 A1 WO 2025243162A1 IB 2025055117 W IB2025055117 W IB 2025055117W WO 2025243162 A1 WO2025243162 A1 WO 2025243162A1
Authority
WO
WIPO (PCT)
Prior art keywords
management system
cluster management
task
target
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/IB2025/055117
Other languages
English (en)
French (fr)
Inventor
陈月文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloud Intelligence Singapore Holding Pvt Ltd
Original Assignee
Cloud Intelligence Singapore Holding Pvt Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cloud Intelligence Singapore Holding Pvt Ltd filed Critical Cloud Intelligence Singapore Holding Pvt Ltd
Publication of WO2025243162A1 publication Critical patent/WO2025243162A1/zh
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • This disclosure relates to the field of cloud computing technology, and in particular to a scheduling method, system, computer program product, and storage medium.
  • High-performance computing (HPC) clusters typically use the Slurm system as a job scheduling and resource management system.
  • Kubernetes or k8s, is a container-based cluster management system used for container orchestration and management.
  • Kubernetes has powerful container orchestration and management capabilities, which can automate the deployment, scaling, and fault recovery of applications. It provides a more flexible and automated resource management mechanism that can dynamically adjust and allocate resources according to the needs of applications.
  • Various aspects of this disclosure provide a scheduling method, system, computer program product, and storage medium for extending container-based cluster management systems to more types of clusters.
  • This disclosure provides a scheduling method applicable to a container-based first cluster management system; a logical resource group partitioned by a second cluster management system on a target cluster is mapped to a virtual node in the first cluster management system.
  • the method includes: creating a target container group for a task requirement submitted by a user in the first cluster management system; scheduling the target container group to a target virtual node that meets the task requirement; if the target virtual node is mapped to a target logical resource group partitioned in the second cluster management system, submitting a work task that meets the task requirement to the second cluster management system, so that the second cluster management system schedules the work task to be executed in the target logical resource group in the target cluster; wherein the work task conforms to the task format required by the second cluster management system.
  • a target container group is created. This includes: in response to detecting that the user has created a custom workload resource based on the task requirements, creating a target container group for the custom workload resource; wherein the custom workload resource contains the information items required in the task format required by the second cluster management system.
  • the first cluster management system is provided with a controller associated with the custom workload resource; in response to detecting that the user has created a custom workload resource based on the task requirements, creating a target container group for the custom workload resource includes: using the controller to monitor the custom workload resources appearing in the first cluster management system; using the controller to create a target container group for the monitored custom workload resources.
  • scheduling the target container group to a target virtual node that meets the task requirements includes: using the controller to specify the target virtual node to be scheduled in the target container group, so as to schedule the target container group to the target virtual node.
  • the first cluster management system is provided with a logical resource group manager, and the method further includes: using the logical resource group manager to monitor the addition and deletion events of logical resource groups in the second cluster management system; and creating/deleting virtual nodes in the first cluster management system according to the monitored addition and deletion events.
  • the method also includes: using the logical resource group manager to monitor the resource level status of logical resource groups in the second cluster management system; and updating the resource level status of the virtual node in the first cluster management system that is mapped to the logical resource group when the resource level status of any logical resource group changes.
  • the method also includes: during the process of the user submitting the task request in the first cluster management system, displaying the resource level status of each virtual node to the user, so that the user can indicate the virtual node to be used in the task request based on the resource level status, as the target virtual node.
  • the second cluster management system is provided with a proxy component for communicating with the first cluster management system; submitting a work task that meets the task requirements to the second cluster management system includes: using the target virtual node to generate a work task that conforms to the task format required by the second cluster management system based on the task requirements, wherein the work task is instructed to be executed in the target logical resource group; using the target virtual node to submit the work task to the proxy component in the second cluster management system, so that the proxy component submits the work task to the task scheduler in the second cluster management system for task scheduling.
  • the method further includes: obtaining the execution status of the task from the second cluster management system using the target virtual node; and executing the task according to the obtained execution status using the target virtual node.
  • the logical resource groups divided in the cluster management system used on the other clusters are also mapped as virtual nodes in the first cluster management system, so as to support the first cluster management system to submit work tasks in the corresponding task format to the cluster management system used on the other clusters, so that the work tasks are scheduled to be executed in the logical resource groups in the other clusters.
  • the second cluster management system adopts the Slurm system, the load sharing scheduling system or the portable batch processing system, and the target cluster adopts the high-performance computing cluster.
  • the target container group does not occupy physical resources, and the virtual nodes in the first cluster management system also do not occupy physical resources.
  • This disclosure also provides a cluster management system, which is container-based.
  • the logical resource groups divided by the second cluster management system used on the target cluster are mapped to virtual nodes in the cluster management system.
  • the cluster management system is used to execute the aforementioned scheduling method to submit work tasks in accordance with the required task format to the second cluster management system based on the task requirements submitted by the user in the cluster management system, so that the work tasks are executed in the target logical resource groups in the target cluster.
  • This disclosure also provides a computer-readable storage medium for storing a computer program, which, when executed by one or more processors, causes the one or more processors to perform the aforementioned scheduling method.
  • This disclosure also provides a computer program product, including a computer program that, when executed by one or more processors, causes the one or more processors to perform the aforementioned scheduling method.
  • the second cluster management system originally used on the target cluster can be retained.
  • the physical resources in the target cluster do not need to be managed by the container-based first cluster management system.
  • the first cluster management system acts as the control plane and is connected to the second cluster management system originally used on the target cluster through a bridging mechanism.
  • the logical resource groups divided by the second cluster management system on the target cluster can be mapped to virtual nodes in the first cluster management system.
  • the work tasks recognized by the second cluster management system can be abstracted into container groups in the first cluster management system. Based on this, users can submit task requirements in the first cluster management system.
  • the first cluster management system can create and schedule container groups.
  • the second cluster management system can take over the task requirements submitted by the user in the first cluster management system and complete the processing on the target cluster. Accordingly, the second cluster management system can take over the task requirements submitted by the user in the first cluster management system and complete the processing on the target cluster.
  • the container cluster management system can seamlessly cover a wider range of cluster types. (See attached diagram.)
  • Figure 1 is a flowchart illustrating a scheduling method provided in an exemplary embodiment of this disclosure
  • Figure 2 is a logical schematic diagram of a scheduling method provided in an exemplary embodiment of the present disclosure
  • Figure 3 is a logical schematic diagram of an optional implementation of a scheduling method provided in an exemplary embodiment of the present disclosure
  • Figure 4 is an optional logic diagram of a scheduling method provided in an exemplary embodiment of the present disclosure.
  • FIG. 5 is a schematic diagram of the structure of a cluster management system provided in another exemplary embodiment of this disclosure. Detailed Description
  • Kubernetes or k8s, is a container-based cluster management system used for container orchestration and management.
  • Kubernetes has powerful container orchestration and management capabilities, which can automate the deployment, scaling and fault recovery of applications. It provides a more flexible and automated resource management mechanism that can dynamically adjust and allocate resources according to the needs of applications.
  • Slurm short for Simple Linux Utility for Resource Management, is an open-source cluster management and job scheduling system used for task scheduling and resource management in high-performance computing (HPC) environments.
  • HPC high-performance computing
  • High performance computing is a technology that utilizes high-performance servers (such as supercomputers) to achieve parallel computing, including its theory, methods, techniques and applications.
  • An HPC cluster can be understood as a cluster of servers capable of performing high-performance computing.
  • the servers in an HPC cluster are usually the high-performance servers mentioned above.
  • Slurm is typically used as the job scheduler and resource management system on HPC clusters.
  • the cluster management system used on HPC clusters is not limited to Slurm, but also includes many other system types, such as Load Sharing Facility (LSF) or Portable Batch System (PBS).
  • LSF Load Sharing Facility
  • PBS Portable Batch System
  • the inventors proposed to cover various types of clusters through a cluster management system familiar to users, so as to reduce the learning cost for users.
  • the inventors also found in the research process that since different types of clusters usually have specific hardware and network architectures, the native scheduler in the unified cluster management system cannot be directly applied to various types of clusters. Accordingly, how to ensure that the unified cluster management system can be applied to various types of clusters has become an urgent technical problem to be solved.
  • this embodiment proposes a scheduling method, which selects a container-based cluster management system as a unified cluster management system, and proposes to retain the original cluster management system used on various types of clusters, while using the container-based cluster management system as the control plane to adaptively connect the original cluster management system used on various types of clusters.
  • Figure 1 is a flowchart of a scheduling method provided by an exemplary embodiment of the present disclosure.
  • the method can be executed by a container-based cluster management system, which can be implemented as software, hardware or a combination of software and hardware.
  • the container-based cluster management system can be Kubemetes mentioned above. Of course, this embodiment is not limited to this. Other container-based scheduling and resource management systems can also be used as the execution subject in this embodiment. No further examples will be given here.
  • container groups are used as the basic deployment unit.
  • the scheduling principle is roughly as follows: containers can be placed into container groups (Pods), and the container groups can be scheduled to appropriate nodes to perform workloads.
  • Other types of cluster management systems typically divide the physical resources of the cluster into logical resource groups and schedule received tasks to appropriate logical resource groups so that the workload can be executed using the physical resources occupied by the logical resource groups.
  • the logical resource groups divided in the aforementioned Slurm system are usually partitions, while the logical resource groups divided in the aforementioned LSP system are usually queues. No further examples will be given here.
  • this embodiment proposes that the logical resource groups divided in other types of cluster management systems can be abstracted as virtual nodes in container-based cluster management systems; and the work tasks that need to be scheduled in other types of cluster management systems can be abstracted as container groups in container-based cluster management systems.
  • the scheduling in container-based cluster management systems is carried out according to its own scheduling principle, which can reflect which logical resource group should be scheduled to in other types of cluster management systems, thereby ensuring that container-based cluster management systems can provide accurate scheduling guidance to other types of cluster management systems.
  • the nodes in the first cluster management system can typically be physical machines or virtual machines.
  • the virtual node proposed in this embodiment has the relevant attributes of the nodes in the first cluster management system, but unlike the first cluster management system, the virtual node proposed in this embodiment does not occupy physical resources. That is, after the first cluster management system creates the virtual node, it does not need to allocate physical resources to the virtual node.
  • the virtual node proposed in this embodiment will not occupy physical resources in the target cluster, nor will it occupy physical resources managed by the first cluster management system.
  • the virtual node proposed in this embodiment can be understood as a process/thread.
  • FIG. 2 is a logical schematic diagram of a scheduling method provided in an exemplary embodiment of the present disclosure.
  • the container-based cluster management system will be described as a first cluster management system, and any cluster to be covered will be used as an example to describe the technical solution.
  • the cluster of the example will be described as the target cluster, and the cluster management system used on the cluster of the example will be described as a second cluster management system.
  • the target cluster can be a high-performance computing cluster (HPC) cluster
  • the second cluster management system used on the target cluster can be a slurm system, an LSP system or a PBS system, etc.
  • the first cluster management system in this embodiment mainly serves as the control plane. Therefore, in this embodiment, the physical resources in the target cluster do not need to be managed by the first cluster management system, but can remain managed by the second cluster management system that it originally uses. That is, the physical nodes in the target cluster do not need to be registered with the first cluster management system.
  • the method may include the following steps.
  • Step 100 Create a target container group for the task requirements submitted by the user in the first cluster management system.
  • Step 101 Schedule the target container group to the target virtual node that meets the requirements of the task.
  • Step 102 If the target virtual node corresponds to the target logical resource group divided in the second cluster management system, then submit a work task that meets the task requirements to the second cluster management system so that the second cluster management system can schedule the work task to be executed in the target logical resource group in the target cluster; wherein, the work task conforms to the task format required by the second cluster management system.
  • step 100 the user can submit task requirements in the first cluster management system.
  • the user only needs to learn the interaction knowledge in the first cluster management system, which can effectively reduce the user's learning cost. For example, the user only needs to learn how to use Kubemetes, without needing to learn how to use the aforementioned Slurm or LSP systems.
  • the task requirements reflect the specifications of the physical resources the user expects to use and the work content the user expects to complete.
  • the user can submit task requirements according to the native interaction method in the first cluster management system.
  • the scheduling method provided in this embodiment is different from the native scheduling logic in the first cluster management system. Therefore, in this embodiment, the task requirements submitted by the user in step 100 are different from the task requirements that need to be processed on the physical resources managed by the first cluster management system, so as to trigger the first cluster management system to use the scheduling method in this embodiment for processing, instead of processing according to the native scheduling logic.
  • various implementation methods can be used to support the specificity of the task requirements in step 100. An exemplary implementation method is provided below.
  • the inventors discovered during their research that everything is usually treated as a resource object in the first cluster management system, such as the container group mentioned above, which is treated as a resource object in the first cluster management system. Moreover, the first cluster management system usually provides an extension mechanism... Custom Resource Definition (CRD), which allows new resource types to be customized as needed.
  • CCD Custom Resource Definition
  • FIG. 3 is a logical schematic diagram of an optional implementation of a scheduling method provided in an exemplary embodiment of the present disclosure.
  • the exemplary implementation may be: extending a custom workload resource for a second cluster management system in a first cluster management system, wherein the custom workload resource may contain information items required in the task format required by the second cluster management system.
  • the custom workload resource may contain various information items required in the Slurm job.
  • the first cluster management system can display a task request submission page to the user.
  • the information items required in the task format required by the second cluster management system will be used as information items that the user needs to fill in, so as to ensure that the created custom workload resources at least include the second cluster management system.
  • the required information items in the required task format are displayed on this page.
  • the first cluster management system already has a variety of workload resources, such as Deployment, Replica Set, and StatefulSet.
  • a new workload resource is customized for the second cluster management system.
  • different workload resources can be customized for different types of cluster management systems in the first cluster management system to ensure that the required information items can be fully collected in the corresponding workload resources.
  • the first cluster management system supports the use of workload resources to trigger the creation of container groups. Based on this, following the above exemplary implementation, in step 100, the first cluster management system can create a target container group for the custom workload resources in response to detecting that the user has created a custom workload resource based on task requirements.
  • a controller associated with a custom workload resource can be set in the first cluster management system. Based on this, the controller can monitor the custom workload resources appearing in the first cluster management system and is responsible for creating target container groups for the monitored custom workload resources.
  • the controller here can be implemented as an operator.
  • the operator is an extension software of Kubernetes, which can manage applications and their components using custom resource objects. The implementation principle of the operator will not be elaborated here.
  • different controllers can be associated with different custom workload resources set due to different types of cluster management systems.
  • step 100 it should be understood that the above exemplary implementation is only optional. In this embodiment, other implementations may also be used in step 100 to support the specificity of task requirements. For example, a dedicated process can be set up in the first cluster management system to guide users to input the required information items for different cluster management systems, and a customized resource can be created based on the collected information items. This customized resource can be used to trigger the first cluster management system to create a container group. In addition, this customized resource is no longer limited to workload resources. No further details or examples will be given here.
  • the target container group created in step 100 does not occupy physical resources. That is, after the first cluster management system creates the target container group, it does not need to allocate physical resources to the target container group. Therefore, the target container group created in step 100 will not occupy physical resources in the target cluster; if the first cluster management system manages physical resources, the target container group will not occupy the physical resources managed by the first cluster management system.
  • the first cluster management system can schedule the target container group to a location that meets the requirements.
  • the first cluster management system also adaptively supports users specifying the desired virtual node in their task requirements, considering that other types of cluster management systems typically support users specifying the logical resource group they wish to use. Therefore, in step 100, the target container group can be scheduled to the virtual node specified in the task requirements. Alternatively, if the task requirements do not specify the required virtual node, in step 101, the first cluster management system can use its native scheduling logic and the physical resource specifications reflected in the task requirements to select a target virtual node that matches the user's submitted task requirements.
  • the controller can specify the target virtual node to be scheduled in the target container group so as to schedule the target container group to the target virtual node.
  • mapping relationship can be recorded in the first cluster management system.
  • a corresponding virtual node is created in the first cluster management system. In this way, the target virtual node hit in step 101 will have a corresponding logical resource group.
  • step 102 if the target virtual node is mapped to the target logical resource group divided in the second cluster management system, it can be determined that a work task needs to be submitted to the second cluster management system.
  • processing logic for creating work tasks according to the required task format is encapsulated in each virtual node.
  • the aforementioned target virtual node encapsulates processing logic for creating work tasks according to the task format required by the second cluster management system.
  • the target virtual node can be used to submit work tasks to the second cluster management system.
  • this is optional.
  • it is not necessary to limit the execution subject of the work task submission operation, and the operation can also be implemented by other components in the first cluster management system.
  • a work task conforming to the task format required by the second cluster management system can be generated based on the aforementioned task requirements submitted by the user.
  • the work task generated by the target virtual node will indicate that it needs to be executed in the target logical resource group.
  • the target virtual node can record the target logical resource group it maps to, and when generating the work task, write the identifier of the target logical resource group into the corresponding field in the work task.
  • the target virtual node in the first cluster management system a work task that conforms to the task format required by the second cluster management system is generated, and the work task can accurately reflect the task requirements submitted by the user.
  • the target virtual node can serve as the control exit of the first cluster management system, submitting the generated tasks to the second cluster management system. In this way, the second cluster management system will receive tasks that conform to its required task format.
  • the second cluster management system can schedule the work tasks submitted by the target virtual node according to its own native scheduling logic. Since the work task is instructed to be executed in the target logical resource group, the second cluster management system can schedule the work task to the target logical resource group that has been separated on the target cluster. In this way, the work task will be executed on the material resources occupied by the target logical resource group in the target cluster.
  • the user submits task requirements in the first cluster management system and only needs to learn the interaction knowledge of the first cluster management system.
  • the user is unaware of the second cluster management system used on the target cluster.
  • From the perspective of the first cluster management system it bridges with different types of cluster management systems based on the virtual nodes created within it. Through the virtual nodes, it can generate work tasks in a suitable format and accurately guide other types of cluster management systems to schedule the work tasks to the logical resource group expected by the user.
  • the second cluster management system From the perspective of the second cluster management system, it can receive work tasks that meet its required task format from the first cluster system, and the work tasks have already indicated the required target logical resource group. Therefore, the second cluster management system can schedule the work tasks to the target logical resource group for execution according to its own native scheduling logic.
  • Figure 4 is an optional logic diagram of a scheduling method provided by an exemplary embodiment of this disclosure.
  • the first cluster management system in this embodiment can cover multiple clusters, and the types of cluster management systems used on different clusters may be different. That is, in addition to the target cluster, there are other clusters.
  • the logical resource groups divided in the cluster management systems used on other clusters are also mapped as virtual nodes in the first cluster management system to support the first cluster management system in submitting work tasks in the corresponding task format to the cluster management systems used on other clusters, so that the work tasks are scheduled to be executed in the logical resource groups in other clusters.
  • the second cluster management system originally used on the target cluster can be retained.
  • the physical resources in the target cluster do not need to be managed by the container-based first cluster management system.
  • the first cluster management system acts as the control plane and is connected to the second cluster management system originally used on the target cluster through bridging.
  • the logical resource groups divided by the second cluster management system on the target cluster can be mapped to virtual nodes in the first cluster management system.
  • the work tasks recognized by the second cluster management system can be abstracted into container groups in the first cluster management system. Based on this, users can submit task requirements in the first cluster management system.
  • the first cluster management system can create and schedule container groups.
  • the container-based cluster management system can seamlessly cover more types of clusters.
  • the first cluster management system may create corresponding virtual nodes for each logical resource group divided by the second cluster management system on the target cluster.
  • a logical resource group manager can be set up in the first cluster management system. Based on this, the logical resource group manager can monitor the addition and deletion events of logical resource groups in the second cluster management system; and is responsible for creating/deleting virtual nodes in the first cluster management system according to the monitored addition and deletion events.
  • the K logical resource group manager can request information on all logical resource groups from the second cluster management system at fixed time intervals.
  • this embodiment also proposes that the first cluster management system can also support monitoring the resource level status of each logical resource group divided in the second cluster management system. To this end, this embodiment proposes that the resource level status of each logical resource group in the second cluster management system can be mapped to its corresponding virtual node in the first cluster management system, so as to reveal the resource level status of the corresponding logical resource group in the second cluster management system through the virtual node.
  • the aforementioned logical resource group manager can monitor the resource level status of logical resource groups in the second cluster management system; if the resource level status of any logical resource group changes, the logical resource group manager can update the resource level status corresponding to the virtual node mapped to that logical resource group in the first cluster management system.
  • the first cluster management system usually has an interface APL for maintaining the resource level status of each node. Based on this, if the logical resource group manager detects a change in the resource level status of a certain logical resource group, it can trigger the virtual node mapped to that logical resource group to call this type of interface APL to update the resource level status maintained for that virtual node in the first cluster management system.
  • the virtual nodes in the first cluster management system do not occupy physical resources. Therefore, the first cluster management system will no longer record the actual resource level status for virtual nodes. Instead, through the aforementioned mapping operation, the resource level status of logical resource groups will be mapped to the corresponding virtual nodes. In this way, in the first cluster management system, the resource level status of a virtual node essentially reflects the resource level status of the logical resource group it maps to.
  • this embodiment further proposes that: during the process of a user submitting a task request in the first cluster management system, the resource level status of each virtual node can be displayed to the user so that the user can specify the virtual node to be used in the task request based on the resource level status, as the aforementioned target virtual node.
  • the resource level status maintained by the virtual node in this embodiment can also serve as a reference in the native scheduling logic of the first cluster management system itself, so as to ensure that the target virtual node hit by the task requirement can meet the resource specifications expected in the task requirement when the virtual node is not specified in the task requirement, thereby ensuring that the second cluster management system can schedule the work task corresponding to the task requirement to a logical resource group with sufficient resource level.
  • the resource level status maintained by the virtual node can also be used as the basis for operation and maintenance in the first cluster management system, thereby supporting the first cluster management system as a unified operation and maintenance entry point to realize the operation and maintenance work of each covered cluster.
  • the first cluster management system can also support monitoring the execution status of each work task submitted externally.
  • the target virtual node can obtain the execution status of the submitted work tasks from the second cluster management system; and update the execution status of the target container group according to the obtained execution status of the work tasks. Based on this, the first cluster management system can update the execution status corresponding to the task requirements according to the status information of the target container group for user query.
  • the controller in the first cluster management system associated with the custom workload resource can update the execution status corresponding to the custom workload resource according to the monitored status information of the target container group.
  • the first cluster management system can support users to query the execution status of a single submitted task requirement (e.g., a custom workload resource) by inputting a query command, and can also perform batch queries for multiple submitted task requirements, which is not limited here.
  • the target virtual node can update the field value recorded in the status field of the target container group corresponding to the task based on the execution status of the task monitored from the second cluster management system, so as to update the execution status of the target container group.
  • the above refers to the custom task set by the second cluster management system.
  • the controller associated with the workload resource detects a change in the value of a field in the status field of the target container group, it can update the field value recorded in the status field of the corresponding custom workload resource created by the user, thereby updating the execution status of the custom workload resource.
  • the first cluster management system also deploys proxy components in the cluster management systems used on each cluster to be covered.
  • the proxy component in the second cluster management system can communicate with each native component in the second cluster management system to obtain information such as the resource level status and the execution status of the work tasks of each logical resource group divided by the second cluster management system from these native components.
  • these native components include the native scheduler in the second cluster management system.
  • the target virtual node in the first cluster management system can submit work tasks to the proxy component in the second cluster management system, and the proxy component can transfer the received work tasks to the native scheduler in the second cluster management system so that the native scheduler can schedule the work tasks to the aforementioned target logical resource group for execution.
  • proxy components can be designed for different types of cluster management systems in this embodiment to ensure the compatibility between the proxy components and the cluster management system, thereby ensuring that the first cluster management system can achieve bridging with other cluster management systems through proxy components and virtual nodes.
  • Operatr associated with the custom workload resource can detect the emergence of new custom workload resources in the Kubernetes system; Operatr can parse the information items contained in the custom workload resource to understand the user's task requirements, and create one or more target container groups, and specify the target virtual nodes to be scheduled inside the created target container groups.
  • the target virtual node creates a Slurm job for the target container group scheduled to this node and submits it to the proxy component in the Slurm cluster; the target virtual node can also request the execution status of the Slurm job from the proxy component in the Slurm cluster at fixed time intervals, and synchronously update the execution status of the target container group.
  • the target virtual node is also responsible for reading the log content of the Slurm job through the proxy component in the Slurm cluster.
  • the aforementioned Operator can monitor the execution status of the target container group (e.g., Completed > Successed > Failed), and synchronously update the custom workload resources created by the aforementioned user. The execution status.
  • this embodiment not only supports the submission of various types of work tasks in the first cluster management system, but also supports monitoring the execution status of each submitted work task in the first cluster management system, and also supports indirectly revealing the physical resource usage in each covered cluster in the first cluster management system. This enables the first cluster management system to exert its flexibility and automation capabilities.
  • the first cluster uses the Kubernetes system as the scheduling and resource management system, and the first cluster is not a high-performance computing cluster.
  • the scheduling method provided in this embodiment can be used to make the second cluster (which is a high-performance computing cluster) an external cluster of the first cluster.
  • the external cluster uses the Slurm system as the scheduling and resource management system
  • the Slurm system can be bridged to the Kubernetes system according to the scheduling method provided in this embodiment.
  • users can submit task requirements in the Kubernetes system.
  • the Kubernetes system can submit Slurm jobs to the Slurm system on the external cluster through virtual nodes, so that the Slurm system can schedule the Slurm job to the partition corresponding to the virtual node.
  • the AI inference work that the user needs to process can be scheduled to the external cluster without any obstacles. In this way, the user can use the material resources of the external cluster to process the AI inference work without being aware of it.
  • the Kubernetes system does not manage any physical clusters, but only serves as the control plane. Multiple physical clusters can retain their own cluster management systems, and these cluster management systems can be bridged to the Kubernetes system according to the scheduling method provided in this embodiment. Based on this, users can submit task requirements in the Kubernetes system, and the Kubernetes system can schedule the task requirements to suitable virtual nodes by creating and scheduling container groups. Through bridging, the virtual node can submit work tasks to the cluster management system on the corresponding physical cluster, thereby scheduling the work tasks to the corresponding logical resource groups on the physical cluster.
  • the task requirements submitted by the user can be flexibly scheduled to a suitable physical cluster through the Kubernetes system, and further scheduled to a suitable logical resource group in the physical cluster to complete the task requirements.
  • FIG. 5 is a schematic diagram of a cluster management system provided in another exemplary embodiment of the present disclosure.
  • the cluster management system may include: a management component 50 and virtual nodes.
  • the cluster management system shown in Figure 5 will be described as a first cluster management system.
  • the first cluster management system is based on a container.
  • the logical resource groups divided in the second cluster management system used on the target cluster can be mapped to virtual nodes in the first cluster management system.
  • the management component 50 can be used to create a target container group for the task requirements submitted by the user in the first cluster management system; schedule the target container group to the target virtual node 60 that meets the task requirements; if the target virtual node 60 is mapped to the target logical resource group divided in the second cluster management system, then a work task that meets the task requirements can be submitted to the second cluster management system so that the second cluster management system can schedule the work task to be executed in the target logical resource group in the target cluster; wherein, the work task conforms to the task format required by the second cluster management system.
  • the management component 50 when the management component 50 creates a target container group for a task request submitted by a user in the first cluster management system, it may specifically be used to: create a target container group for the custom workload resource in response to detecting that the user has created a custom workload resource based on the task request; wherein the custom workload resource contains the information items required in the task format required by the second cluster management system.
  • the management component 50 may include a controller 51 associated with the custom workload resource; the controller 51 may be specifically used to: monitor the custom workload resource appearing in the first cluster management system; and create a target container group for the monitored custom workload resource.
  • controller 51 may also be specifically configured to: specify the target virtual node to be scheduled in the target container group, so as to schedule the target container group to the target virtual node.
  • the management component 50 may further include a logical resource group manager 52.
  • the processor 52 can be used to: monitor the addition and deletion events of logical resource groups in the second cluster management system; and create/delete virtual nodes in the first cluster management system according to the monitored addition and deletion events.
  • the logical resource group manager 52 can also be used to: monitor the resource level status of logical resource groups in the second cluster management system; and update the resource level status of the virtual node in the first cluster management system that is mapped to the logical resource group when the resource level status of any logical resource group changes.
  • control component 50 may also be used to: display the resource level status of each virtual node to the user during the process of the user submitting the task request in the first cluster management system, so that the user can indicate the virtual node to be used in the task request based on the resource level status.
  • the second cluster management system is provided with a proxy component 70 for communicating with the first cluster management system;
  • the target virtual node 60 can be used to: generate a work task that conforms to the task format required by the second cluster management system based on the task requirements, the work task being instructed to be executed in the target logical resource group; and submit the work task to the proxy component 70 in the second cluster management system, so that the proxy component 70 submits the work task to the task scheduler in the second cluster management system for task scheduling.
  • the target virtual node 60 may also be used to: obtain the execution status of the work task from the second cluster management system; update the execution status of the target container group according to the obtained execution status of the work task; the controller 51 may also be used to: update the execution status corresponding to the task requirement according to the status information of the target container group, so that the user can query it.
  • the logical resource groups divided in the cluster management system used on the other clusters are also mapped as virtual nodes in the first cluster management system, so as to support the first cluster management system to submit work tasks in the corresponding task format to the cluster management system used on the other clusters, so that the work tasks are scheduled to be executed in the logical resource groups in the other clusters.
  • the second cluster management system adopts a Slurm system, a load sharing scheduling system or a portable batch processing system, and the target cluster adopts a high-performance computing cluster.
  • the target container group does not occupy physical resources, and the virtual nodes in the first cluster management system do not occupy physical resources either.
  • this disclosure also provides a computer-readable storage medium storing a computer program, which, when executed, can implement the steps in the above method embodiments.
  • this disclosure also provides a computer program product, wherein the computer program contained herein, when executed, can implement the steps in the above method embodiments.
  • These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means that implement the functions specified in one or more flowcharts and/or one or more block diagrams.
  • These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable apparatus, provide steps for implementing the functions specified in one or more flowcharts and/or one or more block diagrams.
  • the user information including but not limited to user device information, user personal information, etc.
  • data including but not limited to data used for analysis, stored data, displayed data, etc.
  • the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and corresponding operation entry points are provided for users to choose to authorize or refuse.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例提供一种调度方法、系统、计算机程序产品及存储介质。可保留目标集群上原本所采用的第二集群管理系统,将第二集群管理系统在目标集群上所划分出的逻辑资源组,映射为基于容器的第一集群管理系统中的虚拟节点。基于此,用户可在第一集群管理系统中提交任务需求,第一集群管理系统可进行容器组创建及调度,若调度到的目标虚拟节点与第二集群管理系统中所划分出的目标逻辑资源组相映射,则可向第二集群管理系统提交满足任务需求且符合第二集群管理系统所要求任务格式的工作任务。

Description

一种调度方法 、 系统、 计算机程序产品及存储介质 技术领域
[01]本公开涉及云计算技术领域, 尤其涉及一种调度方法、 系统、 计算机程序产品及存 储介质。 背景技术
[02]高性能计算 ( High performance computing , HPC ) 集群通常采用 Slurm系统作为作 业调度和资源管理系统。 Kubernetes , 或称 k8s, 则是一种基于容器的集群管理系统, 用 于容器编排和管理。 Kubernetes具有强大的容器编排和管理功能, 可以自动化应用程序 的部署、 伸缩和故障恢复, 它提供了更灵活和自动化的资源管理机制, 可以根据应用程 序的需求进行动态调整和分配资源。
[03]目前, 期望 Kubernetes的灵活性及自动化能力也能覆盖到 HPC集群, 但是, 由于 HPC 集群通常具有特定的硬 件和网络架构, 需要精确的资源调度和管 理, 因此, Kubernetes的默认调度器并不适用于 HPC集群, 无法满足 HPC集群中关于优先级及资 源约束等方面的作业调度需求。 发明内容
[04]本公开的多个方面提供一种调度方法、 系统、 计算机程序产品及存储介质, 用以实 现将基于容器的集群管理系统覆盖至更多类型的集群。
[05]本公开实施例提供一种调度方法, 适用于基于容器的第一集群管理系统; 目标集群 上采用的第二集群管理系统所划分出的逻辑资源组, 映射为所述第一集群管理系统中的 虚拟节点, 所述方法包括: 为用户在所述第一集群管理系统中提交的任务需求, 创建目 标容器组; 将所述目标容器组, 调度至符合所述任务需求的目标虚拟节点; 若所述目标 虚拟节点与所述第二集群管理系统中所划分出的目标逻辑资源组相映射, 则向所述第二 集群管理系统提交满足所述任务需求的工作任务, 以使所述第二集群管理系统将所述工 作任务调度至所述目标集群中的所述目标逻辑资源组中执行; 其中, 所述工作任务符合 所述第二集群管理系统所要求的任务格式。
[06]进一步地, 为用户在所述第一集群管理系统中提交的任务需求, 创建目标容器组, 包括: 响应于监测到所述用户基于所述任务需求创建出自定义工作负载资源, 为所述自 定义工作负载资源创建目标容器组; 其中, 所述自定义工作负载资源中包含有所述第二 集群管理系统所要求的任务格式中所需的信息项。
[07]进一步地, 所述第一集群管理系统中设置有与所述自定义工作负载资源关联的控制 器; 响应于监测到所述用户基于所述任务需求创建出自定义工作负载资源, 为所述自定 义工作负载资源创建目标容器组, 包括: 利用所述控制器监测所述第一集群管理系统中 所出现的自定义工作负载资源; 利用所述控制器为所监测到的自定义工作负载资源创建 目标容器组。
[08]进一步地, 将所述目标容器组, 调度至符合所述任务需求的目标虚拟节点, 包括: 利用所述控制器在所述目标容器组中指定所需调度到的目标虚拟节点, 以将所述目标容 器组调度至所述目标虚拟节点上。
[09]进一步地, 所述第一集群管理系统中设置有逻辑资源组管理器, 所述方法还包括: 利用所述逻辑资源组管理器监测所述第二集群管理系统中逻辑资源组的增删事件; 按照 监测到的增删事件, 在所述第一集群管理系统中创建/删除虚拟节点。
[10]进一步地, 所述方法还包括: 利用所述逻辑资源组管理器监测所述第二集群管理系 统中逻辑资源组的资源水位状态 ;在监测到任一逻辑资源组的资源水位状态发生变化的 情况下, 更新所述第一集群管理系统中与所述逻辑资源组相映射的虚拟节点所对应的资 源水位状态。
[11]进一步地, 所述方法还包括: 在所述用户在所述第一集群管理系统中提交所述任务 需求的过程中, 向所述用户展示各虚拟节点所对应的资源水位状态, 以供所述用户基于 资源水位状态在所述任务需求中指示所需使用的虚拟节点, 作为所述目标虚拟节点。
[ 12]进一步地, 所述第二集群管理系统中设置有用于与所述第一集群管理系统通信的代 理组件; 向所述第二集群管理系统提交满足所述任务需求的工作任务, 包括: 利用所述 目标虚拟节点基于所述任务需求,生成符合所述第二集群管理系统所要求的任务格式的 工作任务, 所述工作任务指示在所述目标逻辑资源组中执行; 利用所述目标虚拟节点将 所述工作任务提交至所述第二集群管理系统中的所述代理组件, 以使所述代理组件将所 述工作任务提交至所述第二集群管理系统中的任务调度器进行任务调度。
[13]进一步地, 所述方法还包括: 利用所述目标虚拟节点从所述第二集群管理系统中获 取所述工作任务的执行状态; 利用所述目标虚拟节点按照获取到的所述工作任务的执行 状态, 更新所述目标容器组的执行状态; 按照所述目标容器组的状态信息, 更新所述任 务需求对应的执行状态, 以供所述用户查询。
[14]进一步地, 除所述目标集群外, 还存在其它集群; 其它集群上所采用的集群管理系 统中所划分出的逻辑资源组, 在所述第一集群管理系统中也映射为虚拟节点, 以支持所 述第一集群管理 系统向其它集群上所采用的集群管理系统提交相应任务格式的工作任 务, 以使工作任务调度至其它集群中的逻辑资源组中执行。
[15]进一步地, 所述第二集群管理系统采用 Slurm系统、 负载共享调度系统或便携批处 理系统, 所述目标集群采用高性能计算集群。
[16]进一步地, 所述目标容器组不占用物理资源, 所述第一集群管理系统中的虚拟节点 也不占用物理资源。
[17]本公开实施例还提供一种集群管理系统, 所述集群管理系统是基于容器的, 目标集 群上采用的第二集群管理系统所划分出的逻辑资源组, 映射为所述集群管理系统中的虚 拟节点, 所述集群管理系统用于执行前述的调度方法, 以基于用户在所述集群管理系统 提交的任务需求, 向所述第二集群管理系统提交符合所需任务格式的工作任务, 以使所 述工作任务在所述目标集群中的目标逻辑资源组中执行。
[18]本公开实施例还提供一种存储计算机程序的计算机可读存储介质, 当所述计算机程 序被一个或多个处理器执行时, 致使所述一个或多个处理器执行前述的调度方法。
[19]本公开实施例还提供一种计算机程序产品, 包括计算机程序, 当所述计算机程序被 一个或多个处理器执行时, 致使所述一个或多个处理器执行前述的调度方法。
[20]在本公开实施例中提出, 针对期望覆盖到的目标集群, 可保留目标集群上原本所采 用的第二集群管理系统, 目标集群中的物理资源并无需纳管至基于容器的第一集群管理 系统中, 而是由第一集群管理系统作为控制面, 通过桥接的方式连通至目标集群上原本 所采用的第二集群管理系统。 在此构思下, 可将第二集群管理系统在目标集群上所划分 出的逻辑资源组, 映射为第一集群管理系统中的虚拟节点, 并可将第二集群管理系统所 认知的工作任务, 抽象为第一集群管理系统中的容器组, 基于此, 用户可在第一集群管 理系统中提交任务需求, 第一集群管理系统可进行容器组创建及调度, 若调度到的目标 虚拟节点与第二集群管理系统中所划分出的逻辑资源组相映射,则可向第二集群管理系 统提交满足该任务需求且符合所需任务格式的工作任务, 这样, 第二集群管理系统可接 管到用户在第一集群管理系统中提交的任务需求, 并在目标集群上完成处理。 据此, 基 于容器的集群管理系统可无障碍地覆盖至更多类型的集群。 附图说明
[21]此处所说明的附图用来提供对本公开的进一步理解, 构成本公开的一部分, 本公开 的示意性实施例及其说明用于解释本公开, 并不构成对本公开的不当限定。 在附图中:
[22]图 1为本公开一示例性实施例提供的一种调度方法的流程示意图;
[23]图 2为本公开一示例性实施例提供的一种调度方法的逻辑示意图;
[24]图 3为本公开一示例性实施例提供的一种调度方法的可选实现方式的逻辑示意图;
[25]图 4为本公开一示例性实施例提供的一种调度方法的可选逻辑示意图;
[26]图 5为本公开另一示例性实施例提供的一种集群管理系统的结构示意图。 具体实施方式
[27]为使本公开的目的、 技术方案和优点更加清楚, 下面将结合本公开具体实施例及相 应的附图对本公开技术方案进行清楚、 完整地描述。 显然, 所描述的实施例仅是本公开 一部分实施例, 而不是全部的实施例。 基于本公开中的实施例, 本领域普通技术人员在 没有做出创造性劳动前提下所获得的所有其他实施例, 都属于本公开保护的范围。
[28]在开始对本公开各实施例提供的技术方案进行详细说明之前, 先对本公开中涉及到 的几个技术概念进行简单解释如下。
[29] Kubernetes, 或称 k8s, 则是一种基于容器的集群管理系统, 用于容器编排和管理。 Kubernetes具有强大的容器编排和管理功能, 可以自动化应用程序的部署、 伸缩和故障 恢复, 它提供了更灵活和自动化的资源管理机制, 可以根据应用程序的需求进行动态调 整和分配资源。
[30] Slurm, 全称为 Simple Linux Utility for Resource Management, 是一个开源的集群管 理和作业调度系统, 用于高性能计算(HPC)环境中的任务调度和资源管理。
[31]高性能计算(High performance computing , HPC) , 是利用高性能服务器(如超级 计算机等) 实现并行计算的理论、 方法、 技术以及应用的一种技术。
[32] HPC集群, 可理解为能够实施高性能计算的服务器集群。 HPC集群中的服务器通常 为前述的高性能服务器。 [33]正如背景技术中所介绍的, HPC集群上通常采用 Slurm系统作为作业调度和资源管 理系统。 发明人在研究过程中发现, 当需要使用 HPC集群来执行任务时, 用户需要在 Slurm系统的原生命令行界面中创建出 HPC作业, 这给用户带来了比较高的学习成本, 而且, 发明人还发现, HPC集群上所采用的集群管理系统并不局限在 Slurm系统, 而是 还存在很多其它的系统类型, 例如, 负载共享调度系统 ( Load Sharing Facility, LSF ) 或便携批处理系统 ( Portable Batch System, PBS )等, 针对不同的集群管理系统, 用户 需要分别学习交互知识,这进一步增加了用户的学习成本。 另夕卜, 除了 HPC集群之外, 还可能需要使用到其他类型的集群, 而其它类型的集群上所采用的集群管理系统的类型 更加多样化, 这又进一步加剧了用户的学成成本。
[34]为此, 发明人提出, 期望通过一种用户所熟知的集群管理系统覆盖到各种类型的集 群, 以降低用户的学习成本。 但是, 发明人在研究过程中又发现, 由于不同类型的集群 中通常具有特定的硬件和网络架构, 因此, 统一的集群管理系统中的原生调度器并无法 直接适用于各种类型的集群。 据此, 如何保证该统一的集群管理系统能够适用于各种类 型的集群, 成为亟需解决的技术问题。
[35]为了解决该技术问题, 本实施例中提出了一种调度方法, 选用基于容器的集群管理 系统作为用于统一的集群管理系统, 并提出了保留各种类型的集群上原本所采用的集群 管理系统, 而将基于容器的集群管理系统作为控制面, 来对各种类型的集群上原本所采 用的集群管理系统进行适应性连通。
[36]在此技术构思的指导下, 发明人将技术问题进一步具体化为如何在基于容器的集群 管理系统中实现对其它类型集群管理系统的适应连通, 并提出了技术方案。
[37]以下结合附图, 详细说明本公开各实施例提供的技术方案。
[38]图 1为本公开一示例性实施例提供的一种调度方法的流程示意图, 该方法可由基于 容器的集群管理系统执行, 该集群管理系统可实现为软件、 硬件或软件与硬件的结合。
[39]本实施例中, 基于容器的集群管理系统可以是前文提及的 Kubemetes, 当然, 本实 施例并不限于此, 其它基于容器而进行调度及资源管理的系统, 也可作为本实施例中的 执行主体, 在此不做更多示例。
[40]发明人在研究过程中发现, 基于容器的集群管理系统中, 是以容器组 ( Pod )作为 基本部署单位。 在基于容器的集群管理系统中, 调度原理大致为: 可将容器放入容器组 ( Pod ) , 并将容器组调度至合适的节点 ( Node )上, 以执行工作负载。 [41]发明人在研究过程中还发现, 其它类型的集群管理系统中通常会在集群的物理资源 上划分出逻辑资源组, 并会将接收到的工作任务调度到合适的逻辑资源组上, 以通过逻 辑资源组所占用的物理资源来执行工作负载。 举例来说, 前述的 Slurm系统中所划分出 的逻辑资源组通常为分区 (Partition) , 而前述的 LSP系统中所划分出的逻辑资源组则 通常为队列 ( Queue) , 在此不做更多示例。
[42]基于此,本实施例中提出,可将其它类型的集群管理系统中所划分出的逻辑资源组, 抽象为基于容器的集群管理系统中的虚拟节点; 将其它类型的集群管理系统中所需调度 的工作任务, 抽象为基于容器的集群管理系统中的容器组, 这样, 在基于容器的集群管 理系统中按照自身的调度原理进行调度, 即能够反映出其它类型的集群管理系统中应将 工作任务调度至哪个逻辑资源组中,从而保证基于容器的集群管理系统能够给其它类型 的集群管理系统提供准确地调度指引。
[43]这里需要说明的是, 第一集群管理系统中的节点( Node)通常可以是物理机器或虚 拟机等。 本实施例中提出的虚拟节点具备第一集群管理系统中的节点的相关属性, 但不 同的是, 本实施例中提出的虚拟节点并不占用物理资源。 也即是, 第一集群管理系统在 创建出虚拟节点后, 并无需为虚拟节点分配物理资源, 本实施例中提出的虚拟节点即不 会占用目标集群中的物理资源, 也不会占用第一集群管理系统所纳管的物理资源。 本实 施例中提出的虚拟节点, 可理解为是一种进程 /线程。
[44]图 2为本公开一示例性实施例提供的一种调度方法的逻辑示意图。 参考图 2, 为便 于描述, 后文中将基于容器的集群管理系统描述为第一集群管理系统, 且以期望覆盖的 任一集群为示例, 来进行技术方案的描述。 后文中, 将该示例的集群描述为目标集群, 将该示例的集群上所采用的集群管理系统描述为第二集群管理系统。
[45]示例性地, 目标集群可以是高性能计算集群( HPC) 集群, 而目标集群上所采用的 第二集群管理系统可采用 slurm系统、 LSP系统或 PBS系统等。
[46]值得说明的是,正如前文提及的 ,本实施例中的第一集群管理系统主要作为控制面, 因此, 本实施例中, 目标集群中的物理资源并无需纳管至第一集群管理系统中, 而是保 持纳管在其原本所采用的第二集群管理系统中即可。 也即是, 目标集群中的物理节点无 需注册至第一集群管理系统中。
[47]在此基础上, 参考图 1 , 该方法可包括以下步骤。
[48]步骤 100、 为用户在第一集群管理系统中提交的任务需求, 创建目标容器组。 [49]步骤 101、 将目标容器组, 调度至符合该任务需求的目标虚拟节点。
[50]步骤 102、 若目标虚拟节点与第二集群管理系统中所划分出的目标逻辑资源组相映 射, 则向第二集群管理系统提交满足任务需求的工作任务, 以使第二集群管理系统将工 作任务调度至目标集群中的目标逻辑资源组中执行; 其中, 该工作任务符合第二集群管 理系统所要求的任务格式。
[51]本实施例中, 在步骤 100中, 用户可在第一集群管理系统中提交任务需求。 应当理 解的是, 本实施例中, 用户只需学习第一集群管理系统中的交互知识即可, 这可有效降 低用户的学习成本。 举例来说, 用户只需学习如何使用 Kubemetes即可, 无需学习使用 前述的 Slurm或 LSP等系统。
[52]其中,任务需求用于反映用户期望使用的物理资源规格以及期望完成的工作内容等。 用户可按照第一集群管理系统中原生的交互方式来提交任务需求。 应当理解的是, 本实 施例提供的调度方法与第一集群管理系统中原生的调度逻辑相比, 是不同的, 因此, 本 实施例中, 步骤 100中用户所提交的任务需求, 区别于需要在第一集群管理系统所纳管 的物理资源上处理的任务需求, 以便触发第一集群管理系统采用本实施例中的调度方法 进行处理, 而不再按照原生的调度逻辑进行处理。 本实施例中, 可采用多种实现方式来 支持步骤 100中任务需求的特定性。 以下提供一种示例性实现方式。
[53]发明人在研究过程中发现, 在第一集群管理系统中通常会 将一切示为资源对 象 ( Resource ) ,例如前文提及的容器组等,在第一集群管理系统即被示为一种资源对象。 而且 , 第一集群管理系统中通常还可提供 一种扩展机制… 资对 象源定义 ( Custom Resource Definition , CRD ) , 该扩展机制允许按需自定义新的资源类型。
[54]图 3为本公开一示例性实施例提供的一种调度方法的可选实现方式的逻辑示意图。 参考图 3 , 基于这种扩展机制, 该示例性实现方式, 可以是: 在第一集群管理系统中为 第二集群管理系统扩展出自定义工作负载资源, 其中, 这种自定义工作负载资源中可包 含有第二集群管理系统所要求的任务格式中所需的信息项。 举例来说, 若第二集群管理 系统为 Slurm集群, 在这种自定义工作负载资源中可包含 Slurm作业中所需的各种信息 项。
[55]基于此, 在该示例性实现方式中, 第一集群管理系统可向用户展示任务需求提交页 面, 在该页面中, 第二集群管理系统所要求的任务格式中所需的信息项将作为需要用户 填写的信息项, 以保证所创建出的自定义工作负载资源中至少包含有第二集群管理系统 所要求的任务格式中所需的信息项。
[56]值得说明的是, 第一集群管理系统中原生已经存在多种工作负载资源, 例如, 部署 Deployment, 副本集 Replica Set及状态集 StatefulSet等。 在上述示例性实现方案中, 则 是为第二集群管理系统自定义了一种新的工作负载资源。 另夕卜, 值得说明的是, 考虑到 不同类型的集群管理系统所要求的任务格式不完全相同,因此,在第一集群管理系统中, 可为不同类型的集群管理系统分别自定义不同的工作负载资源, 以保证相应的工作负载 资源中能够全面收集到所需的信息项。
[57]发明人在研究过程中发现, 第一集群管理系统中支持使用工作负载资源来触发创建 容器组。 基于此, 承接上述示例性实现方式, 在步骤 100中, 第一集群管理系统可响应 于监测到用户基于任务需求创建出自定义工作负载资源, 为自定义工作负载资源创建目 标容器组。
[58]进一步地, 参考图 3 , 在上述示例性实现方式中还提出: 可在第一集群管理系统中 设置与自定义工作负载资源关联的控制器, 基于此, 可由控制器监测第一集群管理系统 中所出现的自定义工作负载资源, 并负责为所监测到的自定义工作负载资源创建目标容 器组。举例来说,在 Kubernetes中,这里的控制器可实现为运算符 Operator。其中 , Operator 是 Kubernetes 的扩展软件, 它可利用定制资源对象管理应用及其组件, 关于 Operator 的实现原理在此不做展开详述。 另外, 在第一集群管理系统中, 对于因不同类型的集群 管理系统而设置的不同自定义工作负载资源, 可关联不同的控制器。
[59]应当理解的是, 上述示例性实现方式仅是可选地, 本实施例中, 在步骤 100中还可 采用其它实现方式来支持任务需求的特定性。 例如, 可在第一集群管理系统中设置一专 用进程针对不同集群管理系统指引用户输入所需的信息项, 并可基于收集到的信息项创 建出一种定制资源, 这种定制资源可用于触发第一集群管理系统创建容器组, 另夕卜, 这 种定制资源也不再局限在工作负载资源。 在此不做更多详述, 也不再做更多示例。
[60]值得强调的是, 本实施例中, 在步骤 100中所创建出的目标容器组并不占用物理资 源, 也即是, 第一集群管理系统在创建出目标容器组后, 并无需为目标容器组分配物理 资源。 因此, 在步骤 100中所创建出的目标容器组不会占用目标集群中的物理资源; 若 第一集群管理系统纳管有物理资源,那目标容器组亦不会占用第一集群管理系统所纳管 的物理资源。
[61]继续参考图 1 , 在步骤 101 中, 第一集群管理系统可将目标容器组, 调度至符合用 户所提交的任务需求的目标虚拟节点。 其中, 考虑到其它类型的集群管理系统中通常支 持用户指定所期望使用的逻辑资源组, 为此, 在步骤 100中, 第一集群管理系统中也适 应性地支持用户在任务需求中指示出所期望使用的虚拟节点。 这样, 在步骤 101中, 可 将目标容器组调度至任务需求中所指示的虚拟节点, 作为目标虚拟节点。 当然, 若任务 需求中并未指示出所需使用的虚拟节点, 则在步骤 101中, 第一集群管理系统则可按照 自身原生的调度逻辑中的调度策略,基于任务需求中所反映的期望使用的物理资源规格 等信息, 筛选出符合用户所提交任务需求的目标虚拟节点。
[62]参考图 3 , 承接前述示例性实现方案中为自定义工作负载资源所关联的控制器, 在 步骤 101中, 可由控制器在目标容器组中指定所需调度到的目标虚拟节点, 以将目标容 器组调度至目标虚拟节点上。
[63]本实施例中, 虚拟节点和逻辑资源组之间是 —映射的, 第一集群管理系统中可记 录这种映射关系。 对于第二集群管理系统在目标集群上所划分出的各个逻辑资源组, 均 在第一集群管理系统中创建有相映射的虚拟节点。 这样, 在步骤 101中所命中的目标虚 拟节点将存在相映射的逻辑资源组。
[64]继续参考图 1 , 在步骤 102中, 若目标虚拟节点与第二集群管理系统中所划分出的 目标逻辑资源组相映射, 则可确定需向第二集群管理系统提交工作任务。
[65]这里, 本实施例中在各个虚拟节点中封装了用于按照所需任务格式创建工作任务的 处理逻辑。 例如, 前述的目标虚拟节点中即封装有用于按照第二集群管理系统所要求任 务格式创建工作任务的处理逻辑。 基于此, 本实施例中, 在步骤 102中, 可利用目标虚 拟节点来向第二集群管理系统提交工作任务, 当然, 这是可选地, 本实施例中并无需限 定提交工作任务这一操作的执行主体,也可由第一集群管理系统中的其它组件来实施该 操作。
[66]这样, 本实施例中, 在步骤 102中, 对于目标虚拟节点来说, 可基于前述用户提交 的任务需求, 生成符合第二集群管理系统所要求的任务格式的工作任务。 这里, 目标虚 拟节点所生成的工作任务中将指示需在目标逻辑资源组中执行。 应当理解的是, 目标虚 拟节点可记录自身所映射的目标逻辑资源组, 并在生成工作任务时, 将目标逻辑资源组 的标识写入至工作任务中的相应字段中。
[67]至此, 在第一集群管理系统中的目标虚拟节点上, 产生了符合第二集群管理系统所 要求的任务格式的工作任务, 且该工作任务能够准确反映用户所提交的任务需求。 [68]参考图 2, 目标虚拟节点可作为第一集群管理系统的管控出口, 将所生成的工作任 务提交至第二集群管理系统中。 这样, 第二集群管理系统将接收到符合自身所要求任务 格式的工作任务。
[69]在此基础上, 第二集群管理系统可按照自身原生的调度逻辑, 对目标虚拟节点所提 交的工作任务进行调度。 由于该工作任务中指示在目标逻辑资源组中执行, 因此, 第二 集群管理系统可将该工作任务调度至在目标集群上所换分出的目标逻辑资源组中,这样, 该工作任务将在目标逻辑资源组在目标集群中所占用的物力资源上执行。
[70]可知,本实施例中,从用户的视角来看,其是在第一集群管理系统中提交任务需求, 只需学习第一集群管理系统的交互知识即可,用户对目标集群上所采用的第二集群管理 系统并无感知。 从第一集群管理系统的视角来看, 基于其内所创建的虚拟节点实现与不 同类型的集群管理系统之间的桥接,通过虚拟节点可产生出合适格式的工作任务并准确 地指引其它类型的集群管理系统将工作任务调度至用户期望的逻辑资源组内。 而从第二 集群管理系统的视角来看, 其可从第一集群系统中接收到符合自身所要求任务格式的工 作任务, 且工作任务中已经指示有所需的目标逻辑资源组, 因此, 第二集群管理系统可 按照自身原生的调度逻辑, 将工作任务调度至目标逻辑资源组中执行。
[71]另夕卜, 值得说明的是, 图 4为本公开一示例性实施例提供的一种调度方法的可选逻 辑示意图, 参考图 4, 本实施例中的第一集群管理系统可覆盖多个集群, 不同集群上所 采用的集群管理系统的类型可能不同。也即是,除目标集群外,还存在其它集群。而且, 其它集群上所采用的集群管理系统中所划分出的逻辑资源组,在第一集群管理系统中也 映射为虚拟节点, 以支持第一集群管理系统向其它集群上所采用的集群管理系统提交相 应任务格式的工作任务, 以使工作任务调度至其它集群中的逻辑资源组中执行。
[72]综上, 本实施例中, 针对期望覆盖到的目标集群, 可保留目标集群上原本所采用的 第二集群管理系统, 目标集群中的物理资源并无需纳管至基于容器的第一集群管理系统 中, 而是由第一集群管理系统作为控制面, 通过桥接的方式连通至目标集群上原本所采 用的第二集群管理系统。 在此构思下, 可将第二集群管理系统在目标集群上所划分出的 逻辑资源组, 映射为第一集群管理系统中的虚拟节点, 并可将第二集群管理系统所认知 的工作任务, 抽象为第一集群管理系统中的容器组, 基于此, 用户可在第一集群管理系 统中提交任务需求, 第一集群管理系统可进行容器组创建及调度, 若调度到的目标虚拟 节点与第二集群管理系统中所划分出的逻辑资源组相映射,则可向第二集群管理系统提 交满足该任务需求且符合所需任务格式的工作任务, 这样, 第二集群管理系统可接管到 用户在第一集群管理系统中提交的任务需求, 并在目标集群上完成处理。 据此, 基于容 器的集群管理系统可无障碍地覆盖至更多类型的集群。
[73]在上述或下述实施例中, 第一集群管理系统可为第二集群管理系统在目标集群上所 划分出的各个逻辑资源组分别创建相映射的虚拟节点。
[74]参考图 3, 第一集群管理系统中可设置有逻辑资源组管理器, 基于此, 可由逻辑资 源组管理器监测第二集群管理系统中逻辑资源组的增删事件; 并负责按照监测到的增删 事件, 在第一集群管理系统中创建/删除虚拟节点。
[75]这样, 第一集群管理系统中的虚拟节点创建流程可大致描述为以下。
[76] K逻辑资源组管理器可按照固定的时间间隔向第二集群管理系统请求查询所有逻辑 资源组的信息。
[77] 2.针对第二集群管理系统中存在的每个逻辑资源组,检查第一集群管理系统中是否 已经存在对应的虚拟节点,若不存在则为该逻辑资源组创建虚拟节点,并记录映射关系。
[78] 3.若查询到第二集群管理系统中的某个逻辑资源组已被删除,则将第一集群管理系 统中与该逻辑资源组相映射的虚拟节点也进行删除。
[79]这可有效保证第一集群管理系统中的虚拟节点与其它集群管理系统中所划分出的逻 辑资源组 - 映射且生命周期 同步。
[80]另外, 本实施例中还提出, 第一集群管理系统还可支持监测第二集群管理系统中所 划分出的各逻辑资源组的资源水位状态。 为此, 在本实施例提出, 可将第二集群管理系 统中各逻辑资源组的资 源水位状态映射至其在第一集群管理系统中所对应的虚拟节点 上, 以通过虚拟节点透出第二集群管理系统中相应逻辑资源组的资源水位状态。
[81]在一种可选实现方案中: 可由前述的逻辑资源组管理器监测第二集群管理系统中逻 辑资源组的资源水位状态 ; 在监测到任一逻辑资源组的资源水位状态发生变化的情况下, 逻辑资源组管理器可更新 第一集群管理系统中与该逻辑资源组相映射的虚拟节点所对 应的资源水位状态。 实际应用中, 第一集群管理系统中通常存在用于维护各个节点上资 源水位状态的接口 APL 基于此, 逻辑资源组管理器在监测到某个逻辑资源组的资源水 位状态发生变化的情况下, 可触发与该逻辑资源组映射的虚拟节点调用这类接口 APL 以更新第一集群管理系统中为该虚拟节点所维护的资源水位状态。
[82]可以理解的是, 本实施例中, 第一集群管理系统中的虚拟节点并不占用物理资源, 因此, 第一集群管理系统中将不再为虚拟节点记录实际的资源水位状态, 而是通过前述 的映射操作, 将逻辑资源组的资源水位状态映射到相对应的虚拟节点上。 这样, 在第一 集群管理系统中, 虚拟节点的资源水位状态, 实质透出的即为与其相映射的逻辑资源组 的资源水位状态。
[83]在此基础上, 本实施例中进一步提出: 在用户在第一集群管理系统中提交任务需求 的过程中, 可向用户展示各虚拟节点所对应的资源水位状态, 以供用户基于资源水位状 态在任务需求指定出所需使用的虚拟节点, 作为前述目标虚拟节点。
[84]除此之外, 本实施例中为虚拟节点所维护的资源水位状态, 还可作为第一集群管理 系统自身原生调度逻辑中的一项参考依据, 以在任务需求中未指定虚拟节点的情况下, 保证为任务需求所命中的目标虚拟节点能够符合任务需求中所期望使用的资源规格,进 而保证第二集群管理 系统能够将该任务需求相对应的工作任务调度至资源水位足够的 逻辑资源组中。
[85]本实施例中为虚拟节点所维护的资源水位状态, 还可作为第一集群管理系统中的运 维依据, 从而支持第一集群管理系统作为统一的运维入口, 来实现对所覆盖的各个集群 的运维工作。
[86]进一步地, 本实施例中还提出, 第一集群管理系统除了可支持按照任务需求向各类 集群管理系统提交工作任务之外, 还可支持监测对外所提交的各工作任务的执行状态。
[87]为此, 本实施例中, 以目标虚拟节点为例, 目标虚拟节点可从第二集群管理系统中 获取已提交的工作任务的执行状态; 利用目标虚拟节点按照获取到的工作任务的执行状 态, 更新目标容器组的执行状态。 在此基础上, 第一集群管理系统可按照目标容器组的 状态信息, 更新任务需求对应的执行状态, 以供用户查询。
[88]参考图 3 , 承接前文提供的示例性实现方式, 可由第一集群管理系统中的与自定义 工作负载资源关联的控制器, 按照监测到目标容器组的状态信息, 更新自定义工作负载 资源所对应的执行状态。 另外, 第一集群管理系统可支持用户通过输入查询命令, 来针 对单个已提交的任务需求(例如,可实现为自定义工作负载资源)进行执行状态的查询, 也可针对多个已提交的任务需求进行批量查询, 在此不做限定。
[89]在一种示例性的实际应用方案中: 目标虚拟节点可根据从第二集群管理系统中监测 到的工作任务的执行状态, 更新该工作任务对应的目标容器组的状态字段中记录的字段 值, 以实现更新目标容器组的执行状态。 前述为第二集群管理系统所设置的自定义工作 负载资源关联的控制器在监测到目标容器组中的状态字段发生字段值变化后,可更新用 户所创建出的相应自定义工作负载资源中状态字段中记录的字段值, 以实现更新该自定 义工作负载资源的执行状态。
[90]另外, 参考图 3 , 本实施例中, 第一集群管理系统还在所需覆盖的各集群上所采用 的集群管理系统中部署有代理组件。还是以目标集群上所采用的第二集群管理系统为例, 参考图 3 , 第二集群管理系统中的代理组件, 可与第二集群管理系统中的各中原生组件 通信连接, 以从这些原生组件中获取第二集群管理系统所划分出的各逻辑资源组的资源 水位状态以及工作任务的执行状态等信息。 另夕卜, 这些原生组件中包含第二集群管理系 统中的原生调度器, 这样, 第一集群管理系统中的目标虚拟节点可向第二集群管理系统 中的代理组件提交工作任务, 而该代理组件可将接收到的工作任务转交至第二集群管理 系统中的原生调度器, 以使该原生调度器将工作任务调度至前述的目标逻辑资源组中执 行。
[91]应当理解的是, 考虑到不同类型的集群管理系统中原生组件所需的交互逻辑存在差 异, 因此, 本实施例中, 可为不同类型的集群管理系统设计不同的代理组件, 以保证代 理组件与集群管理系统之间的适配性,从而保证第一集群管理系统能够通过代理组件和 虚拟节点实现与其它集群管理系统之间的桥接。
[92]基于此, 以第一集群管理系统为 Kubernetes系统, 第二集群管理系统为 Slurm系统 为例, 在 Kubernetes系统中提交并监测 Slurm作业的流程大致可描述为以下。
[93] 1、 用户在为 Kubernetes系统内创建出与 Slurm对应的自定义工作负载资源。
[94] 2> 该自定义工作负载资源所关联的控制器 Operatr可监测到 Kubernetes系统中出现 新的自定义工作负载资源; Operatr可解析出该自定义工作负载资源中包含的信息项, 以理解到用户的任务需求, 并创建出一个或多个目标容器组, 并创建出的目标容器组内 部指定所需要调度到的目标虚拟节点。
[95] 3. 目标虚拟节点为调度到本节点的目标容器组创建 Slurm作业, 并提交至 Slurm集 群中的代理组件; 目标虚拟节点还可按照固定的时间间隔, 向 Slurm集群中的代理组件 请求查询该 Slurm作业的执行状态, 并同步更新目标容器组的执行状态。 目标虚拟节点 还可负责通过 Slurm集群中的代理组件读取到该 Slurm作业的日志内容。
[96] 4> 前述的 Operator可监测目标容器组的执行状态 (例如, 完成 Completed> 成功 Succeeded> 失败 Fail等状态) , 并同步更新前述用户所创建出的自定义工作负载资源 的执行状态。
[97]综上, 本实施例中, 不仅可支持在第一集群管理系统中提交各种类型的工作任务, 还可支持在第一集群管理系统中监测已提交的各工作任务的执行状态, 以及还可支持在 第一集群管理系统中间接透出所覆盖各集群中的物理资源使用情况。这可使得第一集群 管理系统能够施展自身的灵活性和自动化能力。
[98]以下提供几种本实施例的调度方法所适用的示例性应用场景。
[99]在一种示例性的应用场景中: 第一集群上采用 Kubernetes系统作为调度及资源管理 的系统, 第一集群不是高性能计算集群。 当用户需要处理一项 AI推理工作时, 第一集 群中的物理资源不足以支持完成该 AI推理工作。 这种情况下, 即可通过本实施例提供 的调度方法, 将第二集群 (是高性能计算集群)作为第一集群的一个外部集群。 假设该 外部集群上采用的是 Slurm系统作为调度及资源管理的系统, 该 Slurm系统可按照本实 施例提供的调度方法桥接至该 Kubernetes系统上。
[100]在该示例性的应用场景中, 用户可在 Kubernetes 系统提交任务需求, 基于本实施 例提供的调度方法, Kubernetes系统可通过虚拟节点向该外部集群上的 Slurm系统提交 Slurm作业,以使该 Slurm系统将该 Slurm作业调度至该虚拟节点对应的分区 ( Partition ) 中。
[101]可知, 基于本实施例提供的调度方法, 可将用户需要处理的 AI推理工作无障碍地 调度至该外部集群上, 这样, 可在用户无感知的情况下, 借用该外部集群的物力资源来 处理该 AI推理工作。
[102]在另一种示例性的应用场景中, Kubernetes系统不纳管任何物理集群, 而是仅作为 控制面。 多个物理集群可保留各自所采用的集群管理系统, 且这些集群管理系统可按照 本实施例提供的调度方法, 桥接至该 Kubernetes系统。 基于此, 用户可在该 Kubernetes 系统中提交任务需求,该 Kubernetes系统可通过进行容器组创建及调度而将该任务需求 调度至合适的虚拟节点上, 而通过桥接, 该虚拟节点可向相应物理集群上的集群管控系 统提交工作任务, 从而实现将工作任务调度至该物理集群上的相应逻辑资源组上。
[103]可知, 基于本实施例提供的调度方法, 可通过 Kubernetes 系统灵活地将用户提交 的任务需求调度至合适的物理集群, 并在物理集群中进一步调度至合适的逻辑资源组中, 以完成处理任务需求。
[104]应当理解的是, 上述的应用场景仅是示例性的, 本实施例并不限于此, 本实施例 提供的调度方法还可适用于其它应用场景, 在此不做更多示例。
[105]需要说明的是, 在上述实施例及附图中的描述的一些流程中, 包含了按照特定顺 序出现的多个操作, 但是应该清楚了解, 这些操作可以不按照其在本文中出现的顺序来 执行或并行执行, 操作的序号如 101、 102等, 仅仅是用于区分开各个不同的操作, 序 号本身不代表任何的执行顺序。 另夕卜, 这些流程可以包括更多或更少的操作, 并且这些 操作可以按顺序执行或并行执行。 需要说明的是, 本文中的 “第一”、 “第二 ”等描述, 是 用于区分不同的集群、 集群管理系统等, 不代表先后顺序, 也不限定 “第一 ”和 “第二 ”是 不同的类型。
[106]图 5 为本公开另一示例性实施例提供的一种集群管理系统的结构示意图。 如图 5 所示, 该集群管理系统中可包括: 管控组件 50及虚拟节点。 为便于描述, 以下将图 5 将该集群管理系统描述为第一集群管理系统, 本实施例中, 第一集群管理系统是基于容 器的, 在目标集群上采用的第二集群管理系统中所划分出的逻辑资源组, 可映射为第一 集群管理系统中的虚拟节点。
[107]其中, 管控组件 50可用于为用户在所述第一集群管理系统中提交的任务需求, 创 建目标容器组; 将所述目标容器组, 调度至符合所述任务需求的目标虚拟节点 60; 若所 述目标虚拟节点 60与所述第二集群管理系统中所划分出的目标逻辑资源组相映射, 则 可向所述第二集群管理系统提交满足所述任务需求的工作任务, 以使所述第二集群管理 系统将所述工作任务调度至所述目标集群中的所述目标逻辑资源组中执行; 其中, 所述 工作任务符合所述第二集群管理系统所要求的任务格式。
[108]在一可选实施例中, 管控组件 50在为用户在所述第一集群管理系统中提交的任务 需求, 创建目标容器组时, 可具体用于: 响应于监测到所述用户基于所述任务需求创建 出自定义工作负载资源, 为所述自定义工作负载资源创建目标容器组; 其中, 所述自定 义工作负载资源中包含有所述第二集群管理系统所要求的任务格式中所需的信息项。
[109]在一可选实施例中, 管控组件 50中可包含与所述自定义工作负载资源关联的控制 器 51; 控制器 51可具体用于: 监测所述第一集群管理系统中所出现的自定义工作负载 资源; 为所监测到的自定义工作负载资源创建目标容器组。
[110]在一可选实施例中, 控制器 51还可具体用于: 在所述目标容器组中指定所需调度 到的目标虚拟节点, 以将所述目标容器组调度至所述目标虚拟节点上。
[111]在一可选实施例中, 管控组件 50中还可包含逻辑资源组管理器 52, 逻辑资源组管 理器 52可用于: 监测所述第二集群管理系统中逻辑资源组的增删事件; 按照监测到的 增删事件, 在所述第一集群管理系统中创建 /删除虚拟节点。
[112]在一可选实施例中, 逻辑资源组管理器 52还可用于: 监测所述第二集群管理系统 中逻辑资源组的资源水位状态;在监测到任一逻辑资源组的资源水位状态发生变化的情 况下, 更新所述第一集群管理系统中与所述逻辑资源组相映射的虚拟节点所对应的资源 水位状态。
[113]在一可选实施例中, 管控组件 50还可用于: 在所述用户在所述第一集群管理系统 中提交所述任务需求的过程中, 向所述用户展示各虚拟节点所对应的资源水位状态, 以 供所述用户基于资源水位状态在所述任务需求中指示所需使用的虚拟节点。
[114]在一可选实施例中, 第二集群管理系统中设置有用于与所述第一集群管理系统通 信的代理组件 70; 目标虚拟节点 60可用于: 基于所述任务需求, 生成符合所述第二集 群管理系统所要求的任务格式的工作任务,所述工作任务指示在所述目标逻辑资源组中 执行; 将所述工作任务提交至所述第二集群管理系统中的所述代理组件 70, 以使所述代 理组件 70将所述工作任务提交至所述第二集群管理系统中的任务调度器进行任务调度。
[115]在一可选实施例中, 目标虚拟节点 60还可用于: 从所述第二集群管理系统中获取 所述工作任务的执行状态; 按照获取到的所述工作任务的执行状态, 更新所述目标容器 组的执行状态; 控制器 51还可用于: 按照所述目标容器组的状态信息, 更新所述任务 需求对应的执行状态, 以供所述用户查询。
[116]在一可选实施例中, 除所述目标集群外, 还存在其它集群; 其它集群上所采用的 集群管理系统中所划分出的逻辑资源组,在所述第一集群管理系统中也映射为虚拟节点, 以支持所述第一集群管理 系统向其它集群上所采用的集群管理系统提交相应任务格式 的工作任务, 以使工作任务调度至其它集群中的逻辑资源组中执行。
[117]在一可选实施例中,所述第二集群管理系统采用 Slurm系统、 负载共享调度系统或 便携批处理系统, 所述目标集群采用高性能计算集群。
[118]在一可选实施例中, 所述目标容器组不占用物理资源, 所述第一集群管理系统中 的虚拟节点也不占用物理资源。
[119]进一步, 图 5 中仅示意性给出部分组件, 并不意味着该集群管理系统只包括图 5 所示组件。该集群管理系统中所涉及到的各组件部署在该集群管理系统中的容器中即可。
[120]值得说明的是, 上述关于集群管理系统各实施例中的技术细节, 可参考前述的方 法实施例中关于第一集群管理系统的相关描述, 为节省篇幅, 在此不再赘述, 但这不应 造成本公开保护范围的损失。
[121]相应地, 本公开实施例还提供一种存储有计算机程序的计算机可读存储介质, 计 算机程序被执行时能够实现上述方法实施例中的各步骤。
[122]相应地, 本公开实施例还提供一种计算机程序产品, 其所包含的计算机程序被执 行时能够实现上述方法实施例中的各步骤。
[123]本领域内的技术人员应明白, 本公开的实施例可提供为方法、 系统、 或计算机程 序产品。 因此, 本公开可采用完全硬件实施例、 完全软件实施例、 或结合软件和硬件方 面的实施例的形式。 而且, 本公开可采用在一个或多个其中包含有计算机可用程序代码 的计算机可用存储介质 (包括但不限于磁盘存储器、 CD-ROM. 光学存储器等)上实施 的计算机程序产品的形式。
[124]本公开是参照根据本公开实施例的方法、 设备(系统) 、 和计算机程序产品的流 程图和 /或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的 每一流程和 /或方框、 以及流程图和 /或方框图中的流程和 /或方框的结合。 可提供这 些计算机程序指令到通用计算机、 专用计算机、 嵌入式处理机或其他可编程数据处理设 备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行 的指令产生用于实现在 流程图一个流程或多个流程和 /或方框图一个方框或多个方框 中指定的功能的装置。
[125]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定 方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品,该指令装置实现在流程图一个流程或多个流程和 /或方框图一个方框 或多个方框中指定的功能。
[126]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机 或其他可编程设备上执行 的指令提供用于实现在流程图一个流程或多个流程和 /或方 框图一个方框或多个方框中指定的功能的步骤。
[127]还需要说明的是, 术语 “包括”、 “包含 ”或者其任何其他变体意在涵盖非排他性的包 含, 从而使得包括一系列要素的过程、 方法、 商品或者设备不仅包括那些要素, 而且还 包括没有明确列出的其他要素, 或者是还包括为这种过程、 方法、 商品或者设备所固有 的要素。 在没有更多限制的情况下, 由语句 “包括一个 ..... ”限定的要素, 并不排除在包 括所述要素的过程、 方法、 商品或者设备中还存在另外的相同要素。
[128]需要说明的是, 本公开所涉及的用户信息 (包括但不限于用户设备信息、 用户个 人信息等 )和数据(包括但不限于用于分析的数据、 存储的数据、 展示的数据等) , 均 为经用户授权或者经过各方充分授权的信息和数据, 并且相关数据的收集、 使用和处理 需要遵守相关国家和地区的相关法律法规和标准, 并提供有相应的操作入口, 供用户选 择授权或者拒绝。
[129]以上所述仅为本公开的实施例而已, 并不用于限制本公开。 对于本领域技术人员 来说, 本公开可以有各种更改和变化。 凡在本公开的精神和原理之内所作的任何修改、 等同替换、 改进等, 均应包含在本公开的保护范围之内。

Claims

权利要求书
1、 一种调度方法, 适用于基于容器的第一集群管理系统; 目标集群上采用的第二 集群管理系统所划分出的逻辑资源组, 映射为所述第一集群管理系统中的虚拟节点, 所 述方法包括: 为用户在所述第一 集群管理系统中提交的任务需求, 创建目标容器组; 将所述 目标容器组, 调度至符合所述任务需求的目标虚拟节点; 若 所述目标虚拟节点与所述第二集群管理系统中所划分 出的目标逻辑资源组相映 射, 则向所述第二集群管理系统提交满足所述任务需求的工作任务, 以使所述第二集群 管理系统将所述工作任务调度至所述目标集群中的所述目标逻辑资源组中执行; 其 中, 所述工作任务符合所述第二集群管理系统所要求的任务格式。
2、 根据权利要求 1 所述的方法, 其中, 为用户在所述第一集群管理系统中提交的 任务需求, 创建目标容器组, 包括: 响应于监测到所述用户基于所述任务需求创建 出自定义工作负载资源, 为所述自定 义工作负载资源创建目标容器组; 其 中, 所述自定义工作负载资源中包含有所述第二集群管理系统所要求的任务格式 中所需的信息项。
3、 根据权利要求 2所述的方法, 其中, 所述第一集群管理系统中设置有与所述自 定义工作负载资源关联的控制器; 响应于监测到所述用户基于所述任务需求创建出自定 义工作负载资源, 为所述自定义工作负载资源创建目标容器组, 包括: 利用所述控制 器监测所述第一集群管理系统中所出现的自定义工作负载资源; 利用所述控制 器为所监测到的自定义工作负载资源创建目标容器组。
4、 根据权利要求 3所述的方法, 其中, 将所述目标容器组, 调度至符合所述任务 需求的目标虚拟节点, 包括: 利用所述控制 器在所述目标容器组中指定所需调度到的目标虚拟节点, 以将所述目 标容器组调度至所述目标虚拟节点上。
5、 根据权利要求 1 所述的方法, 其中, 所述第一集群管理系统中设置有逻辑资源 组管理器, 所述方法还包括: 利用所述逻辑 资源组管理器监测所述第二集群管理系统中逻辑资源组的增删事件; 按照监测到 的增删事件, 在所述第一集群管理系统中创建 /删除虚拟节点。
6、 根据权利要求 5所述的方法, 还包括: 利 用所述逻辑资源组管理器监测所述第二集群管理系统中逻辑 资源组的资源水位 状态; 在监测到任一逻辑 资源组的资源水位状态发生变化的情况下, 更新所述第一集群管 理系统中与所述逻辑资源组相映射的虚拟节点所对应的资源水位状态。
7、 根据权利要求 6所述的方法, 还包括: 在所述用户在所述第一 集群管理系统中提交所述任务需求的过程中, 向所述用户展 示各虚拟节点所对应的资源水位状态, 以供所述用户基于资源水位状态在所述任务需求 中指示所需使用的虚拟节点, 作为所述目标虚拟节点。
8、 根据权利要求 1 所述的方法, 其中, 所述第二集群管理系统中设置有用于与所 述第一集群管理系统通信的代理组件; 向所述第二集群管理系统提交满足所述任务需求 的工作任务, 包括: 利用所述 目标虚拟节点基于所述任务需求,生成符合所述第二集群管理系统所要求 的任务格式的工作任务, 所述工作任务指示在所述目标逻辑资源组中执行; 利 用所述目标虚拟节点将所述工作任务提交至所述第二集群管理 系统中的所述代 理组件, 以使所述代理组件将所述工作任务提交至所述第二集群管理系统中的任务调度 器进行任务调度。
9、 根据权利要求 1所述的方法, 还包括: 利用所述 目标虚拟节点从所述第二集群管理系统中获取所述工作任务的执行状态; 利用所述 目标虚拟节点按照获取到的所述工作任务的执行状态, 更新所述目标容器 组的执行状态; 按照所述 目标容器组的状态信息, 更新所述任务需求对应的执行状态, 以供所述用 户查询。
10、 根据权利要求 1所述的方法, 其中, 除所述目标集群外, 还存在其它集群; 其 它集群上所采用的集群管理系统中所划分出的逻辑资源组,在所述第一集群管理系统中 也映射为虚拟节点, 以支持所述第一集群管理系统向其它集群上所采用的集群管理系统 提交相应任务格式的工作任务, 以使工作任务调度至其它集群中的逻辑资源组中执行。
11、 根据权利要求 1或 10所述的方法, 其中, 所述第二集群管理系统采用 Slurm 系统、 负载共享调度系统或便携批处理系统, 所述目标集群采用高性能计算集群。
12、 根据权利要求 1所述的方法, 其中, 所述目标容器组不占用物理资源, 所述第 一集群管理系统中的虚拟节点也不占用物理资源。
13、 一种集群管理系统, 其中, 所述集群管理系统是基于容器的, 目标集群上采用 的第二集群管理系统所划分出的逻辑资源组, 映射为所述集群管理系统中的虚拟节点 , 所述集群管理系统用于执行权利要求 1-12任一项所述的调度方法, 以基于用户在所述 集群管理系统提交的任务需求, 向所述第二集群管理系统提交符合所需任务格式的工作 任务, 以使所述工作任务在所述目标集群中的目标逻辑资源组中执行。
14、 一种存储计算机程序的计算机可读存储介质, 其中, 当所述计算机程序被一个 或多个处理器执行时, 致使所述一个或多个处理器执行权利要求 1-12任一项所述的调 度方法。
15、 一种计算机程序产品, 包括计算机程序, 其中, 当所述计算机程序被一个或多 个处理器执行时, 致使所述一个或多个处理器执行权利要求 1-12任一项所述的调度方 法。
PCT/IB2025/055117 2024-05-23 2025-05-16 一种调度方法、系统、计算机程序产品及存储介质 Pending WO2025243162A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202410649671.4 2024-05-23
CN202410649671.4A CN121008877A (zh) 2024-05-23 2024-05-23 一种调度方法、系统、计算机程序产品及存储介质

Publications (1)

Publication Number Publication Date
WO2025243162A1 true WO2025243162A1 (zh) 2025-11-27

Family

ID=97727873

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2025/055117 Pending WO2025243162A1 (zh) 2024-05-23 2025-05-16 一种调度方法、系统、计算机程序产品及存储介质

Country Status (2)

Country Link
CN (1) CN121008877A (zh)
WO (1) WO2025243162A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113553190A (zh) * 2021-09-17 2021-10-26 阿里云计算有限公司 计算集群系统、调度方法、设备及存储介质
US20230019200A1 (en) * 2021-07-14 2023-01-19 Advanced Micro Devices, Inc. Interactive access to headless cluster managers
CN116010027A (zh) * 2022-12-21 2023-04-25 阿里巴巴(中国)有限公司 管理任务处理集群的方法、执行任务的方法及容器集群
CN116700954A (zh) * 2023-05-17 2023-09-05 新华三人工智能科技有限公司 一种资源管理方法以及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230019200A1 (en) * 2021-07-14 2023-01-19 Advanced Micro Devices, Inc. Interactive access to headless cluster managers
CN113553190A (zh) * 2021-09-17 2021-10-26 阿里云计算有限公司 计算集群系统、调度方法、设备及存储介质
CN116010027A (zh) * 2022-12-21 2023-04-25 阿里巴巴(中国)有限公司 管理任务处理集群的方法、执行任务的方法及容器集群
CN116700954A (zh) * 2023-05-17 2023-09-05 新华三人工智能科技有限公司 一种资源管理方法以及装置

Also Published As

Publication number Publication date
CN121008877A (zh) 2025-11-25

Similar Documents

Publication Publication Date Title
US11853816B2 (en) Extending the Kubernetes API in-process
JP7275171B2 (ja) オンデマンドネットワークコード実行システムにおけるオペレーティングシステムカスタマイゼーション
US11182196B2 (en) Unified resource management for containers and virtual machines
US9851989B2 (en) Methods and apparatus to manage virtual machines
US8434081B2 (en) Storage manager for virtual machines with virtual storage
US10873623B2 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US11334372B2 (en) Distributed job manager for stateful microservices
CN111176818B (zh) 分布式预测的方法、装置、系统、电子设备及存储介质
US20150169412A1 (en) Saving program execution state
US11061729B2 (en) Throttling logging processes
US11645098B2 (en) Systems and methods to pre-provision sockets for serverless functions
CN112817748A (zh) 一种基于安卓虚拟机处理任务的方法、计算机设备
WO2021252043A1 (en) Running pbs jobs in kubernets
US10845997B2 (en) Job manager for deploying a bundled application
CN120166035A (zh) 基于Kubernetes的Jenkins持续集成方法及系统
CN120277001B (zh) 测试任务调度方法、设备、存储介质及程序产品
CN113326098A (zh) 支持kvm虚拟化与容器虚拟化的云管平台
US12609876B2 (en) Network service stitching for cloud native network functions and virtual network functions
Zheng et al. Autoscaling high-throughput workloads on container orchestrators
CN121008877A (zh) 一种调度方法、系统、计算机程序产品及存储介质
CN114327752A (zh) 一种微服务配置方法、装置及设备
US20250291638A1 (en) API Multiplexing of Multiple Pod Requests
US9436523B1 (en) Holistic non-invasive evaluation of an asynchronous distributed software process
US20250321783A1 (en) Provisioning Tasks Across a Plurality of Clusters Based on Priority and Geographic Proximity
US20170147408A1 (en) Common resource updating apparatus and common resource updating method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25807300

Country of ref document: EP

Kind code of ref document: A1