CONTAINER CONTROL DEVICE, CONTAINER CONTROL SYSTEM, CONTAINER CONTROL METHOD, AND CONTAINER CONTROL PROGRAM
The container control device addresses the issue of lost license authentication in container-based virtualization by monitoring and reallocating licenses, ensuring applications can be quickly restarted after container abnormalities.
Patent Information
- Application Number
- JP2021155066
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-24
- Publication Date
- 2025-09-25
- Estimated Expiration
- 2041-09-24
AI Technical Summary
In a container-based virtualization environment, when an abnormality occurs in a container causing it to stop, the license authentication information is lost, leading to the inability to quickly restart the application due to a lack of licenses, and new applications cannot be started until the licenses are recovered by the management server.
A container control device that monitors the operating status of containers, recovers unused licenses from stopped containers, and generates new containers using these recovered licenses to ensure applications can be quickly restarted.
The solution prevents applications from being unable to restart promptly due to license shortages by proactively managing and reallocating licenses, allowing seamless container operations even in the event of abnormalities.
Smart Images

Figure 0007743739000001 
Figure 0007743739000002 
Figure 0007743739000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a container control device, a container control method, and a container control program in an environment where applications are executed using container-based virtualization. [Background technology]
[0002] Recent computer systems flexibly build an optimal configuration for providing services by applications by implementing a virtualized environment using containers or virtual machines as an environment for executing application software (hereinafter referred to simply as an application). In such computer systems, dynamic scale-out (addition of execution environments) and scale-in (reduction of execution environments) are performed for the execution environments (e.g., containers or virtual machines) of the applications.
[0003] Furthermore, in order to execute an application, it is necessary to grant a license that allows the execution of the application to that execution environment. Therefore, a system in which the configuration of the application execution environment is dynamically changed, such as the one described above, usually includes a license management server that manages licenses so that licenses can be granted to the execution environment.
[0004] In a license management system using a license management server, a license is usually issued (granted) to the application's execution environment when the application is launched, and the license is returned to the license management server when the application is terminated. Therefore, with this type of license management system, if the application suddenly stops, the license is not returned, and there is a problem in that the license must be returned manually.
[0005] Regarding the above-mentioned problem, Patent Document 1, which describes technology related to license management for applications running on virtual machines, proposes a solution in which a license management server periodically monitors the operating status of an application and recovers the license if the application is stopped. Patent Document 1 also points out a new problem with this method: if all licenses have already been used up, new applications cannot be launched until the licenses are released through periodic monitoring. To address this problem, Patent Document 1 teaches that when a virtual machine that has been stopped while holding authenticated license information is restarted, the license management server can confirm that the virtual machine is licensed based on the combination of the host name and Internet Protocol (IP) address of the virtual machine on which the application is running. Patent Document 1 also teaches that the application can be re-enabled by updating the authentication information. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] International Publication No. 2015 / 019416 Summary of the Invention [Problem to be solved by the invention]
[0007] In a container-based virtualization environment, unlike the virtualization environment based on virtual machines described in Patent Document 1, if an abnormality occurs in a container, recovery is typically achieved by forcibly stopping the container and starting a new container running the same application. In other words, when the main application process in a container stops, the container itself disappears. As a result, the license authentication information for the container is lost, and typically, when the execution environment restarts, the application cannot be quickly restarted using the authenticated license information. Therefore, for example, if an application stops with all its licenses used up, a new application cannot be started until the license management server recovers the licenses. Patent Document 1 does not specifically address such problems in a container-based virtualization environment.
[0008] The main object of the present invention is to provide a container control device, etc., which avoids the inability to quickly restart an application due to a lack of licenses when a container stops in a container-based virtualization environment. [Means for solving the problem]
[0009] A container control device according to one embodiment of the present invention comprises a monitoring means for monitoring the operating status of one or more containers that execute an application, a license granting control means for recovering, as an unused license, a license required to execute the application that was granted to a first container whose operation has stopped, and a generation means for generating a new second container that executes the application using the recovered unused license.
[0010] In another aspect of achieving the above object, a container control method according to one embodiment of the present invention monitors the operating status of one or more containers that execute an application using an information processing device, recovers the license required to execute the application that was granted to a first container whose operation has stopped as an unused license, and uses the recovered unused license to newly generate a second container that executes the application.
[0011] In addition, in a further aspect of achieving the above-mentioned object, a container control program according to one embodiment of the present invention causes a computer to execute a monitoring process that monitors the operating status of one or more containers that execute an application, a license granting control process that recovers, as an unused license, a license required to execute the application that was granted to a first container whose operation has stopped, and a generation process that uses the recovered unused license to newly generate a second container that executes the application.
[0012] Furthermore, the present invention can also be realized by a computer-readable non-volatile recording medium in which such a container control program (computer program) is stored. [Effects of the Invention]
[0013] The present invention makes it possible to avoid a situation in which an application cannot be quickly restarted due to a lack of licenses when a container is stopped in a virtualized environment using a container. [Brief explanation of the drawings]
[0014] [Figure 1] 1 is a block diagram showing a configuration of a container control system 1 according to a first embodiment of the present invention. [Figure 2] FIG. 2 is a diagram illustrating an example of data in an application management table 220 according to the first embodiment of the present invention. [Figure 3]FIG. 2 is a diagram illustrating an example of data in a license management table 240 according to the first embodiment of the present invention. [Figure 4] 3 is a flowchart showing the overall operation of the container control system 1 according to the first embodiment of the present invention. [Figure 5] 5 is a flowchart showing detailed operations of step S101 in FIG. 4 of the container control system 1 according to the first embodiment of the present invention. [Figure 6] 5 is a flowchart showing detailed operations of step S102 in FIG. 4 of the container control system 1 according to the first embodiment of the present invention. [Figure 7A] 5 is a flowchart (1 / 2) showing detailed operations of step S103 in FIG. 4 of the container control system 1 according to the first embodiment of the present invention. [Figure 7B] 5 is a flowchart (2 / 2) showing detailed operations of step S103 in FIG. 4 of the container control system 1 according to the first embodiment of the present invention. [Figure 8A] 8 is a flowchart (1 / 2) showing detailed operations of step S407 in FIG. 7 of the container control system 1 according to the first embodiment of the present invention. [Figure 8B] 8 is a flowchart (2 / 2) showing detailed operations of step S407 in FIG. 7 of the container control system 1 according to the first embodiment of the present invention. [Figure 9] FIG. 4 is a block diagram showing the configuration of a container control device 40 according to a second embodiment of the present invention. [Figure 10] FIG. 9 is a block diagram showing the configuration of an information processing device 900 capable of executing the container control system or container control device according to each embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0015] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0016] First Embodiment 1 is a block diagram showing the configuration of a container control system 1 according to a first embodiment of the present invention. The container control system 1 roughly includes a container control device 10, a container execution environment 20, and a management terminal device 30. The container control device 10 and the container execution environment 20 are connected to each other so that they can communicate with each other. Furthermore, the container execution environment 20 and the management terminal device 30 are connected to each other so that they can communicate with each other.
[0017] The management terminal device 30 is an information processing device such as a personal computer that is used by a user when inputting information into the container execution environment or when checking information output from the container execution environment.
[0018] The container execution environment 20 is configured by one or more information processing devices such as server devices, and executes one or more containers 21. Each container 21 includes an application execution unit 211, a license request unit 212, a license information storage unit 213, and a status reporting unit 214.
[0019] The application execution unit 211 executes an application in the container 21. The application execution unit 211 uses a license required for executing the application, which is stored in the license information storage unit 213, to start the application.
[0020] The license request unit 212 requests the container control device 10 to issue a license, and stores the license issued from the container control device 10 in the license information storage unit 213. The status reporting unit 214 monitors the operating status of the application in the container 21, and notifies the container control device 10 of the operating status of the application.
[0021] The container execution environment 20 also includes an application management unit 22, a container image management unit 23, and a license management unit 24.
[0022] The application management unit 22 stores an application management table 220 for managing applications executed in the container 21. The application management table 220 is generated or updated via an input operation by a user to the management terminal device 30.
[0023] 2 is a diagram illustrating data in the application management table 220 according to this embodiment. The application management table 220 illustrated in FIG. 2 manages, for each application, the application name, container image name, license name, number of container copies, number of CPUs, and memory capacity.
[0024] 2, for example, the container image name of an application named "app1" is "app / app1." The name of the license required to execute the application is "license1," and the number of container copies is two.
[0025] Here, the number of container copies will be explained. The container control device 10 operates to launch applications (containers) in a number equal to the number of container copies, so the number of container copies represents the number of containers of an application executed in the container execution environment 20. Therefore, if there are enough licenses for a certain application, the container control device 10 generates and launches containers equal to the number of container copies for the execution of the application. If there are not enough licenses for a certain application, the number of containers generated and launched by the container control device 10 for the execution of the application is limited to the number of licenses. For example, the application management table 220 illustrated in FIG. 2 indicates that two applications named "app1" are executed simultaneously. Furthermore, two CPUs and 1 GB (gigabyte) of memory capacity are allocated for the execution of the containers of the application.
[0026] The items included in application management table 220 are not limited to the items exemplified in Fig. 2, and application management table 220 may include items different from the items exemplified in Fig. 2. Furthermore, application management table 220 may not be a table such as the one exemplified in Fig. 2, but may instead be information represented by tree-structured data in, for example, YAML format or JSON format.
[0027] 1 stores a container image of the container 21 activated by the container control device 10. The container image management unit 23 may have a configuration equivalent to, for example, an existing container registry. The container image is registered in the container image management unit 23 via an input operation by a user on the management terminal device 30.
[0028] The license management unit 24 stores licenses required for executing applications executed in the container 21, and a license management table 240 for managing the licenses. Licenses are registered in the license management unit 24 via input operations by a user to the management terminal device 30.
[0029] Fig. 3 is a diagram illustrating data in the license management table 240 according to this embodiment. The license management table 240 illustrated in Fig. 3 manages, for each license, the license key, license name, container ID (Identification) of the issuing destination, application that has reserved use of the license, and expiration date of the reservation.
[0030] According to the license management table 240 illustrated in FIG. 3, for example, four license keys, "LIC10012345," "LIC10012346," "LIC10012347," and "LIC10012348," are registered for a license named "license1." Of these, two license keys, "LIC10012345" and "LIC10012346," are issued (in use) to the container 21 whose container ID is "container_001." Of the four license keys described above, the license key "LIC10012347" is currently unused, but is reserved for use by an application named "app1," and the date and time of the reservation expiration are registered. Of the four license keys described above, the license key "LIC10012348" is currently unused and is not reserved for use.
[0031] The container control device 10 is an information processing device that stops and starts the container 21 according to the state of the container 21 and the usage status of licenses related to applications executed in the container 21, and collects licenses from the container 21 and issues licenses to the container 21. The container control device 10 includes a monitoring unit 11, a license granting control unit 12, a generation unit 13, and an execution unit 14. The monitoring unit 11, the license granting control unit 12, and the generation unit 13 are examples of a monitoring means, a license granting control means, and a generation means, respectively.
[0032] The monitoring unit 11 monitors the operating status of the container 21 that executes the application and the license usage status by the container 21. First, for each application registered in the application management table 220, the monitoring unit 11 obtains, via the execution unit 14, a list of the containers 21 that execute the application.
[0033] The monitoring unit 11 compares the number of containers 21 that execute the application with the number of container copies of the application indicated in the application management table 220. If the number of containers 21 that execute the application exceeds the number of container copies, the monitoring unit 11 requests the generation unit 13 to stop and delete the containers 21 that execute the application.
[0034] At this time, the monitoring unit 11 checks whether information indicating the operating status of the container 21, acquired from the status reporting unit 214 of the container 21 to be stopped and deleted, indicates the occurrence of an abnormality. If there is a container 21 in which an abnormality has occurred, the monitoring unit 11 requests the generation unit 13 to preferentially stop and delete the container 21 in which an abnormality has occurred. The monitoring unit 11 may also use the operating location, operating time, etc. of the container 21 as conditions for selecting the container 21 to be preferentially stopped and deleted, in addition to whether or not an abnormality has occurred in the container 21. More specifically, the monitoring unit 11 may use, for example, differences in the operating location of the container 21, such as a public cloud, a private cloud, or an on-premise (internal environment), and the geographical conditions of the information processing device that runs the container 21 as selection conditions for the container 21 to be preferentially stopped and deleted. For multiple containers 21 that have the same conditions, the monitoring unit 11 may give higher priority to the container 21 in which an abnormality has occurred when selecting the container 21 to be stopped and deleted.
[0035] The license granting control unit 12 issues to the container 21 a license required for the container 21 to execute an application, and collects the license that was issued to the container 21 whose operation has stopped as an unused license.
[0036] The licensing control unit 12 updates the delivery destination container ID field in the license management table 240 for the container 21 deleted by the generation unit 13 to a blank (unused state). Then, the licensing control unit 12 sets the name of the application that was stopped due to the deletion of the container 21 and the date and time indicating the reservation expiration date in the reservation application and reservation expiration date fields in the same row in the license management table 240. The reservation expiration date is, for example, a date and time a predetermined time from the present, and the predetermined time is assumed to be given by, for example, an administrator of the container control system 1.
[0037] The licensing control unit 12 receives information indicating the container ID, application name, license name, and number of required licenses from the newly started container 21 via the monitoring unit 11. The licensing control unit 12 collates this information with the license management table 240, and determines, as an available license, a license key that meets all of the following conditions: "license name matches," "destination container ID is blank," "reservation application is blank, or the reservation application is not blank and the reservation expiration date has passed, or the name of the reservation application matches the received application name and the reservation expiration date has not passed."
[0038] If the number of licenses required by a newly activated container 21 is greater than the number of available licenses, the licensing control unit 12 notifies the container 21 of an error indicating a shortage of licenses.
[0039] When the number of licenses required by a newly activated container 21 is equal to or less than the number of available licenses, the licensing control unit 12 selects the required number of licenses from the available licenses as licenses to be issued to the container 21. In this case, the licensing control unit 12 gives priority to selecting licenses whose reserved application name matches the received application name.
[0040] The licensing control unit 12 updates the license management table 240 for the license issued to the container 21 as follows. The destination container ID is updated to the container ID of the container 21. - Leave the reservation application and reservation expiration date fields blank.
[0041] Then, the license granting control unit 12 notifies the container 21 of the issued license.
[0042] The generation unit 13 stops and deletes the container 21, and generates a new container 21. In response to a request from the monitoring unit 11, the generation unit 13 stops and deletes the container 21 that is executing an application. At that time, the generation unit 13 gives priority to stopping and deleting the container 21 in which an abnormality has occurred.
[0043] The generation unit 13 generates new containers 21 for applications executed in the containers 21 until the number of container copies matches the number indicated in the application management table 220 or until there is a shortage of licenses. At that time, the generation unit 13 can use licenses that have been collected as unused licenses by the licensing control unit 12 from the containers 21 whose operation has been stopped.
[0044] The generation unit 13 also controls the use of an unused license set to a reserved state for an application in the license management table 240 by a new container 21 that executes the application on a preferential basis. In this case, the generation unit 13 assumes that the reservation expiration date has not passed, and if the reservation expiration date has passed, invalidates the reservation for use of the unused license.
[0045] The execution unit 14 starts the container 21 generated by the generation unit 13 and starts the execution of the application in the container 21.
[0046] Next, the operation (processing) of the container control device 10 according to this embodiment will be described in detail with reference to the flowcharts of FIGS. 4 to 8B.
[0047] FIG. 4 is a flowchart showing the overall operation of the container control device 10.
[0048] The container control device 10 stops operation of the container 21 for which the number of application copies has exceeded and deletes it, and recovers the license of the application that was running in the deleted container 21 (step S101). The container control device 10 stops operation of the container 21 for which an abnormality has occurred and deletes it, and recovers the license of the application that was running in the deleted container 21 (step S102). The container control device 10 generates and starts containers 21 using unused licenses including the recovered licenses until the number of applications to be executed matches the number of copies or there is a license shortage (step S103), and the process returns to step S101. The container control device 10 repeatedly executes an adjustment loop related to the start and stop of the container 21 shown in the flowchart of FIG. 4.
[0049] FIG. 5 is a flowchart showing detailed operations of step S101 in the flowchart of FIG. 4 of the container control device 10 according to this embodiment.
[0050] The monitoring unit 11 refers to the application management table 220 (step S201). The container control device 10 executes the processes of steps S203 to S207 for each application defined in the application management table 220 in the order of entries in the application management table 220 (step S202).
[0051] The monitoring unit 11 acquires from the execution unit 14 the number of containers 21 that are executing applications that match the application names in the application management table 220 (step S203). The monitoring unit 11 compares the acquired number of containers 21 with the number of copies (step S204).
[0052] If the number of acquired containers 21 is equal to or less than the number of copies (No in step S205), the process proceeds to step S208. If the number of acquired containers 21 is greater than the number of copies (Yes in step S205), the generation unit 13 stops the operation of the container 21 that is executing the application and deletes it in response to a request from the monitoring unit 11. At that time, the generation unit 13 gives priority to stopping and deleting the container 21 in which an abnormality has occurred (step S206).
[0053] The license granting control unit 12 updates the item of the destination container ID for the deleted container 21 in the license management table 240 to blank (unused state) (step S207).
[0054] If the application is not the application defined in the last entry in the application management table 220, the container control device 10 processes the application of the next entry (step S208), and the processing returns to step S203; if the application is the application defined in the last entry in the application management table 220, the processing of step S101 ends.
[0055] FIG. 6 is a flowchart showing detailed operations of step S102 in the flowchart of FIG. 4 of the container control device 10 according to this embodiment.
[0056] The monitoring unit 11 acquires a list of operating containers 21 from the execution unit 14 (step S301). The container control device 10 executes the processes from S303 to S306 for each operating container 21 in the order of entries in the list of operating containers 21 (step S302).
[0057] The monitoring unit 11 acquires the operating status of the container 21 from the status reporting unit 214 of the container 21 (step S303). If the container 21 is operating normally (Yes in step S304), the process proceeds to step S307. If the container 21 is not operating normally (an abnormality has occurred) (No in step S304), the generation unit 13 stops the operation of the container 21 and deletes it in response to a request from the monitoring unit 11 (step S305).
[0058] In the license management table 240, the license granting control unit 12 updates the destination container ID field for the deleted container 21 to blank (unused state), and sets the name of the application that was stopped due to the deletion of the container 21 and the date and time representing the reservation expiration date in the reservation application and reservation expiration date fields in the same row (step S306).
[0059] If the container 21 to be processed is not the last entry container in the list of containers 21 in operation, the container control device 10 sets the next entry container 21 as the processing target (step S307), and the processing returns to step S303; if the container 21 to be processed is the last entry container in the list of containers 21 in operation, the processing of step S102 ends.
[0060] 7A and 7B are flowcharts showing detailed operations of step S103 in the flowchart of FIG. 4 of the container control device 10 according to this embodiment.
[0061] The monitoring unit 11 refers to the application management table 220 (step S401). The container control device 10 executes the processes from S403 to S407 for each application defined in the application management table 220 in the order of entries in the application management table 220 (step S402).
[0062] The monitoring unit 11 acquires from the execution unit 14 the number of containers 21 that are executing applications that match the application names in the application management table 220 (step S403). The monitoring unit 11 compares the acquired number of containers 21 with the number of copies (step S404).
[0063] If the number of acquired containers 21 is equal to or greater than the number of copies (No in step S405), the process proceeds to step S410. If the number of acquired containers 21 is smaller than the number of copies (Yes in step S405), the generation unit 13 generates a container 21 that executes the application based on the application management table 220 (step S406). The execution unit 14 starts the generated container 21, and the licensing control unit 12 issues a license for the application to the container 21 (step S407).
[0064] The monitoring unit 11 refers to the license management table 240 and checks whether a license shortage has occurred in the created container 21 (step S408). If a license shortage has not occurred and the created container 21 has successfully started (No in step S409), the process returns to step S403 while the same application remains the processing target. If a license shortage has occurred and the created container 21 has been stopped and deleted (Yes in step S409), the process proceeds to step S410.
[0065] If the application is not the application defined in the last entry in the application management table 220, the container control device 10 processes the application of the next entry (step S410) and the processing returns to step S403, and if the application is the application defined in the last entry in the application management table 220, the processing of step S103 ends.
[0066] 8A and 8B are flowcharts showing detailed operations of step S407 in the flowchart of FIG. 7 of the container control device 10 according to this embodiment.
[0067] The license request unit 212 in the newly started container 21 calculates the number of required licenses based on the number of CPUs, etc. (step S501). The monitoring unit 11 receives the container ID, application name, license name, and number of required licenses from the license request unit 212 of the container 21 (step S502).
[0068] The license granting control unit 12 compares the information received from the container 21 with the license management table 240, and determines as an available license a license key that meets all of the following conditions: "license name matches," "destination container ID is blank," "reservation application is blank, or the reservation application is not blank and the reservation expiration date has passed, or the name of the reservation application matches the received application name and the reservation expiration date has not passed" (step S503).
[0069] If the number of required licenses is greater than the number of available licenses (No in step S504), the licensing control unit 12 notifies the container 21 of an error indicating insufficient licenses (step S505). The generation unit 13 stops the operation of the container 21 and deletes it (step S506), and the process of step S407 ends.
[0070] If the number of required licenses is equal to or less than the number of available licenses (Yes in step S504), the licensing control unit 12 selects the required number of licenses from the available licenses as licenses to be issued to the container 21. In this case, the licensing control unit 12 gives priority to selecting licenses whose reserved application name matches the received application name (step S507).
[0071] The licensing control unit 12 updates the license management table 240 for the license issued to the container 21 as follows. The destination container ID is updated to the container ID of the container 21. The reservation application and reservation expiration date are left blank (step S508).
[0072] The licensing control unit 12 notifies the container 21 of the issued license (step S509). The license request unit 212 in the container 21 registers the license notified by the licensing control unit 12 in the license information holding unit 213 (step S510). The execution unit 14 starts execution of the application in the container 21 using the registered license (step S511), and the processing of step S407 ends.
[0073] The container control device 10 according to this embodiment can prevent an application from being unable to be promptly restarted due to a lack of licenses when a container stops in a container virtualization environment. This is because the container control device 10 recovers the license required to execute an application that was granted to the stopped container 21 as an unused license, and uses the unused license to newly generate a container 21 that executes the application.
[0074] The effects achieved by the container control device 10 according to this embodiment will be described in detail below.
[0075] In a container-based virtualization environment, unlike a virtualization environment based on virtual machines, if an abnormality occurs in a container, recovery is typically achieved by forcibly stopping the container and starting a new container running the same application. In other words, when the main application process in a container stops, the container itself disappears. As a result, the license authentication information for the container is lost, and it is usually not possible to quickly restart the application using the authenticated license information when the execution environment is restarted. Therefore, for example, if an application stops when all licenses have been used up, a new application cannot be started until the license management server recovers the licenses.
[0076] To address these issues, the container control device 10 according to this embodiment includes a monitoring unit 11, a licensing control unit 12, and a generating unit 13, and operates, for example, as described above with reference to FIGS. 1 to 8B. That is, the monitoring unit 11 monitors the operating status of one or more containers 21 that execute applications. The licensing control unit 12 recovers, as an unused license, a license required to execute an application that was granted to a container 21 (first container) whose operation has stopped. Then, the generating unit 13 uses the recovered unused license to newly generate a container 21 (second container) that executes the application.
[0077] That is, in this embodiment, the container control device 10 itself, which monitors, starts, and stops the container 21, also recovers the license, which in a general system is performed by a license management server. As a result, when a container stops in a virtualized environment using a container, the container control device 10 does not need to wait for the license management server to recover the license, and it is possible to avoid a situation where an application cannot be restarted promptly due to a lack of licenses.
[0078] Furthermore, if the license management server described above periodically monitors the operating status of containers to which licenses have been issued, starting a new container may fail due to uncollected licenses even if there are actually enough licenses. In response to this, the container control device 10 according to this embodiment has both a function for starting a container 21 and a function for monitoring the operating status of the container 21 and collecting licenses from a stopped container 21. This makes it possible to collect the license of a stopped container 21 before starting a new container 21, thereby solving the above-mentioned problem.
[0079] Furthermore, when an application that was being executed in a stopped container 21 is to be executed by a newly started container 21, the container control device 10 according to this embodiment sets the unused license recovered from the stopped container 21 to a state reserved for the newly started container 21. The container control device 10 then controls the unused license that has been set to a reserved state to be used preferentially by the newly started container 21. In this way, the container control device 10 can prevent the start-up of the restarted container 21 from failing due to a lack of licenses, which occurs when a license that was scheduled to be used by the restarted container 21 is used by another container 21 during the period from when the container 21 is stopped until when the container 21 is restarted.
[0080] Furthermore, when the container control device 10 according to this embodiment sets a validity period for the reserved state when setting a collected unused license to a state reserved for a newly activated container 21, and if the validity period has not passed, performs control so that the unused license set to the reserved state is used preferentially by the newly activated container 21. In this way, the container control device 10 can avoid waste, such as the unused license being unable to be used for a long period of time, when, for example, the container 21 that has reserved the use of the unused license is unable to restart for a long period of time due to some kind of failure or the like.
[0081] Furthermore, the container control device 10 according to this embodiment sets unused licenses to a state reserved for a newly activated container 21 based on information indicating the environment in which the container 21 operates (for example, a public cloud, a private cloud, or on-premise, or the location of an information processing device that runs the container 21, etc.). This allows the container control device 10 to flexibly control the execution of the container 21, such as by prioritizing the operation of the container 21 depending on the environment in which the container 21 operates.
[0082] <Second embodiment> FIG. 9 is a block diagram showing the configuration of a container control device 40 according to a second embodiment of the present invention.
[0083] The container control device 40 according to this embodiment includes a monitoring unit 41, a licensing control unit 42, and a generating unit 43. The monitoring unit 41, the licensing control unit 42, and the generating unit 43 are examples of a monitoring means, a licensing means, and a generating means, respectively.
[0084] The monitoring unit 41 monitors the operating status of one or more containers 50 that execute an application 500. The container 50 is an application execution environment similar to, for example, the container 21 according to the first embodiment. The monitoring unit 41 operates in the same manner as, for example, the monitoring unit 11 according to the first embodiment.
[0085] The licensing control unit 42 collects the license required to execute the application 500 that was granted to the first container 51 whose operation has stopped, as an unused license 400. The licensing control unit 42 operates in the same manner as the licensing control unit 12 according to the first embodiment, for example.
[0086] The generation unit 43 uses the collected unused license 400 to newly generate a second container 52 that executes the application 500. The generation unit 43 operates in the same manner as, for example, the generation unit 13 according to the first embodiment.
[0087] The container control device 40 according to this embodiment can prevent an application from being unable to be promptly restarted due to a lack of licenses when a container stops in a container-based virtualization environment. This is because the container control device 40 recovers the license required to execute the application that was granted to the stopped first container 51 as an unused license 400, and uses the unused license 400 to newly generate a second container 52 that executes the application 500.
[0088] <Hardware configuration example> In each of the above-described embodiments, each unit in the container control system or container control device shown in Figures 1 and 9 can be realized by dedicated HW (Hardware) (electronic circuitry). In Figures 1 and 9, at least the following configurations can be considered as functional (processing) units (software modules) of a software program including instructions executed by a processor. Monitoring units 11 and 41, Licensing control units 12 and 42, generation units 13 and 43, Executive Division 14, · Application Management Unit 22, · Container image management part 23, License Management Department 24 application execution unit 211, a license request unit 212; License information storage unit 213, · Status reporting section 214.
[0089] However, the division of the various components shown in these drawings is for the sake of convenience, and various configurations may be assumed for implementation. An example of the hardware environment in this case will be described with reference to FIG. 10.
[0090] Fig. 10 is a diagram illustrating an example of the configuration of an information processing device 900 (computer) capable of executing the container control system or container control device according to each embodiment of the present invention. That is, Fig. 10 shows the configuration of a computer (information processing device) capable of realizing the container control system or container control device shown in Fig. 1 and Fig. 9, and represents a hardware environment capable of realizing each function in the above-described embodiments.
[0091] The information processing device 900 shown in FIG. 10 includes the following components. ·CPU(Central_Processing_Unit)901, ·ROM(Read_Only_Memory)902, ·RAM(Random_Access_Memory)903, Hard disk (storage device) 904, a communication interface 905; Bus 906 (communication line), A reader / writer 908 capable of reading and writing data stored in a recording medium 907 such as a CD-ROM (Compact Disc Read Only Memory), · Input / output interface 909 such as a monitor, speaker, keyboard, etc.
[0092] That is, the information processing device 900 including the above components is a general computer in which these components are connected via a bus 906. The information processing device 900 may include multiple CPUs 901, or may include a CPU 901 configured with multiple cores.
[0093] The present invention, explained using the above-mentioned embodiment as an example, supplies a computer program capable of realizing the following functions to the information processing device 900 shown in FIG. 10. The functions are the functions described above in the block diagrams (FIGS. 1 and 9) or flowcharts (FIGS. 4 to 8B) referred to in the description of the embodiment. The present invention is then achieved by reading the computer program into the CPU 901 of the hardware, interpreting it, and executing it. The computer program supplied to the device may be stored in a readable / writable volatile memory (RAM 903) or a non-volatile storage device such as a ROM 902 or a hard disk 904.
[0094] In the above case, the method of supplying the computer program to the hardware can be a currently common procedure. For example, the procedure can be installing the program in the device via a recording medium 907 such as a CD-ROM, or downloading it from an external source via a communication line such as the Internet. In such a case, the present invention can be considered to be constituted by the code constituting the computer program or the recording medium 907 on which the code is stored.
[0095] The present invention has been described above using the above-described embodiment as an exemplary example. However, the present invention is not limited to the above-described embodiment. In other words, the present invention can be applied in various aspects that are understandable to those skilled in the art within the scope of the present invention. [Explanation of symbols]
[0096] 1. Container Control System 10 Container control device 11 Monitoring Department 12 Licensing Control Unit 13 Generation part 14 Executive Department 20 Container Execution Environment 21 containers 211 Application Execution Unit 212 License Request Section 213 License Information Storage Unit 214 Status Reporting Section 22 Application Management Department 220 Application Management Table 23 Container Image Management 24 License Management Department 240 License Management Table 30 Management terminal 40 Container Control Device 41 Monitoring Department 42 Licensing control section 43 Generation part 400 unused licenses 50 containers 500 applications 51 First Container 52 Second Container 900 Information Processing Equipment 901 CPU 902 ROM 903 RAM 904 Hard disk (storage device) 905 Communication Interface 906 Bus 907 Recording Media 908 Reader / Writer 909 Input / Output Interface
Claims
1. a monitoring means for monitoring the operational status of one or more containers that execute applications; a license granting control means for recovering, as an unused license, a license required for executing the application that was granted to the first container whose operation has stopped; a generating means for generating a new second container for executing the application using the collected unused license; Equipped with the monitoring means detects an occurrence of an abnormality in a first container and execution of the application in the first container that is greater than the number of copies of the application; the generating means controls the first container to stop operation, and generates the second container until the number of the applications to be executed matches the number of copies or the number of licenses becomes insufficient. Container control device.
2. The generation means preferentially stops the operation of the first container in which an abnormality has occurred. The container control device according to claim 1 .
3. the license granting control means, when the application executed in the first container is executed by the second container by the generation means, sets the unused license to a state reserved by the second container; the generating means controls the unused license set to the reserved state so that it is used preferentially by a second container; The container control device according to claim 1 or 2.
4. the licensing control means sets an expiration date for the reserved state of the second container; The generating means controls the unused license set to the reserved state so that it is used preferentially by a second container if the expiration date has not passed. The container control device according to claim 3 .
5. the license granting control means sets the unused license to the reserved state by the second container based on information representing an environment in which the first and second containers operate; The container control device according to claim 4.
6. The information representing the environment represents one of a public cloud, a private cloud, and an on-premise environment, or represents the location of an information processing device that executes the first and second containers. The container control device according to claim 5 .
7. The container control device according to any one of claims 1 to 6, an application management unit for managing the number of copies of the application; a license management unit that manages the status of the license granted to the container by the license grant control unit; an information processing device that executes the container; Container control system including:
8. By the information processing device, monitoring the operational status of one or more containers executing an application by detecting an anomaly in a first container and an execution of the application in the first container that exceeds the number of copies of the application; recovering, as an unused license, the license required to execute the application that was granted to the first container whose operation has stopped; controlling the first container to stop operation, and generating a second container to execute the application using the reclaimed unused licenses until the number of executed applications matches the number of copies or the number of licenses becomes insufficient; Container control method.
9. A monitoring process that monitors the operating status of one or more containers that execute applications by detecting an abnormality in a first container and an execution of the application in a first container that exceeds the number of copies of the application; a license granting control process for recovering, as an unused license, the license required for executing the application that was granted to the first container whose operation has stopped; a generation process for generating a second container that controls the first container to stop operation and executes the application using the collected unused licenses until the number of executed applications matches the number of copies or the number of licenses becomes insufficient; A container control program that causes a computer to execute the above.
Citation Information
Patent Citations
Server apparatus for managing processor license
JP2008158639A
License management system, license management method and license management program
JP2012137954A
System and method for information processing
US20170308684A1
License management system and license management method
WO2015019416A1
License management system and license management method
WO2015087444A1