Application process management method and device, equipment, storage medium and computer program product

Through the operating system's control group capabilities and the Kubernetes scheduling system, non-invasive pause and recovery of application processes in the Kubernetes cluster is achieved, solving the problems of high operation and maintenance complexity and slow speed in the existing technology, and improving operation and maintenance efficiency and speed.

CN120066676APending Publication Date: 2025-05-30CHINA MOBILE (SUZHOU) SOFTWARE TECH CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510072855.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-16
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

The existing technology has limitations when pausing and restoring application processes in Kubernetes clusters, requiring manual operation or intrusion of applications, resulting in high operation and maintenance complexity and slow speed.

Method used

Through the operating system's control group capabilities and combined with the Kubernetes scheduling system, non-invasive pause and recovery of application processes are achieved. The specific method is to listen to the event type, based on the configuration information of the control group, control the state of the application process in the container pod to change from normal operation to frozen state, and restore it when needed.

Benefits of technology

It realizes the pause and recovery of application processes supported by Kubernetes natively, without intruding into applications, improving operation and maintenance efficiency and speed, and reducing operation and maintenance complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120066676A_ABST
    Figure CN120066676A_ABST
Patent Text Reader

Abstract

The invention discloses an application process management method and device, equipment, a storage medium and a computer program product. The method comprises the following steps: when a container Pod in a Kubernetes cluster runs normally, acquiring a first event to be processed; the container Pod comprises one or more application containers, one application process correspondingly runs in each application container, and the one or more application processes in the container Pod are arranged in a control group of a corresponding operating system; monitoring the type of the first event; when it is monitored that the type of the first event is a pause event, based on configuration information of the control group, controlling the state of an application process in the container Pod to be changed from a first state to a second state; the first state represents a normal operation state, and the second state represents a freezing state.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of cloud computing technology, and particularly to an application process management method, apparatus, device, storage medium, and computer program product. Background Art

[0002] Kubernetes (hereinafter referred to as K8s) is currently the standard for container orchestration in the cloud computing field. It can quickly run containerized applications, achieve automatic scaling of applications, save many conventional operation and maintenance operations, and when an application is abnormal, automatically remove abnormal application containers and start new application containers to ensure the service quality of the application.

[0003] In practical applications, in some specific scenarios, for example, when it is necessary to temporarily interrupt the running application service for upgrading or troubleshoot environmental problems, it is necessary to pause the application processes deployed in K8s and then resume them after the application is upgraded or the problems are troubleshot. In related technologies, there are usually the following two processing methods:

[0004] The first processing method is to combine the scaling-down ability of K8s to adjust the number of replicas of the underlying application containers to 0. At this time, all the underlying application processes are destroyed. When recovery is needed, through the scaling-up ability of K8s, the application containers are pulled up again to provide services externally.

[0005] The second processing method is that the operation and maintenance personnel actively send an operating system (such as the Linux system) process stop signal (i.e., the SIGSTP signal) to the processes in the container. The Linux SIGSTP signal can be actively captured by the processes in the container and corresponding actions can be executed. When service recovery is needed, a Linux process continue signal (i.e., the SIGCONT signal) needs to be sent to all the processes in the container, that is, to wake up the paused application processes.

[0006] However, for the first above-mentioned processing method, although it combines the cloud-native capabilities of K8s well, usually the operation and maintenance personnel need to manually scale down the application containers in K8s to 0 replicas to meet the requirement of the application stopping providing services externally. It can be seen that the first method completely stops the application process, which is different from the essence of application suspension. For the second above-mentioned processing method, the Linux SIGSTP signal is processed by the application program itself to achieve process interruption. It can be seen that the second method has certain limitations, that is, the application program needs to support capturing this signal to achieve the pause function, that is, it is necessary to invade the application program to transform it to have the ability to capture the Linux SIGSTP signal, and the operation and maintenance personnel need to manually send the Linux SIGSTP signal to all application containers. The pause process requires a large amount of manual operations, has high requirements for the operation and maintenance personnel, and also reduces the speed of pausing the application process. Summary of the Invention

[0007] To solve the technical problems existing in the related art, an embodiment of the present application provides an application process management method, apparatus, device, storage medium, and computer program product.

[0008] To achieve the above object, the technical solution of the embodiment of the present application is implemented as follows:

[0009] In a first aspect, an embodiment of the present application provides an application process management method, and the method includes:

[0010] When the container Pod in the Kubernetes cluster is running normally, obtain a first event to be processed; the container Pod includes one or more application containers, and each of the application containers runs an application process correspondingly, and one or more application processes in the container Pod are set in the control group of the corresponding operating system;

[0011] Monitor the type of the first event;

[0012] When it is monitored that the type of the first event is a pause event, based on the configuration information of the control group, control the state of the application process in the container Pod to change from a first state to a second state; the first state represents a normal running state, and the second state represents a frozen state.

[0013] In a second aspect, an embodiment of the present application further provides an application process management apparatus, and the apparatus includes:

[0014] A first acquisition unit, configured to obtain a first event to be processed when the container Pod in the Kubernetes cluster is running normally; the container Pod includes one or more application containers, and each of the application containers runs an application process correspondingly, and one or more application processes in the container Pod are set in the control group of the corresponding operating system;

[0015] A first monitoring unit, configured to monitor the type of the first event;

[0016] A first control unit, configured to, when the first monitoring unit monitors that the type of the first event is a pause event, based on the configuration information of the control group, control the state of the application process in the container Pod to change from a first state to a second state; the first state represents a normal running state, and the second state represents a frozen state.

[0017] In a third aspect, an embodiment of the present application further provides an application process management device, including: a processor and a memory for storing a computer program that can run on the processor;

[0018] Wherein, when the processor is used to run the computer program, it executes the steps of the application process management method described in the embodiments of the present application.

[0019] Fourthly, the embodiments of the present application further provide a storage medium, on which a computer program is stored. When the computer program is executed by a processor, it implements the steps of the application process management method described in the embodiments of the present application.

