An application scheduling method, platform and storage medium
By determining and scheduling resource requirements information of virtual nodes and containers to be scheduled in edge cluster storage management, it is possible to manage edge clusters of various application types, and improve the efficiency of storage management.
Patent Information
- Application Number
- CN202110492267.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-05-06
- Publication Date
- 2025-06-20
- Estimated Expiration
- 2041-05-06
AI Technical Summary
When implementing edge cluster storage management, the prior art can only manage edge clusters of a single application type, resulting in low usage efficiency.
By determining the resource requirement information of the virtual node with the first identification information and the container to be scheduled with the second identification information, the target node is determined from the virtual node based on the resource requirement information, and the container is scheduled to the target node, and finally creating a virtual application instance through the target node to achieve the management of edge clusters of various application types.
It effectively improves the scheduling efficiency of edge cluster storage management for heterogeneous applications, and solves the limitations of single application type management.
Smart Images

Figure CN113312161B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technologies, and in particular, to an application scheduling method, platform, and storage medium. Background Art
[0002] With the rapid development of communication network technologies, Mobile Edge Computing (MEC) technologies have also become increasingly mature and widely used, such as in autonomous driving and smart factories. Currently, there are many implementation solutions and open-source communities for edge clusters, such as KubeEdge, k3s, OpenYurt in the Kubernetes (k8s) community for managing container clusters, and Starlingx, an edge infrastructure software platform in the OpenStack community for cloud computing management.
[0003] However, since the implementation mechanisms of storage solutions for edge clusters are different from each other, and the supported application types and formats are also diverse, when implementing edge cluster storage management using the above solutions, only edge clusters of a single application type can be managed, which results in a low usage efficiency of the current edge cluster storage solutions.
[0004] Content of the Application
[0005] To solve the above technical problems, embodiments of this application are expected to provide an application scheduling method, platform, and storage medium, which solve the problem that only edge clusters of a single application type can be managed when implementing edge cluster storage management, and implement a method for managing edge clusters of multiple application types during edge cluster storage management, effectively improving the scheduling efficiency of edge cluster storage management for heterogeneous applications.
[0006] The technical solution of this application is implemented as follows:
[0007] In a first aspect, an application scheduling method, the method includes:
[0008] Determine at least one first virtual node with first identification information; wherein, the first virtual node has a corresponding relationship with an edge cluster managed by an application scheduling platform;
[0009] Determine the resource requirement information of a first container to be scheduled with second identification information; wherein, the first container to be scheduled corresponds to a virtual application instance to be created;
[0010] Based on the resource requirement information, determine a target virtual node from the at least one first virtual node;
[0011] Schedule the first container to be scheduled to the target virtual node;
[0012] Based on the resource requirement information of the first container to be scheduled by the target virtual node, create the virtual application instance to be created, so that the virtual application instance to be created runs in the edge cluster corresponding to the target virtual node.
[0013] Optionally, the determining at least one first virtual node with the first identification information includes:
[0014] Determine at least one edge cluster managed by the application scheduling platform;
[0015] Determine the resource information of the at least one edge cluster to obtain at least one target resource information;
[0016] Based on each of the target resource information, generate at least one second virtual node corresponding to the at least one edge cluster;
[0017] Use the first identification information to identify the at least one second virtual node to obtain the at least one first virtual node.
[0018] Optionally, the generating at least one second virtual node corresponding to the at least one edge cluster based on each of the target resource information includes:
[0019] Based on each of the target resource information, determine the resource category corresponding to each of the target resource information;
[0020] Based on each of the resource categories corresponding to each of the target resource information, generate a corresponding virtual node to obtain the at least one second virtual node.
[0021] Optionally, before determining the resource requirement information of the first container to be scheduled with the second identification information, the method further includes:
[0022] Determine the configuration content of the virtual application instance to be created;
[0023] Based on the configuration content, create a target virtual application;
[0024] Based on the target virtual application, create a first reference scheduling container;
[0025] Use the second identification information to identify the first reference scheduling container to obtain the first container to be scheduled.
[0026] Optionally, the determining a target virtual node from the at least one first virtual node based on the resource requirement information includes:
[0027] Filter at least one third virtual node from the at least one first virtual node based on the resource requirement information and the service catalog information of the at least one first virtual node;
[0028] Evaluate each of the at least one third virtual node based on the service information of the at least one third virtual node to obtain at least one evaluation value;
[0029] Determine the target virtual node from the at least one third virtual node based on the at least one evaluation value.
[0030] Optionally, after creating the to-be-created virtual application instance by the target virtual node based on the resource requirement information of the first to-be-scheduled container, the method further includes:
[0031] Monitor the status of the first to-be-scheduled container;
[0032] If the status of the first to-be-scheduled container is the first status, update the status of the target virtual application to the first status; wherein, the first to-be-scheduled container being in the first status indicates that the running status of the to-be-created virtual application instance on the edge cluster corresponding to the target virtual node is the target status;
[0033] If the status of the first to-be-scheduled container is the second status, create a second reference scheduling container based on the target virtual application;
[0034] Identify the second reference scheduling container with the second identification information to obtain a second to-be-scheduled container;
[0035] Schedule the second to-be-scheduled container to the target virtual node;
[0036] Create the to-be-created virtual application instance by the target virtual node based on the resource requirement information of the second to-be-scheduled container.
[0037] Optionally, after updating the status of the target virtual application to the first status if the status of the first to-be-scheduled container is the first status, the method further includes:
[0038] If it is detected that the status of the target virtual application is the first status, delete the target virtual application;
[0039] If it is monitored that the target virtual application has been deleted, delete the first to-be-scheduled container.
[0040] Optionally, after updating the status of the target virtual application to the first status if the status of the first to-be-scheduled container is the first status, the method further includes:
[0041] Manage and control the target virtual node using the target communication method to achieve operation and maintenance management of the virtual application instance to be created.
[0042] In a second aspect, an application scheduling platform, the application scheduling platform at least includes: an edge system and a cloud system; wherein:
[0043] The edge system is used to manage at least one edge cluster managed by the application scheduling platform;
[0044] The cloud system is used to implement the steps of the application scheduling method as described in any one of the above based on at least one edge cluster managed by the edge system.
[0045] In a third aspect, a storage medium, on which an application scheduling program is stored, and when the application scheduling program is executed by a processor, it implements the steps of the application scheduling method as described in any one of the above.
[0046] The embodiments of the present application provide an application scheduling method, platform and storage medium. By determining at least one first virtual node with first identification information, and determining the resource requirement information of the first container to be scheduled with second identification information, then based on the resource requirement information, determining a target virtual node from at least one first virtual node, and scheduling the first container to be scheduled to the target virtual node, and finally creating a virtual application instance to be created by the target virtual node based on the resource requirement information of the first container to be scheduled, so that the virtual application instance to be created runs in the edge cluster corresponding to the target virtual node. In this way, based on the resource requirement information of the first container to be scheduled with second identification information, after determining the target virtual node from at least one first virtual node with first identification information, scheduling the first container to be scheduled to the target virtual node, so that the target virtual node creates the virtual application instance to be created based on the resource requirement information of the first container to be scheduled, solving the problem that when implementing edge cluster storage management currently, only edge clusters of a single application type can be managed, and realizing a method for managing edge clusters of multiple application types during edge cluster storage management, effectively improving the scheduling efficiency of edge cluster storage management for heterogeneous applications. Description of the Drawings
[0047] Figure 1 It is a schematic flowchart of an application scheduling method provided by an embodiment of the present application;
[0048] Figure 2 It is a schematic flowchart of another application scheduling method provided by an embodiment of the present application;
[0049] Figure 3 It is a schematic flowchart of yet another application scheduling method provided by an embodiment of the present application;
[0050] Figure 4 A schematic flowchart of an application scheduling method provided in another embodiment of the present application;
[0051] Figure 5 A schematic flowchart of another application scheduling method provided in another embodiment of the present application;
[0052] Figure 6 A schematic flowchart of yet another application scheduling method provided in another embodiment of the present application;
[0053] Figure 7 A schematic structural diagram of an application scheduling platform provided in an embodiment of the present application;
[0054] Figure 8 A schematic structural diagram of a cloud system provided in an embodiment of the present application;
[0055] Figure 9 A schematic structural diagram of an edge system and an edge cluster provided in an embodiment of the present application. Detailed implementation manners
[0056] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application.
[0057] An embodiment of the present application provides an application scheduling method. Referring to Figure 1 as shown, the method is applied to an application scheduling platform, and the method includes the following steps:
[0058] Step 101: Determine at least one first virtual node having first identification information.
[0059] Among them, the first virtual node has a corresponding relationship with the edge cluster managed by the application scheduling platform.
[0060] In the embodiment of the present application, the application scheduling platform may be an MEC platform for managing and controlling an edge cluster. The application scheduling platform can manage and control edge clusters of at least one application type and format at the same time. The function of the first identification information is information for distinguishing at least one first virtual node from the virtual nodes constituting the application scheduling platform. The first virtual node is different from the physical node of the application scheduling platform. At least one first virtual node is created based on the edge cluster managed by the application scheduling platform, that is, the application scheduling platform creates a corresponding at least one first virtual node based on each edge cluster managed by the application scheduling platform. The number of at least one first virtual node corresponding to each edge cluster is determined by the type included in each edge cluster.
[0061] Step 102: Determine the resource requirement information of the first container to be scheduled having second identification information.
[0062] Among them, the first container to be scheduled corresponds to the virtual application instance to be created.
[0063] In the embodiment of the present application, the role of the second identification information is the information used to distinguish the first container to be scheduled from the original container of the application scheduling platform. The container can be a Pod. The resource requirement information of the first container to be scheduled is pre-obtained by the application scheduling platform for the edge cluster. The resource requirement information of the first container to be scheduled at least includes requirements such as Service-Level Agreement (SLA) requirements and third-party service requirements.
[0064] Step 103: Determine a target virtual node from at least one first virtual node based on the resource requirement information.
[0065] In the embodiment of the present application, the target virtual node is the optimal virtual node among at least one first virtual node that can meet the resource requirement information of the first container to be scheduled. That is to say, the target virtual node can meet the resource requirement information of the first container to be scheduled.
[0066] Step 104: Schedule the first container to be scheduled to the target virtual node.
[0067] In the embodiment of the present application, scheduling the first container to be scheduled to the target virtual node means establishing a correspondence between the first container to be scheduled and the target virtual node, so that the target virtual node is bound to the first container to be scheduled, and the first container to be scheduled runs on the target virtual node.
[0068] Step 105: Create the virtual application instance to be created through the target virtual node based on the resource requirement information of the first container to be scheduled.
[0069] Among them, the virtual application instance to be created is created through the target virtual node based on the resource requirement information of the first container to be scheduled, so that the virtual application instance to be created runs on the edge cluster corresponding to the target virtual node.
[0070] In the embodiment of the present application, after the first container to be scheduled is scheduled to the target virtual node, the target virtual node creates the virtual application instance to be created corresponding to the first container to be scheduled according to the resource requirement information of the first container to be scheduled. In this way, after the virtual application instance to be created is successfully created, it will run in the edge cluster corresponding to the target virtual node. In this way, by creating virtual nodes to represent the edge clusters in the application scheduling platform, the application scheduling platform manages the corresponding edge clusters by managing the virtual nodes, and the virtual nodes are not restricted by the types of edge clusters. Therefore, the application scheduling platform can manage multiple different types of edge clusters, effectively improving the management efficiency of the application scheduling platform for edge clusters.
[0071] An application scheduling method provided by an embodiment of the present application determines at least one first virtual node with first identification information, determines the resource requirement information of a first container to be scheduled with second identification information, then determines a target virtual node from the at least one first virtual node based on the resource requirement information, and schedules the first container to be scheduled to the target virtual node. Finally, the target virtual node creates a virtual application instance to be created based on the resource requirement information of the first container to be scheduled, so that the virtual application instance to be created runs in the edge cluster corresponding to the target virtual node. In this way, after determining the target virtual node from at least one first virtual node with first identification information based on the resource requirement information of the first container to be scheduled with second identification information, the first container to be scheduled is scheduled to the target virtual node, so that the target virtual node creates the virtual application instance to be created based on the resource requirement information of the first container to be scheduled, solving the problem that only edge clusters of a single application type can be managed when implementing edge cluster storage management at present, and realizing a method for managing edge clusters of multiple application types when implementing edge cluster storage management, effectively improving the scheduling efficiency of edge cluster storage management for heterogeneous applications.
[0072] Based on the foregoing embodiments, an embodiment of the present application provides an application scheduling method. Referring to Figure 2 as shown, the method is applied to an application scheduling platform, and the method includes the following steps:
[0073] Step 201, determine at least one edge cluster managed by the application scheduling platform.
[0074] In the embodiment of the present application, the application scheduling platform counts at least one edge cluster it manages.
[0075] Step 202, determine the resource information of at least one edge cluster to obtain at least one target resource information.
[0076] In the embodiment of the present application, the application scheduling platform obtains the resource information of each edge cluster in at least one edge cluster to obtain at least one target resource information, that is, for each edge cluster, one target resource information will be counted. Among them, the target resource information includes various types of resource information of the edge cluster. Exemplarily, assuming that the application scheduling platform includes three edge clusters, namely Edge Cluster 1, Edge Cluster 2, and Edge Computing 3, the target resource information 1 corresponding to Edge Cluster 1, the target resource information 2 corresponding to Edge Cluster 2, and the target resource information 3 corresponding to Edge Cluster 3 are determined.
[0077] Step 203, generate at least one second virtual node corresponding to at least one edge cluster based on each target resource information.
[0078] In an embodiment of the present application, based on each piece of target resource information among at least one piece of target resource information, at least one second virtual node corresponding to each edge cluster is generated, that is, each piece of target resource information corresponds to at least one second virtual node. However, in some specific application scenarios, when two types of applications are provided in each edge cluster, a second virtual node needs to be generated for each type of application.
[0079] Exemplarily, if Edge Cluster 1 only provides the deployment and management (blueprint) application of the cloud application orchestration system Cloudify, a second virtual node 1 corresponding to Edge Cluster 1 is generated; if Edge Cluster 2 also only provides the deployment and management (blueprint) application of the cloud application orchestration system Cloudify, a second virtual node 2 corresponding to Edge Cluster 2 is generated; if Edge Cluster 3 provides the deployment and management (blueprint) application of the cloud application orchestration system Cloudify and the virtual machine (VM) application, two second virtual nodes 3 and 4 corresponding to Edge Cluster 3 need to be generated. Among them, the second virtual node 3 corresponds to the blueprint application provided by Edge Cluster 3, and the second virtual node 4 corresponds to the VM application provided by Edge Cluster 3.
[0080] Step 204: Identify at least one second virtual node with the first identification information to obtain at least one first virtual node.
[0081] In an embodiment of the present application, the first identification information is used to distinguish at least one second virtual node from the virtual nodes that already exist in the application scheduling platform, that is, the first identification information is the information used to uniquely identify the edge cluster managed by the application scheduling platform. Each second virtual node among at least one second virtual node is identified with the first identification information, so as to obtain at least one first virtual node, that is, by identifying several second virtual nodes with the first identification information, several first virtual nodes can be obtained.
[0082] Exemplarily, the first identification information can be denoted as label. In this way, as long as label is recognized, it can be determined that the corresponding virtual node is the virtual node corresponding to the edge cluster managed by the application scheduling platform.
[0083] Step 205: Determine the resource requirement information of the first container to be scheduled with the second identification information.
[0084] Among them, the first container to be scheduled corresponds to the virtual application instance to be created.
[0085] In an embodiment of the present application, the first container to be scheduled is a Pod created according to the virtual application instance to be created as needed, and the resource requirement information of the first container to be scheduled is the resource requirement information of the corresponding edge cluster. The second identification information is information used to uniquely identify the container corresponding to the virtual application instance to be created. For example, the second identification information may be Nodeselector.
[0086] Step 206: Determine a target virtual node from at least one first virtual node based on the resource requirement information.
[0087] In an embodiment of the present application, based on the resource requirement information, resource filtering is performed on the edge clusters corresponding to at least one first virtual node, and then optimal matching analysis is performed again on at least one first virtual node that basically meets the requirements after filtering, so as to determine the target virtual node. The target virtual node is usually one virtual node. The resource requirement information includes local resources such as Graphics Processing Unit (GPU), Field Programmable Gate Array (FPGA), and virtual network card.
[0088] Step 207: Schedule the first container to be scheduled to the target virtual node.
[0089] Step 208: Create the virtual application instance to be created through the target virtual node based on the resource requirement information of the first container to be scheduled.
[0090] Among them, the virtual application instance to be created is created through the target virtual node based on the resource requirement information of the first container to be scheduled, so that the virtual application instance to be created runs in the edge cluster corresponding to the target virtual node.
[0091] In an embodiment of the present application, the application scheduling platform creates the virtual application instance to be created through the target virtual node based on the resource requirement information of the first container to be scheduled, so as to effectively utilize the resources of the edge cluster to provide the service corresponding to the virtual application instance to be created.
[0092] Based on the foregoing embodiments, in other embodiments of the present application, step 203 may be implemented by steps 203a to 203b:
[0093] Step 203a: Determine the resource category corresponding to each target resource information based on each target resource information.
[0094] In an embodiment of the present application, the resource category corresponding to each target resource information is the category of the edge cluster corresponding to each target resource information. In some application scenarios, the resource category corresponding to each target resource information includes at least one category.
[0095] Step 203b: Generate corresponding virtual nodes based on each resource category corresponding to each target resource information, to obtain at least one second virtual node.
[0096] In the embodiments of the present application, based on each resource category corresponding to each target resource information, one corresponding virtual node is generated. In this way, when each target resource information corresponds to multiple resource categories, multiple virtual nodes will be generated for each target resource information. In this way, the number of second virtual nodes generated by the application scheduling platform is at least the same as the number of determined target resource information. It should be noted that, assuming that the types of two target resource information are the same and the two target resource information are basically the same, two second virtual nodes still need to be created respectively based on these two target resource information.
[0097] Based on the foregoing embodiments, in other embodiments of the present application, as shown in Figure 3 Before the application scheduling platform executes step 205, it is also used to execute steps 209 to 212:
[0098] Step 209: Determine the configuration content of the virtual application instance to be created.
[0099] In the embodiments of the present application, the configuration content of the virtual application instance to be created can be set by the user. In some application scenarios, it can also be the default configuration content for the virtual application instance to be created when the user hopes to create the virtual application instance to be created. The configuration content can be the configuration parameters for the virtual application instance to be created.
[0100] Step 210: Create a target virtual application based on the configuration content.
[0101] In the embodiments of the present application, the application scheduling platform adjusts the configuration according to the configuration content according to the application template of the pre-packaged heterogeneous application, and creates the target virtual application.
[0102] Step 211: Create a first reference scheduling container based on the target virtual application.
[0103] In the embodiments of the present application, by way of example, based on the created target virtual application, a node Pod of k8s is created to obtain the first reference scheduling container.
[0104] Step 212: Identify the first reference scheduling container with the second identification information to obtain the first container to be scheduled.
[0105] In an embodiment of the present application, in order to distinguish the first reference scheduling container from the Pod nodes in the k8s platform, it is necessary to use the Pod nodes created for the target virtual application for differentiation. Therefore, the first reference scheduling container is identified by the unique identification information, i.e., the second identification information, so as to quickly identify the first reference scheduling container subsequently, and thus obtain the first container to be scheduled.
[0106] Based on the foregoing embodiment, in other embodiments of the present application, step 206 may be implemented by steps 206a to 206c:
[0107] Step 206a: Based on the resource requirement information and the service catalog information of at least one first virtual node, at least one third virtual node is screened out from at least one first virtual node.
[0108] In an embodiment of the present application, the service catalog information of at least one first virtual node is provided by each corresponding edge cluster. At least one service catalog information matching the resource requirement information is determined from the service catalog information of at least one first virtual node, so that at least one first virtual node corresponding to the matching at least one service catalog information can be determined as at least one third virtual node. Among them, the process of screening out at least one third virtual node can be implemented by a pre-written k8s pre-selection scheduling plugin.
[0109] Exemplarily, when the current service catalog information 1 of the first virtual node 1, the service catalog information 2 of the second virtual node 2, and the service catalog information 3 of the third virtual node 3 are included, assuming that the service catalog information 2 and the service target information 3 match the resource requirement information, therefore, at least one third virtual node can be determined as the second virtual node 2 corresponding to the service catalog information 2 and the third virtual node 3 corresponding to the service catalog information 3.
[0110] Step 206b: Based on the service information of at least one third virtual node, each third virtual node is evaluated to obtain at least one evaluation value.
[0111] In an embodiment of the present application, the service information of at least one third virtual node is the computing resources that can be provided by the edge cluster corresponding to each third virtual node. In this way, each third virtual node is evaluated based on the service information of each third virtual node to obtain the evaluation value of each third virtual node, and then the evaluation values of all third virtual nodes are obtained.
[0112] Step 206c: Based on at least one evaluation value, a target virtual node is determined from at least one third virtual node.
[0113] In an embodiment of the present application, when a larger evaluation value indicates that the corresponding edge cluster can provide optimal computing resources for the first container to be scheduled, the third virtual node corresponding to the largest evaluation value among at least one evaluation value is determined as the target virtual node. Alternatively, when a smaller evaluation value indicates that the corresponding edge cluster can provide optimal computing resources for the first container to be scheduled, the third virtual node corresponding to the smallest evaluation value among at least one evaluation value is determined as the target virtual node. Among them, step 206b and step 206c can be implemented by a pre-written k8s preferred scheduling plugin.
[0114] If there are at least two third virtual nodes corresponding to the largest evaluation value or the smallest evaluation value determined based on at least one evaluation value, one third virtual node can be randomly determined from the determined at least two third virtual nodes as the target virtual node, or certain resources in its service information can be further preferentially considered, such as the resource that is consumed the most for the virtual application instance to be created, for example, determined according to the remaining resources of the central processing unit (CPU) corresponding to the determined at least two third virtual nodes, such as determining the third virtual node with the most remaining CPU resources as the target virtual node.
[0115] Based on the foregoing embodiments, in other embodiments of the present application, as shown in Figure 4 After the application scheduling platform executes step 208, it is further configured to execute steps 213 to 218:
[0116] Step 213, monitor the status of the first container to be scheduled.
[0117] In an embodiment of the present application, the status of the first container to be scheduled includes a success status or a failure status; the success status refers to the status where the scheduling or connection between the first container to be scheduled and the target virtual node is successful, and the failure status refers to the status where the scheduling or connection between the first container to be scheduled and the target virtual node fails.
[0118] Step 214, if the status of the first container to be scheduled is the first status, update the status of the target virtual application to the first status.
[0119] Wherein, the first container to be scheduled being in the first status indicates that the running status of the virtual application instance to be created on the edge cluster corresponding to the target virtual node is the target status.
[0120] In an embodiment of the present application, the first status refers to the success status of the first container to be scheduled. When it is determined that the first container to be scheduled is in the first status, the status of the target virtual application is also updated and updated to the first status, that is, the success status.
[0121] Step 215: If the status of the first container to be scheduled is the second status, create a second reference scheduling container based on the target virtual application.
[0122] In the embodiment of the present application, the second status is used to indicate the failure status of the first container to be scheduled. When it is determined that the status of the first container to be scheduled is the failure status, recreate the second reference scheduling container based on the target virtual application.
[0123] Step 216: Identify the second reference scheduling container with the second identification information to obtain the second container to be scheduled.
[0124] Step 217: Schedule the second container to be scheduled to the target virtual node.
[0125] Step 218: The target virtual node creates a virtual application instance to be created based on the resource requirement information of the second container to be scheduled.
[0126] In the embodiment of the present application, when the status of the first container to be scheduled is the second status, discard the first container to be scheduled, recreate a new second container to be scheduled corresponding to the target virtual application, and reschedule it to effectively manage and apply the edge cluster of the target virtual application.
[0127] Based on the foregoing embodiments, in other embodiments of the present application, as shown in Figure 5 After the application scheduling platform executes step 214, it is further used to execute steps 219-220:
[0128] Step 219: If it is detected that the status of the target virtual application is the first status, delete the target virtual application.
[0129] Step 220: If it is monitored that the target virtual application has been deleted, delete the first container to be scheduled.
[0130] In the embodiment of the present application, when it is detected that the status of the target virtual application is the first status, it indicates that the virtual application instance to be created has successfully run in the edge cluster corresponding to the target virtual application. To reduce the resource consumption of the application scheduling platform, the target virtual application can be deleted, and in the state where the target virtual application has been deleted, the first container to be scheduled is further deleted to improve the resource utilization rate of the application scheduling platform.
[0131] Based on the foregoing embodiments, in other embodiments of the present application, as shown in Figure 6 After the application scheduling platform executes step 214, it is further used to execute step 221:
[0132] Step 221: Manage and control the target virtual node using the target communication method to perform operation and maintenance management on the virtual application instance to be created.
[0133] In the embodiment of the present application, the target communication mode may be an asynchronous communication mode, specifically an asynchronous communication mode in the form of a queue. The operation and maintenance management includes managing the versions of the virtual application instances to be created, scaling the instances up or down, or deleting the instances, etc.
[0134] Among them, Figure 4 、 Figure 5 and Figure 6 The different steps in can be executed in parallel or sequentially according to the actual situation.
[0135] Based on the foregoing embodiments, the embodiment of the present application provides a schematic structural diagram of an application scheduling platform. Referring to Figure 7 as shown, the application scheduling platform 3 includes a cloud system 31 and an edge system 32. Referring to Figure 8 as shown, the cloud system 31 includes 5 components: a cloud image management service 311, a cloud image repository 312, a cloud virtual application processor 313, a virtual provider 314, and a cloud application life cycle management service 315; among them:
[0136] The cloud image management service 311 is used to externally provide a Representational State Transfer (RESTful) application data interface (Application Programming Interface, API), and support the functions of uploading, deleting, and viewing virtual machine images, container images, and application packages. It supports displaying the synchronization status of virtual machine images, container images, and application packages.
[0137] The cloud image repository (Harbor) 312 is responsible for uniformly storing cloud virtual machine images, container images, and application packages, and can directly package virtual machine images, application packages, and related metadata as container images for storage and synchronization.
[0138] The cloud virtual application processor (Operator) 313 is used to virtualize different third-party resources into Pods that can be scheduled by, for example, Kubernetes. The third-party virtual applications can support multiple virtual application subtypes, such as Cloudify's Blueprint, individual VMs, and individual containers. The third-party virtual applications record in detail their corresponding resource requirements, such as SLA requirements and / or third-party service requirements. The Operator monitors these third-party virtual applications. That is, when a new third-party virtual application is created, the Operator will create a Kubernetes Pod. The resource requirement information of the Pod summarizes the total requirements of the third-party virtual application. Among them, the SLA requirements and / or third-party service requirements can be written in the annotations of the Pod, and other information such as application packages can be placed in the Configmap referenced by the Pod.
[0139] The Virtual Kubelet Provider 314 is used to virtualize each managed edge cluster into a Kubernetes node, which facilitates scheduling applications to heterogeneous edge clusters. The specific reason is that some edge clusters provide different physical infrastructures for virtual machines and containers, so it is necessary to create virtual Kubernetes nodes for running virtual machines and virtual Kubernetes nodes for running containers separately for each such edge cluster. The Virtual Kubelet Provider is also used to regard the GPUs, virtual network cards, and memories of remote edge clusters as three types of devices and create corresponding device plugins respectively. Each device plugin is used to collect the corresponding resource information, that is, the device plugin corresponding to the GPU is used to collect the GPU information of the edge cluster, the device plugin corresponding to the virtual network card is used to collect the virtual network card information of the edge cluster, and the device plugin corresponding to the memory is used to collect the storage resource information of the edge cluster. The information collected by the above three device plugins is transmitted to the cloud virtual application processor through the Virtual Kubelet Provider so that the cloud virtual application processor can make scheduling decisions. Among them, the storage resource information of the edge cluster can be divided into several types, such as file storage, object storage, block storage, fast storage, slow storage, etc. Each type of storage corresponds to a device, and the storage capacity is converted into the number of devices.
[0140] The cloud application lifecycle management service (Appmanager) 315 is used to create virtual applications based on the application templates stored in Harbor. At the same time, it will forward the operation and maintenance management information such as deletion, version management, scaling, and SLA management of application instances to the edge application lifecycle management service in the edge system through the message queue.
[0141] Refer to Figure 9 As shown, the edge system 32 includes four components: the image synchronization service 321, the edge Harbor 322, the edge application lifecycle management service 323, and the scheduler adapter 324; among them:
[0142] The image synchronization service 321 is used to monitor the status of virtual machine images, container images, and application packages in the edge Harbor and synchronize them to the corresponding managers in the edge cluster 4.
[0143] The edge Harbor 322 is used to be responsible for uniformly storing the virtual machine images, container images, and application packages of the edge cluster.
[0144] The edge application lifecycle management service (Appmanager) 323 is used to directly connect to the application executor of the edge cluster and is responsible for functions such as the creation, deletion, version management, scaling, and SLA management of application instances.
[0145] The scheduler adapter (Scheduler Adapter) 324 is used to be responsible for collecting the real-time resource information of the edge cluster 4, synchronizing it to the Virtual Kubelet Provider in the cloud system, and after receiving the request to create a virtual application from the Virtual Kubelet Provider, forwarding the request to create a virtual application to the edge Appmanager.
[0146] In this way, based on Figures 7 - 9 The implementation steps of the application scheduling method based on the application scheduling platform shown can be as follows:
[0147] Step a11: The front-end page calls the API of the image management service in the edge system to upload virtual machine images, container images, or application packages.
[0148] Among them, the front-end page is the interface for user operations and has nothing to do with the application scheduling platform.
[0149] Step a12: The cloud Harbor receives the virtual machine images, container images, or application packages sent by the image management service, realizes the synchronization of the virtual machine images, container images, or application packages, and stores the virtual machine images, container images, or application packages.
[0150] Step a13: The front-end page calls the application deployment API of the cloud Appmanager so that the cloud Appmanager can obtain a virtual machine image, a container image, or an application package.
[0151] Among them, the virtual machine image, the container image, or the application package is the aforementioned configuration content for creating a virtual application instance.
[0152] Step a14: The cloud Appmanager creates a third-party resource (VirtApp) and monitors the status of the VirtApp.
[0153] Among them, the third-party resource is the aforementioned target virtual application.
[0154] Step a15: The virtual application operator creates a kubernetes Pod based on the VirtApp. Exemplarily, the Pod is also identified as nodeselector:virtualnode:vm(container).
[0155] Among them, the kubernetes Pod created based on the VirtApp is the aforementioned first container to be scheduled. The nodeselector is the second identification information.
[0156] Step a16: The Virtual kubelet provider constructs one or two kubernetes virtual nodes denoted as virtual-kubelet based on the edge cluster resource information returned by the Scheduler Adapter in the edge system.
[0157] Among them, the edge cluster resource information includes the GPU of the edge cluster, storage resource information, virtual network cards, etc., which can be output as the device resource capabilities of the created kubernetes virtual nodes. At the same time, the first identification information is added to the kubernetes virtual nodes. Exemplarily, the kubernetes virtual node after adding the first identification information can be denoted as label:virtualnode:vm(container)NoScheduler.
[0158] Among them, the kubernetes virtual node is the aforementioned target virtual node.
[0159] Step a17: The cloud virtual application processor schedules the created kubernetes Pod to the target virtual node corresponding to the filtered edge cluster.
[0160] Among them, the target virtual node filters edge clusters through the k8s pre-selection scheduling plugin based on the service catalog information provided by each edge cluster and the resource requirements of Kubernetes Pods for third-party services, that is, the aforementioned resource requirement information, and then scores the edge clusters based on the SLA-related information of the edge clusters filtered by the k8s preference scheduling plugin, and automatically performs resource matching to find the target virtual node corresponding to the optimal edge cluster for the Kubernetes Pod.
[0161] Step a18: The target virtual node creates application instances according to the Kubernetes Pod information, the edge Scheduler Adapter, and the edge Appmanager; and updates the status of the Kubernetes Pod.
[0162] Among them, the created application instance is the aforementioned created application instance.
[0163] Step a19: The virtual application operator monitors the status of the Kubernetes Pod. If it is found that the Kubernetes Pod is in the failed state, the Kubernetes Pod is recreated and rescheduled, that is, it jumps to step a16. If the Kubernetes Pod is in the succeed state, the status of the VirtApp is updated to the succeed state.
[0164] Among them, the failed state is the aforementioned second state, and the succeed state is the aforementioned first state.
[0165] Step a20: When the cloud Appmanager discovers that the status of the VirtApp is succeed, it deletes the VirtApp.
[0166] Step a21: When the virtual application Operator receives the information of the deleted VirtApp event, it deletes the corresponding Kubernetes Pod.
[0167] Step a22: After the application instance is successfully created, the cloud Appmanager communicates asynchronously with the edge Appmanager through the message queue to perform operation and maintenance operations including version management, scaling, and / or deleting instances, etc., so as to manage the application instances running in the edge cluster through the edge Appmanager.
[0168] In this way, it has high scalability. The extension framework based on the Kubernetes scheduler supports customizing the pre-selection and optimal selection steps for scheduling heterogeneous applications. For example, it supports selecting an edge cluster based on the maximum network latency and using available storage / available GPUs and other devices of the edge cluster as screening conditions for the edge cluster, etc., making the scalability relatively high. When the selected edge cluster cannot create an application due to resource fragmentation, network and other problems, it can promptly find a new edge cluster to achieve high availability. And based on a set of scheduling frameworks and interfaces, it schedules various types of applications to various edge clusters, making it easy to use.
[0169] It should be noted that the descriptions of the same steps and the same content in this embodiment and other embodiments can be referred to the descriptions in other embodiments, and will not be repeated here.
[0170] An application scheduling method provided by an embodiment of the present application determines at least one first virtual node with a first identification information, determines the resource requirement information of a first container to be scheduled with a second identification information, then determines a target virtual node from at least one first virtual node based on the resource requirement information, and schedules the first container to be scheduled to the target virtual node. Finally, the target virtual node creates a virtual application instance to be created based on the resource requirement information of the first container to be scheduled, so that the virtual application instance to be created runs in the edge cluster corresponding to the target virtual node. In this way, after determining the target virtual node from at least one first virtual node with a first identification information based on the resource requirement information of the first container to be scheduled with a second identification information, the first container to be scheduled is scheduled to the target virtual node, so that the target virtual node creates the virtual application instance to be created based on the resource requirement information of the first container to be scheduled, solving the problem that only edge clusters of a single application type can be managed when implementing edge cluster storage management currently, and realizing a method for managing edge clusters of multiple application types during edge cluster storage management, effectively improving the scheduling efficiency of edge cluster storage management for heterogeneous applications.
[0171] Based on the foregoing embodiments, an embodiment of the present application provides an application scheduling platform, which can be applied to Figures 1 - 6 the application scheduling method provided by the corresponding embodiment, referring to Figure 7 As shown, the application scheduling platform 3 may include: an edge system 31 and a cloud system 32, where:
[0172] The edge system 31 is used to manage at least one edge cluster managed by the application scheduling platform;
[0173] The cloud system 32 is used to implement the following steps based on at least one edge cluster managed by the edge system:
[0174] Determine at least one first virtual node with first identification information; wherein, the first virtual node has a corresponding relationship with an edge cluster managed by an application scheduling platform;
[0175] Determine the resource requirement information of a first container to be scheduled with second identification information; wherein, the first container to be scheduled corresponds to a virtual application instance to be created;
[0176] Based on the resource requirement information, determine a target virtual node from at least one first virtual node;
[0177] Schedule the first container to be scheduled to the target virtual node;
[0178] Through the target virtual node, create a virtual application instance to be created based on the resource requirement information of the first container to be scheduled, so that the virtual application instance to be created runs in the edge cluster corresponding to the target virtual node.
[0179] In other embodiments of the present application, when the cloud system executes the step of determining at least one first virtual node with first identification information, it can be implemented through the following steps:
[0180] Determine at least one edge cluster managed by the application scheduling platform;
[0181] Determine the resource information of at least one edge cluster to obtain at least one target resource information;
[0182] Based on at least one target resource information, generate at least one second virtual node corresponding to at least one edge cluster;
[0183] Use the first identification information to identify at least one second virtual node to obtain at least one first virtual node.
[0184] In other embodiments of the present application, when the cloud system executes the step of generating at least one second virtual node corresponding to at least one edge cluster based on at least one target resource information, it can be implemented through the following steps:
[0185] Based on at least one target resource information, determine the resource category corresponding to each target resource information;
[0186] Based on the resource category corresponding to each target resource information, generate a corresponding second virtual node to obtain at least one second virtual node.
[0187] In other embodiments of the present application, before the cloud system executes the step of determining the resource requirement information of a first container to be scheduled with second identification information, it is further used to execute the following steps:
[0188] Determine the configuration content of the virtual application instance to be created;
[0189] Create a target virtual application based on the configuration content;
[0190] Create a first reference scheduling container based on the target virtual application;
[0191] Identify the first reference scheduling container with the second identification information to obtain a first container to be scheduled.
[0192] In other embodiments of the present application, when the cloud system executes the step of determining a target virtual node from at least one first virtual node based on the resource requirement information, it can be implemented through the following steps:
[0193] Filter at least one third virtual node from at least one first virtual node based on the resource requirement information and the service catalog information of at least one first virtual node;
[0194] Evaluate each third virtual node based on the service information of at least one third virtual node to obtain at least one evaluation value;
[0195] Determine a target virtual node from at least one third virtual node based on at least one evaluation value.
[0196] In other embodiments of the present application, after the cloud system executes the step of creating a virtual application instance to be created based on the resource requirement information of the first container to be scheduled through the target virtual node, it is further used to execute the following steps:
[0197] Monitor the status of the first container to be scheduled;
[0198] If the status of the first container to be scheduled is the first status, update the status of the target virtual application to the first status; wherein, the first container to be scheduled being in the first status indicates that the running status of the virtual application instance to be created on the edge cluster corresponding to the target virtual node is the target status;
[0199] If the status of the first container to be scheduled is the second status, create a second reference scheduling container based on the target virtual application;
[0200] Identify the second reference scheduling container with the second identification information to obtain a second container to be scheduled.
[0201] In other embodiments of the present application, after the cloud system executes the step of updating the status of the target virtual application to the first status if the status of the first container to be scheduled is the first status, it is further used to execute the following steps:
[0202] If it is detected that the status of the target virtual application is the first status, delete the target virtual application;
[0203] If it is monitored that the target virtual application has been deleted, delete the first container to be scheduled.
[0204] In other embodiments of the present application, after the cloud system executes the step of updating the state of the target virtual application to the first state if the state of the first container to be scheduled is the first state, it is further used to execute the following steps:
[0205] Manage and control the target virtual node by using the target communication method to implement the operation and maintenance management of the virtual application instance to be created.
[0206] It should be noted that the specific implementation process of the steps executed by the processor in this embodiment can be referred to Figures 1 - 6 the implementation process in the application scheduling method provided in the corresponding embodiment, which will not be elaborated here.
[0207] An application scheduling platform provided by an embodiment of the present application determines at least one first virtual node with the first identification information, determines the resource requirement information of the first container to be scheduled with the second identification information, then determines the target virtual node from at least one first virtual node based on the resource requirement information, and schedules the first container to be scheduled to the target virtual node. Finally, the target virtual node creates the virtual application instance to be created based on the resource requirement information of the first container to be scheduled, so that the virtual application instance to be created runs in the edge cluster corresponding to the target virtual node. In this way, after determining the target virtual node from at least one first virtual node with the first identification information based on the resource requirement information of the first container to be scheduled with the second identification information, the first container to be scheduled is scheduled to the target virtual node, so that the target virtual node creates the virtual application instance to be created based on the resource requirement information of the first container to be scheduled, solving the problem that only edge clusters of a single application type can be managed when implementing edge cluster storage management at present, realizing a method for managing edge clusters of multiple application types when implementing edge cluster storage management, and effectively improving the scheduling efficiency of edge cluster storage management for heterogeneous applications.
[0208] Based on the foregoing embodiments, an embodiment of the present application provides a computer-readable storage medium, simply referred to as a storage medium. The computer-readable storage medium stores one or more programs to implement the same as Figures 1 - 6 the implementation process in the application scheduling method provided in the corresponding embodiment, which will not be elaborated here.
[0209] Those skilled in the art should understand that the embodiments of the present application can be provided as methods, systems, or computer program products. Therefore, the present application can take the form of hardware embodiments, software embodiments, or embodiments combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) containing computer-usable program code.
[0210] This application is described with reference to the flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram, and the combination of flows and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, such that the instructions executed by the processor of the computer or other programmable data processing device produce means for implementing the functions specified in one flow Figure 1 one flow or multiple flows and / or blocks Figure 1 or multiple blocks.
[0211] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, such that the instructions stored in the computer-readable memory produce a manufactured article including instruction means that implement the functions specified in one flow Figure 1 one flow or multiple flows and / or blocks Figure 1 or multiple blocks.
[0212] These computer program instructions can also be loaded onto a computer or other programmable data processing device, such that a series of operation steps are executed on the computer or other programmable device to generate a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one flow Figure 1 one flow or multiple flows and / or blocks Figure 1 or multiple blocks.
[0213] As mentioned above, it is only a preferred embodiment of the present application and is not used to limit the protection scope of the present application.
Claims
1. An application scheduling method, the method comprising: Determine at least one first virtual node with first identification information; wherein, the first virtual node has a corresponding relationship with an edge cluster managed by an application scheduling platform; Determine the resource requirement information of a first container to be scheduled with second identification information; wherein, the first container to be scheduled corresponds to a virtual application instance to be created; Based on the resource requirement information, determine a target virtual node from the at least one first virtual node; Schedule the first container to be scheduled to the target virtual node; Through the target virtual node, create the virtual application instance to be created based on the resource requirement information of the first container to be scheduled, so that the virtual application instance to be created runs in the edge cluster corresponding to the target virtual node; Monitor the status of the first container to be scheduled; If the status of the first container to be scheduled is a first status, update the status of the target virtual application to the first status; the target virtual application is created based on the configuration content of the virtual application instance to be created; If the status of the first container to be scheduled is a second status, recreate a new second container to be scheduled corresponding to the target virtual application, and reschedule it.
2. The method according to claim 1, wherein determining at least one first virtual node having first identification information comprises: Determine at least one edge cluster managed by the application scheduling platform; Determine the resource information of the at least one edge cluster to obtain at least one target resource information; Based on each target resource information, generate at least one second virtual node corresponding to the at least one edge cluster; Use the first identification information to identify the at least one second virtual node to obtain the at least one first virtual node.
3. The method according to claim 2, wherein generating at least one second virtual node corresponding to at least one edge cluster based on each piece of the target resource information comprises: Based on each target resource information, determine the resource category corresponding to each target resource information; Based on each resource category corresponding to each target resource information, generate a corresponding virtual node to obtain the at least one second virtual node.
4. The method according to claim 1, before determining the resource requirement information of a first container to be scheduled having second identification information, the method further comprises: Determine the configuration content of the virtual application instance to be created; Based on the configuration content, create a target virtual application; Based on the target virtual application, create a first reference scheduling container; Use the second identification information to identify the first reference scheduling container to obtain the first container to be scheduled.
5. The method according to any one of claims 1 to 4, wherein determining a target virtual node from the at least one first virtual node based on the resource requirement information comprises: Based on the resource requirement information and the service catalog information of the at least one first virtual node, screen at least one third virtual node from the at least one first virtual node; Based on the service information of the at least one third virtual node, evaluate each third virtual node to obtain at least one evaluation value; Based on the at least one evaluation value, determine the target virtual node from the at least one third virtual node.
6. The method according to claim 4, wherein the first container to be scheduled being in the first state indicates that the running state of the virtual application instance to be created on the edge cluster corresponding to the target virtual node is the target state; if the state of the first container to be scheduled is the second state, creating a new second container to be scheduled corresponding to the target virtual application and rescheduling, comprising: If the status of the first container to be scheduled is the second status, create a second reference scheduling container based on the target virtual application; Use the second identification information to identify the second reference scheduling container to obtain a second container to be scheduled; Schedule the second container to be scheduled to the target virtual node; Through the target virtual node, create the virtual application instance to be created based on the resource requirement information of the second container to be scheduled.
7. According to the method described in claim 1, after updating the status of the target virtual application to the first status if the status of the first container to be scheduled is the first status, the method further includes: If the status of the target virtual application is detected as the first status, delete the target virtual application; If it is monitored that the target virtual application has been deleted, delete the first container to be scheduled.
8. According to the method described in claim 1, after updating the status of the target virtual application to the first status if the status of the first container to be scheduled is the first status, the method further includes: Adopt a target communication method to manage and control the target virtual node, so as to realize the operation and maintenance management of the virtual application instance to be created.
9. An application scheduling platform, the application scheduling platform at least includes: An edge system and a cloud system; wherein: The edge system is used to manage at least one edge cluster managed by the application scheduling platform; The cloud system is used to implement the steps of the application scheduling method according to any one of claims 1 to 8 based on at least one edge cluster managed by the edge system.
10. A storage medium, on which an application scheduling program is stored, and when the application scheduling program is executed by a processor, it implements the steps of the application scheduling method described in any one of claims 1 to 8.
Citation Information
Patent Citations
Container scheduling method and device
CN111309447A