[0020] Fifthly, the embodiments of the present application further provide a computer program product, including a computer program. When the computer program is executed by a processor, it implements the steps of the application process management method described in the embodiments of the present application.

[0021] The application process management method, device, equipment, storage medium and computer program product provided by the embodiments of the present application, when the container Pod in the Kubernetes cluster runs normally, obtain the first event to be processed; the container Pod includes one or more application containers, and each application container runs an application process correspondingly. One or more application processes in the container Pod are set in the control group of the corresponding operating system; monitor the type of the first event; when it is monitored that the type of the first event is a pause event, based on the configuration information of the control group, control the state of the application process in the container Pod to change from the first state to the second state; the first state represents the normal running state, and the second state represents the frozen state. By adopting the technical solution of the embodiments of the present application, by controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group of the operating system, that is, controlling the application process in the container Pod to enter the frozen state. It can be seen that the embodiments of the present application propose a non-intrusive method for pausing application processes on K8s. This method considers the native control group ability of the operating system, that is, through the process freezing ability of the control group of the operating system, combined with the K8s scheduling system, to implement the pause operation of application processes supported by K8s natively, without invading the application for transformation, and directly implementing the pause operation of application processes at the scheduling level and the operating system level, which improves the speed of pausing application processes. Description of the Drawings

[0022] Figure 1 Flow chart of the application process management method according to the embodiments of the present application Figure 1 ;

[0023] Figure 2 Flow chart of the application process management method according to the embodiments of the present application Figure 2 ;

[0024] Figure 3 Schematic diagram of the state transition of the application container state machine according to the embodiments of the present application;

[0025] Figure 4 It is a timing diagram for application suspension and recovery in an embodiment of this application;

[0026] Figure 5 It is a schematic flowchart of an application process management method in an embodiment of this application Figure 3 ;

[0027] Figure 6 It is a schematic diagram of the composition structure of an application process management device in an embodiment of this application;

[0028] Figure 7 It is a schematic diagram of the hardware composition structure of an application process management device in an embodiment of this application. Detailed implementation manners

[0029] The following further describes this application in detail with reference to the drawings and embodiments.

[0030] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those of ordinary skill in the technical field to which this application belongs. The terms used in the specification of this application herein are only for the purpose of describing specific embodiments and are not intended to limit this application.

[0031] An embodiment of this application provides an application process management method, which is applied to an application process management device, Figure 1 It is a schematic flowchart of an application process management method in an embodiment of this application Figure 1 ; As Figure 1 shown, this application process management method includes:

[0032] Step 101: When the container Pod in the Kubernetes cluster is running normally, obtain a first event to be processed.

[0033] In an embodiment of this application, the container Pod includes one or more application containers, and a corresponding application process runs in each of the application containers. One or more application processes in the container Pod are set in the control group of the corresponding operating system.

[0034] Here, the application containers run in the form of Pods at the K8s scheduling level. The container Pod includes one or more application containers. Since an application process can run in each application container, one or more application containers can correspondingly run one or more application processes. That is, one or more application processes can run in one container Pod.

[0035] In actual application, these one or more application processes can be regarded as a group of application processes. Then, this group of application processes is set in a control group, that is, one or more application processes in the container Pod are set in the control groups of the corresponding operating system. By allocating specified available resources to this control group, the purpose of controlling the resource allocation for this group of application processes is achieved. Among them, the operating system can be the Linux operating system, also known as the Linux system. It should be noted that control groups can also be abbreviated as cgroups or cgroup.

[0036] Here, the control group is a hierarchical integrated structure. Generally speaking, the resource limits of the control group where the parent process is located will be inherited by the child processes. In the container system of K8s, all application processes in each container Pod will be in the control group of this container Pod. Therefore, this group of application processes can be simultaneously managed and controlled through the control group.

[0037] Here, the execution entity of the application process management method in the embodiment of the present application is the application process management device. The application process management device can be kubelet. Among them, kubelet is an agent component on each running node in K8s. When a container Pod is scheduled to a certain running node, kubelet is responsible for the life cycle management of the entire container Pod.

[0038] In actual application, the application process management device can obtain the first event to be processed through the Event Bus.

[0039] Based on this, in one embodiment, the obtaining the first event to be processed includes: obtaining the first event to be processed distributed by the event bus; where the first event to be processed is obtained by the event bus triggered by a first instruction, and the first instruction is initiated by an external client.

[0040] Here, the external client communicates with kubelet through the event bus. That is to say, the external client initiates a first instruction, triggers the event bus to obtain the first event to be processed based on the first instruction, and distributes the first event to the application process management device. In this way, obtaining the first event to be processed through the event bus can enhance the communication between the external client and kubelet and reduce the coupling degree between these two components. Among them, the first event to be processed can be understood as an external event triggered by the external client based on the first instruction.

[0041] Step 102: Monitor the type of the first event.

[0042] In the embodiments of the present application, the types of the first event include a Pause event and a Resume event. Among them, the Pause event can be understood as an event that needs to pause the running application process in some specific scenarios. For example, when it is necessary to temporarily upgrade the application service or troubleshoot environmental problems, it is necessary to pause the application process deployed in K8s. The Resume event can be understood as an event that resumes the paused application process after the application upgrade or problem troubleshooting is completed.

[0043] Step 103: When it is monitored that the type of the first event is a Pause event, based on the configuration information of the control group, control the state of the application process in the container Pod to change from the first state to the second state; the first state represents the normal running state, and the second state represents the frozen state.

[0044] Here, in the frozen state, the application process is in a suspended state, shielding control instruction event processing. At this time, the relevant application processes of the control group are paused and no longer running, and the service state of this container Pod is unavailable to the outside.

[0045] Based on this, in one embodiment, when controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes: controlling the service state of the container Pod to change from the third state to the fourth state based on the configuration information of the control group; where the third state represents the state in which the container Pod can provide services to the outside, and the fourth state represents the state in which the container Pod cannot provide services to the outside.

[0046] Regarding the second processing method in the foregoing related technologies, in a complex scheduling system such as K8s, application programs often run distributedly in multiple copies on multiple nodes, and it is very difficult to automatically send interruption signals to multiple copies at the same time. This method is not perfectly applicable on the cloud platform. In actual application, to solve this problem, during the process of managing the application process, the application process management device (i.e., kubelet) synchronizes the configuration information of the control group corresponding to the container Pod and the state information of the control group.

[0047] Based on this, in one embodiment, before controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes: periodically synchronizing the configuration information of the control group corresponding to the container Pod and the state information of the control group.

[0048] Here, the kubelet periodically synchronizes the configuration information of the control group corresponding to the container Pod and the status information of the control group on the running nodes to ensure that the pause state of the application process is normal. Since the kubelet is distributed on each running node of K8s, the status of each replica of the application can be correctly synchronized, thus solving the problem that it is difficult for external controllers in existing conventional methods to automatically send interruption signals to multiple replicas synchronously.

[0049] Under normal circumstances, the kubelet will call general interfaces, such as the Container Runtime Interface (CRI), to implement actions such as the creation and destruction of application containers. Currently, the main methods defined by the CRI interface are creating application containers, stopping application containers, deleting application containers, etc., but the functions of pausing and resuming application containers are lacking. Therefore, in the embodiments of this application, the ability to pause and resume processes inside application containers is added to the kubelet. However, since the implementation principles of the CRI corresponding to each node during runtime may not be the same, in the embodiments of this application, the ability to pause and resume processes inside application containers is built into the kubelet to achieve native support for the K8s ability to pause and resume processes.

[0050] During actual application, the application process management device (i.e., the kubelet) can implement the pause operation of the application process by setting the configuration information of the control group.

[0051] Based on this, in one embodiment, the configuration information of the control group includes the field information in the control file of the control group; and based on the configuration information of the control group, controlling the status of the application process in the container Pod to change from a first state to a second state includes: controlling the status of the application process in the container Pod to change from the first state to the second state based on the value of the field information in the control file of the control group.

[0052] Specifically, in one embodiment, controlling the status of the application process in the container Pod to change from a first state to a second state based on the value of the field information in the control file of the control group includes: determining whether the value of the field information in the control file of the control group changes from a first value to a second value; and when it is determined that the value of the field information in the control file of the control group changes from the first value to the second value, controlling the status of the application process in the container Pod to change from the first state to the second state.

[0053] Here, the control group can be the control group of the Linux operating system, simply referred to as Linux cgroups. The field information in the control file of the control group included in the configuration information of the control group can be the freezing field information in the control file of the control group. Exemplarily, it can be the freezer.self_freezing field in Linux cgroups, and the default value of this field is the first value, where the first value can be 0, and at this time the status of the corresponding application process is the normal running state. That is to say, in the embodiment of the present application, by monitoring the value change of the freezer.self_freezing field in Linux cgroups, the status of the application process can be controlled.

[0054] In practical applications, when the application process management device (i.e., kubelet) monitors that the value of the freezer.self_freezing field in Linux cgroups changes from the first value to the second value (the second value here can be 1), it controls the status of the application process in the container Pod to change from the normal running state to the frozen state. At this time, the relevant application processes of the control group will be frozen, that is, the relevant application processes of the control group will be paused and no longer run, and at this time the service status of the container Pod is unavailable to the outside.

[0055] Exemplarily, for an application program configured with probes, during the suspension of the application process, since the internal process of the application has been paused at this time, the probes configured by the application program will become invalid. And the probe operation is initiated by kubelet to the application program. In the case of the suspension of the application process, the relevant logic of kubelet needs to be modified, that is, the application liveness probe operation is not executed during the freezing period to avoid unexpected situations.

[0056] In practical applications, when the application process management device (i.e., kubelet) controls the status of the application process to change to the frozen state, it can also record the frozen state in the persistent storage module, such as the Etcd storage module, to avoid that various resource states of the container Pod are easily changed due to other triggered events. Among them, Etcd is a highly available distributed key-value storage system, which is applied to microservice applications in the cloud native architecture, such as in K8s.

[0057] Based on this, in one embodiment, after controlling the status of the application process in the container Pod to change from the first status to the second status based on the configuration information of the control group, the method further includes: recording the second status in the persistent storage module.

[0058] Here, in one embodiment, after controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes: in the second state, freezing the application process in the container Pod and sub-resources under the application container by invoking a target subsystem.

[0059] Here, the target subsystem may be the freezer subsystem encapsulated by the control group (cgroupfs) under the kernel of the operating system, where cgroupfs is an encapsulation of an interface of cgroup. The sub-resources under the frozen application container include, but are not limited to, one of the following: Memory, Central Processing Unit (CPU), CPUSET (whose function is to limit a certain group of processes to run only on certain CPUs and memory nodes), the BLKIO subsystem in cgroup, Process IDentifier (PIDS), device (Devices) resources, Hugetlb controller, network (net) resources, etc.

[0060] Regarding the first processing method in the foregoing related technologies, there is a problem that the scene when the application is paused cannot be saved, which is not conducive to troubleshooting problems when the application program goes wrong. In the embodiment of the present application, during the freezing of the application process, the scene when the application is paused can be retained, and the analysis of the faulty application program can be realized when needed.

[0061] Based on this, in one embodiment, after controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes: obtaining the process information of the application process in the container Pod in the second state; based on the process information of the application process in the container Pod in the second state, analyzing the error cause of the faulty container Pod to obtain an analysis result.

[0062] Here, when a problem occurs in the container Pod, that is, an error occurs, the operation and maintenance personnel can enter the virtual file system (such as the proc file system in Linux) or call the kernel interface of the system call instruction (i.e., syscall) by pausing the application process in the container Pod, so as to obtain the process information of the application process in the container Pod in the second state (i.e., the frozen state), and then analyze the error cause of the faulty container Pod based on the obtained process information to obtain an analysis result, so that the problem when the application program goes wrong can be troubleshot according to the analysis result.

[0063] For the first processing method in the foregoing related technologies, since the application process is completely stopped, during the application recovery startup process, it is necessary to reapply for system resources from the operating system and re-initialize data, etc., introducing the problem of cold startup delay. For the second processing method in the foregoing related technologies, during the application recovery process, it is necessary to resend the SIGCONT signal to all processes in the container, that is, to wake up the suspended application processes. It can be seen that the recovery process in this method also requires a large amount of manual operations, has high requirements for operation and maintenance personnel, and reduces the speed of recovering the application process. To this end, the embodiments of the present application utilize the control group process recovery ability of the operating system and combine it with the K8s scheduling system to implement the application process recovery operation supported natively by K8s. Without invading the application for transformation, the application process recovery operation is directly implemented at the scheduling level and the operating system level, which not only improves the speed of recovering the application process, but also avoids the problem of application cold startup delay in conventional recovery operations.

[0064] In actual application, the application process management device (i.e., kubelet) can implement the application process recovery operation by setting the configuration information of the control group.

[0065] Based on this, in one embodiment, after controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes:

[0066] Obtain the second event to be processed and monitor the type of the second event; in the case where the type of the second event is monitored to be a recovery event, based on the configuration information of the control group, control the state of the application process in the container Pod to change from the second state to the first state.

[0067] Specifically, in one embodiment, the configuration information of the control group includes the field information in the control file of the control group; the controlling the state of the application process in the container Pod to change from the second state to the first state based on the configuration information of the control group includes: determining whether the value of the field information in the control file of the control group changes from a second value to a first value; in the case where it is determined that the value of the field information in the control file of the control group changes from the second value to the first value, controlling the state of the application process in the container Pod to change from the second state to the first state.

[0068] Here, the field information in the control file of the control group included in the configuration information of the control group can be the freezing field information in the control file of the control group. Exemplarily, it can be the freezer.self_freezing field in Linux cgroups. In the embodiment of the present application, by monitoring the value change of the freezer.self_freezing field in the control group of the Linux operating system (i.e., Linux cgroups), the state of the application process can be controlled. In practical applications, when the application process management device (i.e., kubelet) monitors that the value of the freezer.self_freezing field in Linux cgroups changes from the second value to the first value, it controls the state of the application process in the container Pod to change from the frozen state to the normal running state. At this time, the related application processes of the suspended control group will all resume normal operation, and the service state of the container Pod is serviceable to the outside at this time.

[0069] Adopting the technical solution of the embodiment of the present application, by controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group of the operating system, that is, controlling the application process in the container Pod to enter the frozen state. It can be seen that the embodiment of the present application proposes a method for suspending the application process on K8s without intrusion. This method takes into account the native control group capabilities of the operating system, that is, through the process freezing ability of the control group of the operating system, combined with the K8s scheduling system, to implement the suspension operation of the application process supported by K8s natively. There is no need to intrude into the application for transformation, and the suspension operation of the application process is directly implemented at the scheduling level and the operating system level, improving the speed of suspending the application process.

[0070] The embodiment of the present application also provides another application process management method, which is applied to the application process management device. Figure 2 It is a schematic flow of the application process management method of the embodiment of the present application. Figure 2 ; As Figure 2 shown, this application process management method includes:

[0071] Step 201: When the container Pod in the Kubernetes cluster is running normally, obtain the first event to be processed.

[0072] In the embodiment of the present application, the container Pod includes one or more application containers, and each application container runs an application process correspondingly. One or more application processes in the container Pod are set in the control group of the corresponding operating system.

[0073] Step 202: Listen to the type of the first event.

[0074] In the embodiments of the present application, the types of the first event include a pause event and a resume event.

[0075] Step 203: When it is monitored that the type of the first event is a pause event, based on the configuration information of the control group, control the state of the application process in the container Pod to change from a first state to a second state; the first state represents a normal running state, and the second state represents a frozen state.

[0076] In one embodiment, when controlling the state of the application process in the container Pod to change from a first state to a second state based on the configuration information of the control group, the method further includes: based on the configuration information of the control group, controlling the service state of the container Pod to change from a third state to a fourth state; where the third state represents the state in which the container Pod can provide services externally, and the fourth state represents the state in which the container Pod cannot provide services externally.

[0077] In one embodiment, the obtaining of the first event to be processed includes: obtaining the first event to be processed distributed by the event bus; where the first event to be processed is obtained by the event bus based on a first instruction triggered by an external client.

[0078] In one embodiment, the configuration information of the control group includes field information in the control file of the control group; based on the configuration information of the control group, controlling the state of the application process in the container Pod to change from a first state to a second state includes: based on the value of the field information in the control file of the control group, controlling the state of the application process in the container Pod to change from a first state to a second state.

[0079] In one embodiment, based on the value of the field information in the control file of the control group, controlling the state of the application process in the container Pod to change from a first state to a second state includes: determining whether the value of the field information in the control file of the control group changes from a first value to a second value; when it is determined that the value of the field information in the control file of the control group changes from the first value to the second value, controlling the state of the application process in the container Pod to change from a first state to a second state.

[0080] In one embodiment, after controlling the state of the application process in the container Pod to change from a first state to a second state based on the configuration information of the control group, the method further includes: recording the second state into the persistent storage module.

[0081] In one embodiment, after controlling the state of the application process in the container Pod to change from a first state to a second state based on the configuration information of the control group, the method further includes: obtaining the process information of the application process in the container Pod in the second state; and analyzing the cause of the error of the container Pod with the error based on the process information of the application process in the container Pod in the second state to obtain an analysis result.

[0082] In one embodiment, before controlling the state of the application process in the container Pod to change from a first state to a second state based on the configuration information of the control group, the method further includes: periodically synchronizing the configuration information of the control group corresponding to the container Pod and the status information of the control group.

[0083] Step 204: Obtain a second event to be processed.

[0084] Step 205: Monitor the type of the second event.

[0085] Step 206: When it is monitored that the type of the second event is a recovery event, control the state of the application process in the container Pod to change from the second state to the first state based on the configuration information of the control group.

[0086] In one embodiment, the configuration information of the control group includes the field information in the control file of the control group; and controlling the state of the application process in the container Pod to change from the second state to the first state based on the configuration information of the control group includes: determining whether the value of the field information in the control file of the control group changes from a second value to a first value; and when it is determined that the value of the field information in the control file of the control group changes from the second value to the first value, controlling the state of the application process in the container Pod to change from the second state to the first state.

[0087] It should be noted that the specific processing process of the application process management device for managing the application process has been described in detail above and will not be elaborated here.

[0088] Adopting the technical solution of the embodiment of the present application, by based on the configuration information of the control group of the operating system, the state of the application process in the container Pod is controlled to change from the first state to the second state, that is, the application process in the container Pod is controlled to enter the frozen state. It can be seen that the embodiment of the present application proposes a non-invasive method for suspending the application process on K8s. This method takes into account the native control group capabilities of the operating system, that is, through the process freezing ability of the operating system's control group, combined with the K8s scheduling system, to achieve the suspension operation of the application process supported by K8s natively. There is no need to invade the application for transformation, and the suspension operation of the application process can be directly implemented at the scheduling level and the operating system level, which improves the speed of suspending the application process. The embodiment of the present application also proposes a non-invasive method for resuming the application process on K8s. By based on the configuration information of the control group of the operating system, the state of the application process in the container Pod is controlled to change from the second state to the first state, which not only improves the speed of resuming the application process, but also avoids the problem of cold start delay of the application in the conventional resume operation.

[0089] The present application will be described below in conjunction with application embodiments.

[0090] For the first processing method in the related art, although it combines the cloud platform characteristics of K8s, it requires manual scaling down of application containers, resulting in a complete stop of the application process, which is different from the essence of application suspension. And during the application resume startup process, it is necessary to reapply for system resources from the operating system and re-initialize data and other operations, introducing the cold start delay problem. At the same time, this method cannot save the scene when the application is suspended, which is not conducive to troubleshooting problems when the application program goes wrong. For the second processing method in the related art, there are certain limitations, that is, it requires the application program to support capturing the SIGSTP signal to achieve the suspension function. It is difficult to interrupt multiple replicas simultaneously in a distributed environment and is not applicable to complex cloud platforms. And during the application resume process, it is necessary to send the SIGCONT signal to all processes again, and a large amount of manual operations are required for the freeze resume process, which has high requirements for operation and maintenance personnel.

[0091] To solve the above technical problems, this application proposes a non-invasive method for pausing and resuming applications on K8s. By leveraging the cgroup process freezing capability of the Linux operating system and combining it with the K8s scheduling system, it realizes the pause and resume operations of applications natively supported by K8s. That is, through the extension of the K8s platform characteristics, there is no need to invade and transform the application, and the rapid freezing and recovery of application processes can be directly achieved at the scheduling level and the operating system level. Moreover, during the application freezing period, the application scene can be preserved, and the analysis of the faulty application program can be realized when needed. For example, when an application container encounters an error, the process in the application container can be paused, and the operation and maintenance personnel can enter the virtual file system (such as the proc file system in Linux) or call the syscall kernel interface to obtain the process information in the container, and analyze the faulty application container based on this container process information; and the frozen application process can be quickly resumed, eliminating the cold start delay problem of the application in the conventional recovery operation.

[0092] The non-invasive method for pausing and resuming applications on K8s proposed in this application is implemented in the following two steps:

[0093] (1) Add a container state machine state

[0094] Expand the phase field of the existing K8s container, and add a Freeze state to represent the frozen state. In the frozen state, the processes in the container are in a suspended state, shielding the control instruction event processing.

[0095] (2) The proxy component (kubelet) synchronizes the container state

[0096] The local proxy kubelet on the running node (which can be simply referred to as the node) of K8s periodically synchronizes the states of all container Pods on this node. If it monitors a pause or resume state, it realizes the pause and resume of the application process by setting the value of the cgroup freeze field. The technical solutions of this application are introduced in detail below.

[0097] Application containers run in the form of Pods at the K8s scheduling level. Define a new state in the Pod to represent the frozen state of the application container. For all current states of the application container, the current state of the application container can be converted into a frozen state through the event method.

[0098] Among them, add a Freeze state to the phase field of the existing K8s container to represent the frozen state of the application container, which is convenient for subsequent processing. Add two new types to the event type: Pause (pause) event and Resume (resume) event, and control the data through a unified event bus.

[0099] Among them, the application container freeze state and event type can be represented by the following execution code:

[0100] const(

[0101] PodFreeze PodPhase = "Freeze" )

[0103] const(

[0104] PodPause PodEventType = "Pause"

[0105] PodResume PodEventType = "Resume" )

[0107] It should be noted that when the operation and maintenance personnel update the phase field of the container Pod to Freeze, it means that the application container enters the freeze state, and the application process in the application container also enters the freeze state. When the application container needs to be restored, the phase field of the container Pod is updated from Freeze to the original state. After the kubelet of the container node monitors the status of the phase field, operations such as pausing and resuming the application container are performed.

[0108] Figure 3 This is a schematic diagram of the state transition of the application container state machine in the embodiment of the present application. As Figure 3 shown, when at least one container in the K8s cluster is in the running state, if the exit status of one of the containers is not 0, the deployment fails (Failed). After restarting, the container returns to the running state until all containers are in the running state, and the deployment succeeds (Succeed). For the problem of deployment failure (Failed), the application process deployed in K8s needs to be paused, and then restored after the problem is investigated. Specifically, the current Pod state can be changed to the freeze state (Freeze) through the external event Pause; and the current Pod state (i.e., the freeze state) can be restored to the previous state (i.e., the normal running state, running state) through the external event Reusme.

[0109] The kubelet is an agent component for each running node in Kubernetes. After a container Pod is scheduled to this node, the kubelet is responsible for the lifecycle management of the entire Pod. Generally speaking, the kubelet calls the CRI general interface to implement actions such as creating and destroying application containers. Currently, the main methods defined by the CRI interface are creating containers, stopping containers, deleting containers, etc., lacking the functions of pausing and resuming application containers. And this application is to add the ability to pause and resume containers in the kubelet. However, since the CRI implementation principles corresponding to each node runtime may not be the same, therefore, the ability to pause and resume application containers is built into the kubelet to achieve native support for this ability in Kubernetes. The main implementation method is to synchronize the cgroup status corresponding to the Pod to achieve the pause and resume of application containers.

[0110] When creating a container, the kubelet will set the cgroup of the Pod to implement operations related to quality of service (QoS) such as quotas, but does not implement the operations of pausing and resuming application containers. The kubelet of this application will periodically synchronize the container status on the node to ensure the normal pause state. And the kubelet is distributed on each node of Kubernetes, thus ensuring that the status of each replica of the application can be correctly synchronized, solving the problem that it is difficult for external controllers to automatically send interrupt signals to multiple replicas simultaneously in the conventional method. The key technical point is to add the cgroup synchronization of the pause and resume status at the synchronization logic here.

[0111] K8s realizes resource allocation for containers through Linux cgroups. Cgroups are mainly used to implement resource control. A group of processes are placed in a control group (corresponding to the aforementioned control group). By allocating specified available resources to this control group, the purpose of controlling the resources of this group of processes is achieved. Among them, cgroups is a hierarchical integrated structure, and the resource limits of the cgroup where the parent process is located will be inherited by the child processes. In the container system of K8s, all processes in each container Pod will be in the cgroup control group of this Pod, and this group of processes can be managed simultaneously through cgroups. In K8s, it is the kubelet of each node that is responsible for configuring the croup of each container in this node. Currently, resource control related to CPU and Memory has been implemented, but the cgroup freeze has not been implemented. Therefore, in this application, by supplementing the configuration of cgroup.freeze (corresponding to the configuration information of the aforementioned control group) through the kubelet, the pause and resume operations of the process can be realized; that is to say, the freezer.self_freezing field in the Linux cgruop can control the state of the process, and the default value is 0. When the value is 1, it will freeze the resources of the cgroup and all its child nodes, and at the same time shut down the relevant processes and no longer run. Freezing the cgroup takes a certain amount of time. When the action is completed, the "frozen" value in the cgroup.events control file will be updated to "1" and the corresponding notification will be sent.

[0112] Figure 4 This is the timing diagram of the application pause and resume in the embodiment of this application. The specific process is as follows: The kubelet synchronizes the cgroup status periodically. When the kubelet receives the external event Pause, it changes the current Pod status to the Pause status, that is, the freeze status (Freeze), and records this status in the persistent storage module. When the kubelet receives the external event Reusme, it calls the CRI Resume Container interface to restore the current Pod status (that is, the freeze status) to the previous status (that is, the normal running status, running status).

[0113] Figure 5 This is the process schematic of the application process management method in the embodiment of this application Figure 3 ,such as Figure 5 shown. The application process management method includes the following steps:

[0114] Step 1: Obtain external events (the types of external events include Pause events and Resume events) through an event bus (such as the K8s apiserver);

[0115] Step 2: The Event Bus distributes the corresponding external events obtained to the kubelet. The kubelet obtains the specific external events and performs specific operations;

[0116] Step 3: Assume that the obtained external event type is a Pause event. First, change the state of the container Pod state machine, set it to Freeze, and change the service state of the container Pod to unavailable externally;

[0117] Step 4: Record the freeze state of the container Pod in the persistent storage module to prevent other events from changing the various resource states of the container Pod;

[0118] Step 5: Call the cgroupfs freezer subsystem of the system kernel to freeze the Pod (including the application processes inside each container and the sub-resources under the container). Among them, the frozen resources include: Memory, CPU, CPUSET, BLKIO, PIDS, Devices, Hugetlb, net, etc.

[0119] It should be noted that for the Pause freeze instruction, the order of operation steps is: 1, 2, 3, 4, 5. For the Resume recovery instruction, the order of operation steps is: 1, 2, 5, 4, 3.

[0120] This application innovatively uses the cgroup technology in the K8s system to implement the pause and resume functions of application containers, filling the gap in related technologies. Compared with the solutions of related technologies, the application of this application does not need to be modified, and it natively adapts to the characteristics of application pause and resume by using Linux features, realizing fast application pause and resume, and avoiding the application cold start problem in conventional recovery.

[0121] This application proposes a non-intrusive method for pausing and resuming applications on K8s. Through the cgroup process freezing ability of the Linux operating system, combined with the K8s scheduling system, it listens to the cgroup state, and by setting the value of the field, it can implement the pause and resume functions of application containers without intruding into the application for modification, improving the speed of application pause and resume. This application supplements the ability to manage application containers in the K8s scenario, fills the deficiency in this aspect of K8s, and has a certain market application prospect.

[0122] Compared with the solutions of related technologies, the solution of this application has the following beneficial effects:

[0123] 1) Compared with the method in the related art that scales down the number of application replicas to zero, the present application has the characteristics of fast application suspension and recovery, avoids the performance problems caused by cold start of the application, and realizes the feature that sampling analysis can be performed on the suspended application during the suspension period.

[0124] 2) Compared with the method in the related art that sends Linux SIGSTP signals to the processes in the container, the present application combines the native cgroup capabilities of Linux, is non-invasive to the business system, does not require additional transformation, and is a general means of application suspension and recovery. And combined with the capabilities of K8s, the cgroup is automatically synchronized through kubelet, avoiding the process of manually sending signals to all application containers under normal circumstances, and greatly reducing the operation and maintenance costs.

[0125] To implement the application process management method of the embodiments of the present application, the embodiments of the present application also provide an application process management device. Figure 6 For the composition structure schematic diagram of the application process management device of the embodiments of the present application, as Figure 6 shown, the application process management device includes:

[0126] The first acquisition unit 61 is used to acquire the first event to be processed when the container Pod in the Kubernetes cluster is running normally; the container Pod includes one or more application containers, and each of the application containers runs an application process correspondingly, and one or more application processes in the container Pod are set in the control group of the corresponding operating system;

[0127] The first monitoring unit 62 is used to monitor the type of the first event;

[0128] The first control unit 63 is used to, when the first monitoring unit monitors that the type of the first event is a suspension event, control the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group; the first state represents the normal running state, and the second state represents the frozen state.

[0129] In an embodiment, the device further includes: a second control unit; wherein,

[0130] The second control unit is used to, when the first control unit 63 controls the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, control the service state of the container Pod to change from the third state to the fourth state based on the configuration information of the control group;

[0131] Among them, the third state characterizes the state in which the container Pod can provide services externally, and the fourth state characterizes the state in which the container Pod cannot provide services externally.

[0132] In one embodiment, the first obtaining unit 61 is specifically configured to:

[0133] Obtain the to-be-processed first event distributed by the event bus;

[0134] Among them, the to-be-processed first event is obtained by the event bus based on a first instruction, and the first instruction is initiated by an external client.

[0135] In one embodiment, the configuration information of the control group includes field information in the control file of the control group;

[0136] The first control unit 63 is specifically configured to:

[0137] Based on the value of the field information in the control file of the control group, control the state of the application process in the container Pod to change from the first state to the second state.

[0138] In another embodiment, the first control unit 63 is further specifically configured to:

[0139] Determine whether the value of the field information in the control file of the control group changes from a first value to a second value;

[0140] In the case where it is determined that the value of the field information in the control file of the control group changes from the first value to the second value, control the state of the application process in the container Pod to change from the first state to the second state.

[0141] In one embodiment, the device further includes: a recording unit; among them,

[0142] The recording unit is configured to record the second state into the persistent storage module after the first control unit 63 controls the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group.

[0143] In one embodiment, the device further includes: a second obtaining unit and an analysis unit;

[0144] Among them, the second obtaining unit is configured to obtain the process information of the application process in the container Pod in the second state after the first control unit 63 controls the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group;

[0145] An analysis unit, configured to analyze the cause of error of the faulty container Pod based on the process information of the application process in the container Pod in the second state, and obtain an analysis result.

[0146] In one embodiment, the apparatus further includes: a third acquisition unit, a second monitoring unit, and a third control unit; wherein,

[0147] The third acquisition unit is configured to, after the first control unit 63 controls the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, acquire a second event to be processed;

[0148] The second monitoring unit is configured to monitor the type of the second event;

[0149] The third control unit is configured to, when the second monitoring unit monitors that the type of the second event is a recovery event, control the state of the application process in the container Pod to change from the second state to the first state based on the configuration information of the control group.

[0150] In one embodiment, the configuration information of the control group includes field information in the control file of the control group;

[0151] The third control unit is specifically configured to:

[0152] Determine whether the value of the field information in the control file of the control group changes from a second value to a first value;

[0153] When it is determined that the value of the field information in the control file of the control group changes from the second value to the first value, control the state of the application process in the container Pod to change from the second state to the first state.

[0154] In one embodiment, the apparatus further includes: a synchronization unit; wherein,

[0155] The synchronization unit is configured to periodically synchronize the configuration information of the control group corresponding to the container Pod and the state information of the control group before the first control unit 63 controls the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group.

[0156] In practical applications, the first acquisition unit 61 can be implemented by a communication interface in the application process management device; the first monitoring unit 62 and the first control unit 63 can be implemented by a processor in the application process management device.

[0157] It should be noted that when the application process management device provided in the above embodiments performs application process management, only the division of the above program modules is used for illustration. In actual applications, the above processing can be allocated to different program modules according to needs, that is, the internal structure of the device is divided into different program modules to complete all or part of the above-described processing. In addition, the application process management device provided in the above embodiments and the application process management method embodiments belong to the same concept. For the specific implementation process, please refer to the application process management method embodiments, which will not be elaborated here.

[0158] Based on the hardware implementation of the above program modules, and in order to implement the application process management method of the embodiments of the present application, the embodiments of the present application also provide an application process management device. Figure 7 As shown in the schematic diagram of the hardware composition structure of the application process management device for the embodiments of the present application, Figure 7 as shown, the application process management device 70 includes:

[0159] A communication interface 71 capable of interacting with other devices;

[0160] A processor 72, connected to the communication interface 71 to implement information interaction with other devices, and when running a computer program, executes the above-provided application process management method, and the computer program is stored on the memory 73.

[0161] It should be noted that the specific processing processes of the communication interface 71 and the processor 72 can be understood with reference to the above application process management method.

[0162] Of course, in actual applications, the various components in the application process management device 70 are coupled together through a bus system 74. It can be understood that the bus system 74 is used to realize the connection and communication between these components. The bus system 74 includes not only a data bus, but also a power bus, a control bus, and a status signal bus. However, for the sake of clear illustration, in Figure 7 all kinds of buses are labeled as the bus system 74.

[0163] The memory 73 in the embodiments of the present application is used to store various types of data to support the operation of the application process management device 70. Examples of these data include: any computer program for operating on the application process management device 70.

[0164] The application process management method disclosed in the embodiments of the present application can be applied to or implemented by the processor 72. The processor 72 may be an integrated circuit chip with signal processing capabilities. During implementation, the steps of the above application process management method can be completed by the integrated logic circuit in hardware or instructions in software form in the processor 72. The above-mentioned processor 72 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The processor 72 can implement or execute various application process management methods, steps, and logic block diagrams disclosed in the embodiments of the present application. The general-purpose processor may be a microprocessor or any conventional processor, etc. Combining the steps of the application process management method disclosed in the embodiments of the present application, it can be directly embodied as being executed and completed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module may be located in a storage medium, and this storage medium is located in the memory 73. The processor 72 reads the information in the memory 73 and combines its hardware to complete the steps of the foregoing application process management method.

[0165] In an exemplary embodiment, the application process management device 70 can be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontroller units (MCUs), microprocessors, or other electronic components, and is used to execute the foregoing application process management method.

[0166] It can be understood that the memory 73 in the embodiments of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM, Read Only Memory), a programmable read-only memory (PROM, Programmable Read-Only Memory), an erasable programmable read-only memory (EPROM, Erasable Programmable Read-Only Memory), an electrically erasable programmable read-only memory (EEPROM, Electrically Erasable Programmable Read-Only Memory), a ferromagnetic random access memory (FRAM, ferromagnetic random access memory), a flash memory (FlashMemory), a magnetic surface memory, an optical disc, or a compact disc read-only memory (CD-ROM, Compact Disc Read-Only Memory); the magnetic surface memory can be a disk memory or a tape memory. The volatile memory can be a random access memory (RAM, Random Access Memory), which is used as an external cache. By way of example but not limitation, many forms of RAM are available, such as a static random access memory (SRAM, Static Random Access Memory), a synchronous static random access memory (SSRAM, Synchronous Static Random Access Memory), a dynamic random access memory (DRAM, Dynamic Random Access Memory), a synchronous dynamic random access memory (SDRAM, Synchronous Dynamic Random Access Memory), a double data rate synchronous dynamic random access memory (DDRSDRAM, Double Data Rate Synchronous Dynamic Random Access Memory), an enhanced synchronous dynamic random access memory (ESDRAM, Enhanced Synchronous Dynamic Random AccessMemory), a sync link dynamic random access memory (SLDRAM, SyncLink Dynamic Random AccessMemory), and a direct rambus random access memory (DRRAM, Direct Rambus Random Access Memory).The memory 73 described in the embodiments of the present application is intended to include, but is not limited to, these and any other suitable types of memories.

[0167] In an exemplary embodiment, the embodiments of the present application further provide a storage medium, specifically a computer storage medium, more specifically a computer-readable storage medium, such as a memory 73 storing a computer program, and the computer program can be executed by a processor 72 in an application process management device 70 to complete the steps of the application process management method described in the foregoing embodiments of the present application. Among them, the computer-readable storage medium may be a FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM, etc.

[0168] In an exemplary embodiment, the embodiments of the present application further provide a computer program product, including a computer program, and the computer program can be executed by a processor 72 in an application process management device 70 to complete the steps of the application process management method described in the foregoing embodiments of the present application.

[0169] It should be noted that "first", "second", "third", etc. are used to distinguish similar objects, and do not necessarily need to describe a specific order or sequence.

[0170] In addition, the technical solutions described in the embodiments of the present application can be arbitrarily combined without conflict.

[0171] The above is only the specific implementation manner of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed by the present application, and all should be covered by the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. An application process management method, characterized in that: The method comprises: When the container Pod in the Kubernetes cluster runs normally, a first event to be processed is obtained; the container Pod includes one or more application containers, each of which runs an application process, and the one or more application processes in the container Pod are set in a control group of the corresponding operating system; Monitor the type of the first event; When it is detected that the type of the first event is a pause event, based on the configuration information of the control group, the state of the application process in the container Pod is controlled to change from a first state to a second state; the first state represents a normal running state, and the second state represents a frozen state.

2. The method according to claim 1, characterized in that When controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes: Based on the configuration information of the control group, control the service state of the container Pod to change from the third state to the fourth state; The third state represents a state in which the container Pod can provide services externally, and the fourth state represents a state in which the container Pod cannot provide services externally.

3. The method according to claim 1, characterized in that The obtaining of the first event to be processed includes: Obtain the first event to be processed distributed by the event bus; The first event to be processed is acquired by the event bus based on a first instruction triggered by an external client.

4. The method according to claim 1, characterized in that: The configuration information of the control group includes field information in the control file of the control group; The controlling, based on the configuration information of the control group, to change the state of the application process in the container Pod from the first state to the second state includes: Based on the value of the field information in the control file of the control group, the state of the application process in the container Pod is controlled to change from the first state to the second state.

5. The method according to claim 4, characterized in that The controlling the state of the application process in the container Pod to change from the first state to the second state based on the value of the field information in the control file of the control group includes: Determining whether the value of the field information in the control file of the control group changes from a first value to a second value; When it is determined that the value of the field information in the control file of the control group changes from the first value to the second value, the state of the application process in the container Pod is controlled to change from the first state to the second state.

6. The method according to claim 1, characterized in that After controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes: The second state is recorded in a persistent storage module.

7. The method according to claim 1, characterized in that After controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes: Obtain process information of the application process in the container Pod in the second state; Based on the process information of the application process in the container Pod in the second state, the error cause of the erroneous container Pod is analyzed to obtain an analysis result.

8. The method according to claim 1, characterized in that After controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes: Obtain a second event to be processed, and monitor the type of the second event; In the case where it is monitored that the type of the second event is a recovery event, based on the configuration information of the control group, the state of the application process in the container Pod is controlled to change from the second state to the first state.

9. The method according to claim 8, characterized in that The configuration information of the control group includes field information in the control file of the control group; The controlling, based on the configuration information of the control group, to change the state of the application process in the container Pod from the second state to the first state includes: Determining whether the value of the field information in the control file of the control group changes from the second value to the first value; When it is determined that the value of the field information in the control file of the control group changes from the second value to the first value, the state of the application process in the container Pod is controlled to change from the second state to the first state.

10. The method according to any one of claims 1 to 9, characterized in that: Before controlling the state of the application process in the container Pod to change from the first state to the second state based on the configuration information of the control group, the method further includes: Periodically synchronize the configuration information of the control group corresponding to the container Pod and the status information of the control group.

11. An application process management device, characterized in that: The device comprises: A first acquisition unit is used to acquire a first event to be processed when a container Pod in a Kubernetes cluster runs normally; the container Pod includes one or more application containers, each of which runs an application process, and the one or more application processes in the container Pod are set in a control group of a corresponding operating system; A first monitoring unit, configured to monitor the type of the first event; The first control unit is used to control the state of the application process in the container Pod to change from a first state to a second state based on the configuration information of the control group when the first monitoring unit monitors that the type of the first event is a pause event; the first state represents a normal operating state, and the second state represents a frozen state.

12. An application process management device, characterized in that: include: a processor and a memory for storing a computer program capable of running on said processor; Wherein, when the processor is used to run the computer program, it executes the steps of the method described in any one of claims 1 to 10.

13. A storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 10 are implemented.

14. A computer program product comprising a computer program, characterized in that The computer program implements the steps of the method according to any one of claims 1 to 10 when executed by a processor.