WO2021234885A1 - コンテナリソース設計装置、コンテナリソース設計方法およびプログラム - Google Patents
コンテナリソース設計装置、コンテナリソース設計方法およびプログラム Download PDFInfo
- Publication number
- WO2021234885A1 WO2021234885A1 PCT/JP2020/020042 JP2020020042W WO2021234885A1 WO 2021234885 A1 WO2021234885 A1 WO 2021234885A1 JP 2020020042 W JP2020020042 W JP 2020020042W WO 2021234885 A1 WO2021234885 A1 WO 2021234885A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- container
- resource
- worker
- worker nodes
- node
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Definitions
- the present invention relates to a container resource design device, a container resource design method, and a program for designing resources of a container system in virtualization technology.
- the container orchestration engine (container control mechanism) has a function to perform orchestration of a container across multiple hosts, and multiple worker nodes that provide execution hosts for the container and their respective. Configure a cluster with the master node that manages the worker nodes.
- the number of replica sets can be specified in order to maintain a declarative state in which self-repair is possible.
- the "replica set” is a function in which the container control mechanism creates replicas of a plurality of Pods. Pod is a set of one or more containers.
- the container control mechanism automatically starts the pod by another node and maintains the number of replicas.
- the condition of the worker node that can be arranged can be specified by the affinity rule as the arrangement condition required for the container (see, for example, Non-Patent Document 1).
- a pod having a replica set number of “3” by a master node 10A (the master node is referred to as “Master” in each figure) (here, 1 pod is 1 container).
- the master node is referred to as “Master” in each figure)
- 1 pod is 1 container.
- Is arranged in three worker nodes 20 (worker nodes are referred to as "Workers” in each figure), and a failure occurs in one of the three worker nodes (reference numeral in FIG. 6).
- the number of replica sets is "3" and the affinity rule is set to "Do not place replicas of the same container (Pod) in the same worker node" (same Worker node placement: not possible) (Fig.).
- the present invention has been made in view of such a point, and it is an object of the present invention to eliminate the need for manual resource design in a container system and to improve service continuity in the event of a failure.
- the container resource design device is a container resource design device that designs resources of a virtualized container system, and the container system includes a plurality of worker nodes that provide services by arranging containers.
- the container resource design device that creates and operates the worker node, and the container resource design device is the number of redundancy of the pod in a pod unit that is a set of one or more containers.
- the number of replica sets indicating the number of replica sets, the affinity rule indicating the conditions for starting the container, and the allowable number of failures indicating the number of the worker nodes to which a failure can occur in order to maintain a self-repairable state.
- the container setting reception unit that acquires the definition information including the above, the replica set number, the affinity rule, and the failure tolerance are extracted from the definition information, and even if a failure of the failure tolerance or less occurs in the worker node.
- the required number of worker nodes indicating the minimum number of the required worker nodes is calculated after satisfying the number of replica sets and the conditions specified by the affinity rule, and the calculated required worker.
- a resource calculation unit that causes the worker nodes of the required number of worker nodes to be paid out as resources by transmitting resource payout instruction information, which is instruction information of resource payout including the number of nodes, to the resource management mechanism, and payout.
- the worker node is determined to arrange the pods in the number indicated by the number of replica sets, and the worker node that is determined to arrange the pods is instructed to set the container constituting the pod. It is characterized by including a container setting unit for transmission.
- the present embodiment an embodiment for carrying out the present invention (hereinafter, referred to as "the present embodiment") will be described.
- FIG. 1 is a diagram showing an overall configuration of a container resource design system 1000 including a container resource design device (master node 10) according to the present embodiment.
- the container resource design system 1000 includes a master node 10 (Master) and a plurality of worker nodes 20 (Workers) set by a container orchestration engine (container control mechanism), and a virtualized network function VNF (Virtual Network). It is configured to include a VNFM (VNF Manager) 300 that manages a function) and a VIM (Virtualized Infrastructure Manager) 400 that manages a physical resource and a virtual resource set on the physical resource.
- the container orchestration engine is, for example, "Kubernetes" (registered trademark) described in Non-Patent Document 1, but is not limited thereto.
- the master node 10 corresponds to the container resource design device according to the claim.
- the VNFM 300 and VIM 400 constitute the resource management mechanism according to claim.
- the master node 10 manages each worker node 20 and Pod2 arranged in each worker node 20.
- the master node 10 acquires definition information (manufacture file) related to container settings (deployment) from a container system management device or the like.
- definition information manifest file
- affinity rule indicating the number of replica sets and the conditions for starting the container
- the master node 10 calculates the number of worker nodes 20 for arranging the pods that are the units for creating the container based on the acquired definition information based on a predetermined logic using the number of replica sets, the affinity rule, and the number of fault tolerances. do.
- the master node 10 sets (distributes as a resource) the calculated number of worker nodes 20 via the VNFM300 and the VIM400 (resource management mechanism).
- VNFM300 and the VIM400 resource management mechanism
- VNFM300 is a standard regulation of ETSI (European Telecommunications Standards Institute) NFV (Network Functions Virtualization) (“ETSI GS NFV-SOL 002 V2.6.1,” ETSI, 2019-04, Internet ⁇ URL: https: // www. It has a function to manage the life cycle (generation, deletion, scaling) of VNF in .etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_NFV-SOL002v020601p.pdf>).
- ETSI European Telecommunications Standards Institute
- NFV Network Functions Virtualization
- the VIM 400 has a function of performing operation management of physical resources and virtual resources in the standard regulation of ETSI VNF, and pays out a worker node 20 composed of a VM (Virtual Machine).
- the master node 10 (container resource management device) pays out the worker node 20 using virtual resources via the VNFM 300 and the VIM 400.
- the master node 10 performs a process of managing each worker node 20 and Pod2 arranged in each worker node 20, which is a conventional function. Further, as a process peculiar to the present embodiment, the master node 10 uses Pod2, which is a unit for creating a container, by a predetermined logic based on the number of replica sets, the affinity rule indicating the conditions for starting the container, and the allowable number of failures. Calculate the number of worker nodes 20 to be arranged.
- the master node 10 is characterized in that the worker node 20 is paid out and the container arrangement is controlled.
- the master node 10 and the worker node 20 constituting the cluster set by the container orchestration engine may be a physical device or a VM, but will be described as being a VM unless otherwise specified below. ..
- the node (physical device) is transmitted by transmitting the request information about the setting (payout) of the worker node 20 to the management device of the container system or the like. Pay out (set).
- the master node 10 includes a control unit, an input / output unit, and a storage unit (all not shown).
- the input / output unit inputs / outputs information to / from each worker node 20, VNFM300, other external devices, and the like.
- This input / output unit includes a communication interface for transmitting / receiving information via a communication line.
- the storage unit stores information about the cluster, such as worker nodes 20, pods, and configuration information between the nodes.
- control unit includes a container setting reception unit 11, a resource calculation unit 12, and a container setting unit 13.
- the container setting reception unit 11 acquires definition information (manifest file) related to the container from the management device of the container system or the like.
- the definition information acquired by the container setting receiving unit 11 is characterized in that it includes a failure tolerance number in addition to the conventionally described affinity rule indicating the number of replica sets and the conditions for starting the container.
- the container setting reception unit 11 may receive definition information regarding a plurality of replica sets set at the same time.
- This fault tolerance sets the number of M (preliminary system) worker nodes 20 with respect to the number of N (active system) worker nodes 20 corresponding to the number of replica sets in the N + M redundant configuration.
- the failure tolerance is the number of worker nodes 20 that are allowed to maintain a declarative state (self-healing state) after satisfying the replica set number and affinity rules, that is, the worker node 20 has failed.
- the number of worker nodes 20 to be paid out in advance is shown in order to maintain the declarative state even if the above occurs.
- the "failure" assumed by the allowable number of failures corresponds not only to the failure that occurs in the worker node 20, but also to the failure when the traffic amount of each worker node 20, the CPU usage rate, etc. exceeds a predetermined threshold value.
- the master node 10 pays out the (preliminary system) worker node 20 in advance in consideration of the allowable number of failures. Then, the master node 10 arranges a pod on the (preliminary) worker node 20 that has been paid out in advance so that the traffic amount, CPU usage rate, etc. of the worker node 20 do not exceed a predetermined threshold value, thereby performing an affinity rule. To meet.
- the resource calculation unit 12 extracts information on the number of replica sets, the affinity rule indicating the conditions for starting the container, and the allowable number of failures from the acquired definition information (manifest file). Then, the resource calculation unit 12 uses the number of replica sets, the affinity rule, and the fault tolerance to maintain the minimum number of worker nodes 20 (VM resources) required to maintain the declarative state (hereinafter, “necessary worker”). The required number of worker nodes is calculated based on the logic (predetermined logic) of calculating (referred to as "the number of nodes").
- the resource calculation unit 12 when the resource calculation unit 12 receives the definition information (manufacture file) of a plurality of replica sets (each different node) requesting the start of the container at the same time, the resource calculation unit 12 satisfies all of the plurality of definition information. In addition, the minimum number of worker nodes 20 (required number of worker nodes) required as a whole to maintain the declarative state is calculated. By doing so, when the definition information of a plurality of replica sets requesting the start of the container is received, the master node 10 is the minimum necessary worker node as a whole to maintain the declarative state. The number can be calculated. Therefore, it is possible to eliminate the need for manual resource design. In addition, resources can be operated more efficiently.
- the resource calculation unit 12 determines the label type and calculates the “required number of label nodes”. If the label type is, for example, "GPU (Graphics Processing Unit)", the resource calculation unit 12 calculates "the number of required GPU label nodes". As the label type, in addition to "GPU", for example, a storage or a network device may be specified as a label so that it can be identified. By doing so, the master node 10 can specify the resource type in consideration of the label type and calculate the resource of the required number of label nodes (for example, "the number of required GPU label nodes"). Therefore, even when the definition information in which the labeled affinity rule is described is acquired, it is possible to eliminate the need for manual resource design.
- the label type is, for example, "GPU (Graphics Processing Unit)
- the resource calculation unit 12 calculates "the number of required GPU label nodes”.
- the resource calculation unit 12 dispenses the worker nodes 20 having the required number of label nodes as resources (hereinafter referred to as “resource payout instruction information”). As a), it is transmitted to the VNFM300. As a result, the VIM 400 acquires the instruction information from the VNFM 300, and the worker node 20 composed of the VM is paid out. The worker node 20 paid out by the VIM 400 is registered in the master node 10.
- the container setting unit 13 determines the arrangement of the number of pods indicated by the number of replica sets on the paid out worker node 20, and instructs the worker node 20 which has determined the arrangement of the pod 2 to set the pod 2 (container setting). Information) is sent.
- the worker node 20 receives this container setting information and creates a pod. Further, the container setting unit 13 monitors the worker node 20, and when a failure occurs in the worker node 20, the container setting unit 13 includes the worker node 20 which has been dispensed as a resource in advance so as to maintain the number of replica sets. Then, the placement destination of the new node 2 is determined. Then, the container setting unit 13 transmits the container setting information to the worker node 20 determined as the placement destination of the new pod 2. By doing so, the master node 10 can maintain a self-healing declarative state in the worker node 20.
- FIG. 2 shows a container resource design process when the master node 10 acquires one definition information (manifest file) regarding the container settings.
- FIG. 3 shows a container resource design process when the master node 10 acquires a plurality of (three) definition information (manifest files) related to the container settings.
- FIG. 2 is a diagram showing a first embodiment of the container resource design process of the container resource design system 1000 including the container resource design device (master node 10) according to the present embodiment.
- the master node 10 acquires definition information (manifest file) related to container settings (of one replica set) from the management device of the container system or the like.
- definition information manifest file
- the number of replica sets is "3"
- affinity rule indicating the conditions for starting the container, "replicas of the same container (Pod) are not placed in the same worker node” (same Worker node placement: not possible). )
- the allowable number of failures "1" is described (reference numeral ⁇ 1 in FIG. 2).
- the resource calculation unit 12 of the master node 10 extracts information on the number of replica sets, affinity rules, and the number of fault tolerances from the acquired definition information (manifest file). Then, the resource calculation unit 12 calculates the minimum number of worker nodes 20 (VM resources) (number of required worker nodes) required to maintain the declarative state.
- VM resources number of required worker nodes
- the resource calculation unit 12 cannot arrange replicas of the same container (Pod) on the same worker node 20 due to the affinity rule, and since the failure tolerance is “1”, the number of replica sets is “3”.
- the worker node 20 is added by "1", and "4" is calculated as the required number of worker nodes.
- the resource calculation unit 12 of the master node 10 transmits the resource payout instruction information with the information of the required number of worker nodes “4” to the VNFM 300 (reference numeral ⁇ 2 in FIG. 2). Then, the VNFM 300 transmits the resource payout instruction information to the VIM400, so that the four worker nodes 20 (Worker “1", “2", “3”, "4") are paid out.
- the container setting unit 13 of the master node 10 determines the arrangement of the pod 2 of the number "3" indicated by the number of replica sets from the paid out worker nodes 20 (here, the worker "1””” 2 ”“ 3 ”), the container setting information instructing the setting of Pod2 is transmitted to the worker node 20 that has determined the arrangement of Pod2.
- the worker node 20 (Worker "1""2""3") that has received the container setting information sets Pod2.
- the worker node "4" is paid out as a resource in advance, but Pod2 is not set.
- the master node 10 (container setting unit 13) transmits the container setting information to the worker node "4" that has been paid out in advance.
- the worker node "4" sets Pod2 (2n) (reference numeral e in FIG. 2).
- the resources have been paid out in consideration of the affinity rule, it is possible to deal with the failure without interrupting the service. That is, service continuity can be improved.
- FIG. 3 is a diagram showing a second embodiment of the container resource design process of the container resource design system 1000 including the container resource design device (master node 10) according to the present embodiment.
- the master node 10 acquires definition information (manifest file) of a plurality of (three replica sets) related to the container setting from the management device of the container system or the like.
- definition information manifest file
- replica set In the definition information of A replica set, the number of replica sets is "4", and as an affinity rule indicating the conditions for starting the container, "Do not place replicas of the same container (Pod) on the same worker node” (same Worker node). Arrangement: Impossible), and it is assumed that the allowable number of failures "2" is described (reference numeral ⁇ 1-A in FIG. 2).
- the number of replica sets is "3", and as an affinity rule indicating the conditions for starting the container, "Do not place replicas of the same container (Pod) on the same worker node” (same Worker node). Arrangement: Impossible), and it is assumed that the allowable number of failures "1" is described (reference numeral ⁇ 1-B in FIG. 2).
- the definition information of the C replica set includes the number of replica sets "1", the label "GPU” as an affinity rule indicating the condition for starting the container, and the allowable number of failures "1" (FIG. 2).
- Reference numeral ⁇ 1-C Reference numeral ⁇ 1-C).
- the resource calculation unit 12 of the master node 10 extracts information on the number of replica sets, affinity rules, and the number of fault tolerances from the three acquired definition information (manifest file). Then, the resource calculation unit 12 calculates the minimum number of worker nodes 20 (VM resources) (number of required worker nodes) required to maintain the declarative state. Further, since the resource calculation unit 12 has "GPU" set as the label type in the C replica set, the minimum number of nodes required to set the worker node 20 in the GPU as a resource (the number of required GPU label nodes). ) Is calculated.
- the resource calculation unit 12 first compares the definition information of the A replica set and the B replica set. Due to the affinity rule of the A replica set, replicas of the same container (Pod) cannot be placed on the same worker node 20, and since the number of failures is "2", the worker node 20 is set to "4" for the number of replica sets. 2 ”is added, and“ 6 ”is calculated as the required number of worker nodes in the A replica set. On the other hand, due to the affinity rule of the B replica set, replicas of the same container (Pod) cannot be placed on the same worker node 20, and since the failure tolerance is "1", the worker node 20 is set on the replica set number "3". Is added by "1", and "4" is calculated as the required number of worker nodes in the B replica set. Therefore, the minimum required number of nodes (required number of worker nodes) is "6" between the A replica set and the B replica set.
- the number of worker nodes to be arranged on the GPU (the number of required GPU label nodes) is "2" because the allowable number of failures is "1" in the arrangement of the worker nodes on the GPU. Become.
- the resource calculation unit 12 sets the required number of worker nodes "4" and the required GPU label as the minimum required number of nodes as a whole when three replica sets A, B, and C are set at the same time. Calculate the number of nodes "2".
- the required number of worker nodes between the A replica set and the B replica set was "6", but among them, the worker node 20 using the GPU as a resource was assigned to the required number of GPU label nodes "2".
- the setting is duplicated in the node 20. Therefore, the total number of worker nodes 20 to be paid out as resources remains "6".
- the resource calculation unit 12 of the master node 10 transmits the resource payout instruction information with the information of the required number of worker nodes “4” and the required GPU label node “2” to the VNFM 300 (reference numeral ⁇ 2 in FIG. 3). Then, the VNFM 300 transmits the resource payout instruction information to the VIM 400, so that the four worker nodes 20 (Worker “1" “2” “3” "4") and the two worker nodes 20 that provide the GPU as resources are provided. (Worker "5" "6") is paid out.
- the container setting unit 13 of the master node 10 determines the arrangement of Pod2 from the paid out worker nodes 20 according to the number indicated by the number of replica sets in the definition information of each replica set, and determines the arrangement of Pod2.
- the container setting information instructing the setting of the Pod 2 is transmitted to the worker node 20 that has decided the arrangement. Then, each worker node 20 that has received the container setting information sets Pod2.
- the four pods of the A replica set are set to the worker nodes "1", “2", “4", and "5".
- the three pods of the B replica set are set to the worker nodes "1", “3”, and "4".
- one Pod of the C replica set is set to the worker node "5" that provides the GPU as a resource.
- the worker node "6" is paid out as a resource in advance, but the pod is not set.
- the master node 10 (container setting unit 13) arranges the Pod of the A replica set on, for example, the worker nodes “3” and “6”, and transmits the container setting information.
- the Pod of the B replica set is placed on the worker node "2", for example, and the container setting information is transmitted.
- the Pod of the C replica set is arranged on the worker node "6", and the container setting information is transmitted.
- the worker node "2" sets the Pod of the B replica set (reference numeral h in FIG. 3).
- the worker node “3” sets the Pod of the A replica set (reference numeral i in FIG. 3).
- the worker node “6” sets the Pod of the A replica set and the Pod of the C replica set (reference numerals j and k in FIG. 3).
- the setting of the worker node 20 can be suppressed to the minimum required number of nodes, and resources can be operated efficiently.
- FIG. 4 is a flowchart showing a flow of processing executed by the container resource design device (master node 10) according to the present embodiment.
- the container setting reception unit 11 of the master node 10 acquires definition information (manifest file) related to the container from the management device of the container system or the like (step S1).
- This definition information includes the number of replica sets, the affinity rule indicating the conditions for starting the container, and the number of fault tolerances. Further, the container setting receiving unit 11 may receive definition information about a plurality of replica sets.
- the resource calculation unit 12 of the master node 10 extracts information on the number of replica sets, the affinity rule indicating the conditions for starting the container, and the number of fault tolerances from the acquired definition information (manifest file) (Ste S2).
- the resource calculation unit 12 calculates the minimum number of worker nodes 20 (required number of worker nodes) required to maintain the declarative state based on the number of replica sets, the affinity rule, and the number of fault tolerances (the number of required worker nodes). Step S3). At this time, when the resource calculation unit 12 receives the definition information for a plurality of replica sets, the resource calculation unit 12 satisfies the conditions of the number of replica sets, the affinity rule, and the fault tolerance shown in each definition information, and is a worker node. Calculate the required number of worker nodes so that the number is the lowest overall.
- the affinity rule includes information on a label that identifies the resource type, consider the label type and satisfy the number of resources of the type indicated by the label, and the required number of label nodes (for example). , If the label is "GPU", “the number of required GPU label nodes") is included in the calculation.
- the resource calculation unit 12 provides resource payout instruction information including the required number of worker nodes and, if the required number of label nodes (required GPU label nodes) is calculated, the worker nodes 20 having the required number of label nodes. , VNFM 300 (step S4).
- the VIM 400 acquires the instruction information from the VNFM 300, and the worker node 20 is paid out.
- the worker node 20 paid out by the VIM 400 is registered in the master node 10.
- the container setting unit 13 of the master node 10 determines the arrangement of the number of Pod2 indicated by the number of replica sets on the paid-out worker node 20, and sets the Pod2 on the worker node 20 that has determined the arrangement of the Pod2.
- the container setting information to be instructed is transmitted (step S5).
- the worker node 20 receives this container setting information and creates a pod.
- the master node 10 (container resource design device) can maintain the declarative state after satisfying the conditions of the number of replica sets and the affinity rule. Therefore, it is possible to eliminate the need for manual resource design and improve service continuity in the event of a failure.
- the container resource design device (master node 10) is realized by, for example, a computer 900 which is a physical device having a configuration as shown in FIG.
- FIG. 5 is a hardware configuration diagram showing an example of a computer 900 that realizes the function of the container resource design device (master node 10) according to the present embodiment.
- the computer 900 has a CPU 901, a ROM (Read Only Memory) 902, a RAM 903, an HDD (Hard Disk Drive) 904, an input / output I / F (Interface) 905, a communication I / F 906, and a media I / F 907.
- the CPU 901 operates based on the program stored in the ROM 902 or the HDD 904, and is operated by the control unit (container setting reception unit 11, resource calculation unit 12, container setting unit 13) of the container resource design device (master node 10) shown in FIG. Take control.
- the ROM 902 stores a boot program executed by the CPU 901 when the computer 900 is started, a program related to the hardware of the computer 900, and the like.
- the CPU 901 controls an input device 910 such as a mouse and a keyboard and an output device 911 such as a display via the input / output I / F 905.
- the CPU 901 acquires data from the input device 910 and outputs the generated data to the output device 911 via the input / output I / F 905.
- a GPU or the like may be used together with the CPU 901 as the processor.
- the HDD 904 stores a program executed by the CPU 901, data used by the program, and the like.
- the communication I / F906 receives data from another device via a communication network (for example, NW (Network) 920) and outputs the data to the CPU 901, and the communication I / F 906 transfers the data generated by the CPU 901 to another device via the communication network. Send to the device.
- NW Network
- the media I / F907 reads the program or data stored in the recording medium 912 and outputs the program or data to the CPU 901 via the RAM 903.
- the CPU 901 loads the program related to the target processing from the recording medium 912 onto the RAM 903 via the media I / F 907, and executes the loaded program.
- the recording medium 912 is an optical recording medium such as a DVD (Digital Versatile Disc) or PD (Phase change rewritable Disk), a magneto-optical recording medium such as MO (Magneto Optical disk), a magnetic recording medium, a conductor memory tape medium, a semiconductor memory, or the like. Is.
- the CPU 901 of the computer 900 executes the program loaded on the RAM 903 to execute the container resource design device (master node 10). ) Functions. Further, the data in the RAM 903 is stored in the HDD 904. The CPU 901 reads the program related to the target processing from the recording medium 912 and executes it. In addition, the CPU 901 may read a program related to the target processing from another device via the communication network (NW920).
- NW920 communication network
- the container resource design device is a container resource design device (master node 10) that designs resources of a virtualized container system, and the container system provides a plurality of services by arranging containers. Worker node 20 and a container resource design device (master node 10) that creates and operates the worker node 20.
- the container resource design device (master node 10) is a set of one or more containers. The number of replica sets indicating the number of redundancy of the node 2 per node, the affinity rule indicating the conditions for starting the container, and the occurrence of a failure are allowed to maintain the self-repairable state.
- the container setting reception unit 11 that acquires definition information including the failure tolerance indicating the number of worker nodes 20 and the number of replica sets, affinity rules, and failure tolerance are extracted from the definition information, and failures that are less than or equal to the failure tolerance are found. Even if it occurs in the worker node 20, the required number of worker nodes indicating the minimum required number of worker nodes is calculated and the required number of worker nodes is calculated after satisfying the number of replica sets and the conditions specified by the affinity rule.
- Resource calculation unit that causes the worker node 20 of the required number of worker nodes to be paid out as a resource by transmitting the resource withdrawal instruction information, which is the instruction information of resource withdrawal including the calculated required number of worker nodes, to the resource management mechanism.
- a container setting that determines the placement of the number of Pod2s indicated by the number of replica sets on the worker node 20 that has been paid out, and instructs the worker node 20 that has decided the placement of the Pod2 to set the containers that make up the Pod2. It is characterized by including a container setting unit 13 for transmitting information.
- the container resource design device (master node 10) according to the present invention can maintain the declarative state after satisfying the conditions of the number of replica sets and the affinity rule.
- a redundant design that takes into account the allowable number of failures can be automatically performed. Therefore, it is possible to eliminate the need for manual resource design and improve service continuity in the event of a failure.
- the container setting receiving unit 11 acquires a plurality of definition information regarding different pods 2, and the resource calculation unit 12 indicates each pod 2 as a plurality of definition information.
- the resource calculation unit 12 determines the type of the resource indicated by the label.
- the required number of label nodes indicating the minimum number of required worker nodes 20 in the determined resource is calculated, included in the resource payout instruction information, and transmitted to the resource management mechanism.
- the VNFM 300 is provided with all or a part of each function (container setting reception unit 11, resource calculation unit 12, container setting unit 13) which is a characteristic configuration of the container resource design device (master node 10) according to the present embodiment. You may let it. Even in this case, the master node 10 and the VNFM 300 can cooperate with each other to realize the processing of the present embodiment.
- Container resource design system (master node) 11 Container setting reception unit 12 Resource calculation unit 13 Container setting unit 20 Worker node 300 VNFM (Resource management mechanism) 400 VIM (Resource Management Organization) 1000 Container resource design system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
コンテナリソース設計装置であるマスターノード(10)は、Pod(2)の冗長化の数を示すレプリカセット数、コンテナを起動させるための条件を示すアフィニティルールおよび障害許容数を含む定義情報を取得するコンテナ設定受付部(11)と、障害許容数以下の障害がワーカーノード(20)に発生した場合でも、レプリカセット数を満たし、かつ、アフィニティルールで規定される条件を満たした上で、必要ワーカーノード数を算出し、リソース払出指示情報をリソース管理機構に送信するリソース算出部(12)と、払い出されたワーカーノード(20)にPod(2)の配置を決定し、コンテナ設定情報を送信するコンテナ設定部(13)と備える。
Description
本発明は、仮想化技術におけるコンテナシステムのリソース設計を行う、コンテナリソース設計装置、コンテナリソース設計方法およびプログラムに関する。
仮想化技術を適用したコンテナシステムにおいて、コンテナオーケストレーションエンジン(コンテナ制御機構)は、複数のホストにわたるコンテナのオーケストレーションを実行する機能を備え、コンテナの実行ホストを提供する複数のワーカーノードと、そのワーカーノードを管理するマスターノードとでクラスタを構成する。このコンテナ制御機構では、自己修復が可能となる宣言的な状態を維持するため、レプリカセット数を規定できる。ここで「レプリカセット」とは、コンテナ制御機構が複数のPodのレプリカを作成する機能である。Podは、1または複数のコンテナの集合である。例えば、ノード障害などでPodが減少した場合には、コンテナ制御機構が別のノードにより自動的にPodを起動し、レプリカ数を維持する。また、コンテナ制御機構では、コンテナに必要な配置条件としてアフィニティルールにより、配置できるワーカーノードの条件を指定できる(例えば、非特許文献1参照)。
西島 直、「KubernetesのマニュフェストをMagnumで実行する」、[online]、impress、2016年2月12日、[令和2年5月12日検索],インターネット<URL:https://thinkit.co.jp/article/9378>
しかしながら、レプリカセット数と配置するワーカーノードについてのアフィニティルールとの関連については、従来、リソース設計時に、システム管理者(設計者)が人手により考慮した上で、ワーカーノードとなるリソースを予め準備もしくは設定しておかなければならなかった。
例えば、図6に示すように、マスターノード10A(各図においてマスターノードを「Master」と記載する。)により、レプリカセット数「3」としたPod(ここでは、1Podが1コンテナとする。)がワーカーノード20(各図においてワーカーノードを「Worker」と記載する。)3台に配置されているときにおいて、このワーカーノード3台のうちの1台に障害が発生した場合(図6の符号a)を想定する。このとき、レプリカセット数「3」とともに、アフィニティルールとして、「同一ワーカーノードには、同一コンテナ(Pod)のレプリカを配置しない」(同一Workerノード配置:不可)という設定がされているとき(図6の符号b)には、障害が発生したワーカーノード「3」以外のワーカーノード「1」「2」には、アフィニティルールにより、同一コンテナ(Pod)を配置することができない(図6の符号c)。よって、レプリカセット数「3」を保てないため、宣言的な状態を維持できないものとなる。
このように、コンテナのレプリカセット数と、コンテナを起動させるための条件を示すアフィニティルールとが競合した場合に、コンテナを起動できずサービス停止に至るケースがある。
このように、コンテナのレプリカセット数と、コンテナを起動させるための条件を示すアフィニティルールとが競合した場合に、コンテナを起動できずサービス停止に至るケースがある。
このような点に鑑みて本発明がなされたのであり、本発明は、コンテナシステムにおいて、人手によるリソース設計を不要とし、障害発生時のサービス継続性を向上させることを課題とする。
本発明に係るコンテナリソース設計装置は、仮想化されたコンテナシステムのリソース設計を行うコンテナリソース設計装置であって、前記コンテナシステムは、コンテナが配置されることによりサービスを提供する複数のワーカーノードと、当該ワーカーノードの生成および運用を行う前記コンテナリソース設計装置とにより構成されており、前記コンテナリソース設計装置が、1つ以上の前記コンテナの集合であるPod単位での当該Podの冗長化の数を示すレプリカセット数、前記コンテナを起動させるための条件を示すアフィニティルール、および、自己修復が可能な状態を維持するために障害の発生が許容される前記ワーカーノードの数を示す障害許容数、を含む定義情報を取得するコンテナ設定受付部と、前記レプリカセット数、前記アフィニティルールおよび前記障害許容数を前記定義情報から抽出し、前記障害許容数以下の障害が前記ワーカーノードに発生した場合でも、前記レプリカセット数を満たし、かつ、前記アフィニティルールで規定される条件を満たした上で、最低限必要な前記ワーカーノードの数を示す必要ワーカーノード数を算出するとともに、算出された前記必要ワーカーノード数を含む、リソースの払い出しの指示情報であるリソース払出指示情報を、リソース管理機構に送信することにより、前記必要ワーカーノード数の前記ワーカーノードをリソースとして払い出させるリソース算出部と、払い出された前記ワーカーノードに、前記レプリカセット数で示される数の前記Podの配置を決定し、前記Podの配置を決定したワーカーノードに、前記Podを構成するコンテナの設定を指示するコンテナ設定情報を送信するコンテナ設定部と、を備えることを特徴とする。
本発明によれば、コンテナシステムにおいて、人手によるリソース設計を不要とし、障害発生時のサービス継続性を向上させることができる。
次に、本発明を実施するための形態(以下、「本実施形態」と称する。)について説明する。
図1は、本実施形態に係るコンテナリソース設計装置(マスターノード10)を含むコンテナリソース設計システム1000の全体構成を示す図である。
コンテナリソース設計システム1000は、コンテナオーケストレーションエンジン(コンテナ制御機構)により設定される、マスターノード10(Master)および複数のワーカーノード20(Worker)と、仮想化されたネットワーク機能であるVNF(Virtual Network Function)を管理するVNFM(VNF Manager)300と、物理リソースおよび物理リソース上に設定される仮想リソースを管理するVIM(Virtualized Infrastructure Manager)400とを含んで構成される。
なお、コンテナオーケストレーションエンジンは、例えば、非特許文献1に記載の「Kubernetes」(登録商標)であるが、これに限定されない。また、マスターノード10は、請求項に記載のコンテナリソース設計装置に相当する。VNFM300およびVIM400とで、請求項に記載のリソース管理機構を構成する。
コンテナリソース設計システム1000は、コンテナオーケストレーションエンジン(コンテナ制御機構)により設定される、マスターノード10(Master)および複数のワーカーノード20(Worker)と、仮想化されたネットワーク機能であるVNF(Virtual Network Function)を管理するVNFM(VNF Manager)300と、物理リソースおよび物理リソース上に設定される仮想リソースを管理するVIM(Virtualized Infrastructure Manager)400とを含んで構成される。
なお、コンテナオーケストレーションエンジンは、例えば、非特許文献1に記載の「Kubernetes」(登録商標)であるが、これに限定されない。また、マスターノード10は、請求項に記載のコンテナリソース設計装置に相当する。VNFM300およびVIM400とで、請求項に記載のリソース管理機構を構成する。
ここで、マスターノード10は、各ワーカーノード20および各ワーカーノード20に配置されるPod2を管理する。
本実施形態に係るマスターノード10(コンテナリソース設計装置)は、コンテナシステムの管理装置等から、コンテナの設定(デプロイ)に関する定義情報(マニュフェストファイル)を取得する。この定義情報(マニュフェストファイル)には、レプリカセット数およびコンテナを起動させるための条件を示すアフィニティルールに加えて、本実施形態において特有な情報である「障害許容数」(詳細は後記)が記載される。そして、マスターノード10は、取得した定義情報に基づき、コンテナ作成の単位となるPodを配置するワーカーノード20の数を、レプリカセット数、アフィニティルールおよび障害許容数を用いた所定のロジックに基づき算出する。マスターノード10は、算出した数のワーカーノード20を、VNFM300およびVIM400(リソース管理機構)を介して設定する(リソースとして払い出す)。続いて、マスターノード10により、Podがワーカーノード20に割り当てられると、ワーカーノード20においてコンテナが設定される。そして、コンテナにより実際にサービス提供のタスク処理がなされる。
本実施形態に係るマスターノード10(コンテナリソース設計装置)は、コンテナシステムの管理装置等から、コンテナの設定(デプロイ)に関する定義情報(マニュフェストファイル)を取得する。この定義情報(マニュフェストファイル)には、レプリカセット数およびコンテナを起動させるための条件を示すアフィニティルールに加えて、本実施形態において特有な情報である「障害許容数」(詳細は後記)が記載される。そして、マスターノード10は、取得した定義情報に基づき、コンテナ作成の単位となるPodを配置するワーカーノード20の数を、レプリカセット数、アフィニティルールおよび障害許容数を用いた所定のロジックに基づき算出する。マスターノード10は、算出した数のワーカーノード20を、VNFM300およびVIM400(リソース管理機構)を介して設定する(リソースとして払い出す)。続いて、マスターノード10により、Podがワーカーノード20に割り当てられると、ワーカーノード20においてコンテナが設定される。そして、コンテナにより実際にサービス提供のタスク処理がなされる。
ここで、VNFM300は、ETSI(European Telecommunications Standards Institute) NFV(Network Functions Virtualization)の標準規定(“ETSI GS NFV-SOL 002 V2.6.1,”ETSI,2019-04,インターネット<URL:https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.06.01_60/gs_NFV-SOL002v020601p.pdf>)における、VNFのライフサイクル(生成、削除、スケーリング)管理を行う機能を備える。
また、VIM400は、ETSI VNFの標準規定における、物理リソースおよび仮想リソースの運用管理を行う機能を備え、VM(Virtual Machine)で構成されるワーカーノード20の払い出しを行う。
マスターノード10(コンテナリソース管理装置)は、VNFM300およびVIM400を介して、仮想リソースを用いたワーカーノード20の払い出しを行う。
また、VIM400は、ETSI VNFの標準規定における、物理リソースおよび仮想リソースの運用管理を行う機能を備え、VM(Virtual Machine)で構成されるワーカーノード20の払い出しを行う。
マスターノード10(コンテナリソース管理装置)は、VNFM300およびVIM400を介して、仮想リソースを用いたワーカーノード20の払い出しを行う。
<マスターノード(コンテナリソース管理装置)>
以下、本実施形態に係るマスターノード10(コンテナリソース管理装置)について、図1を参照して詳細に説明する。
マスターノード10は、従来の機能である、各ワーカーノード20および各ワーカーノード20に配置されるPod2を管理する処理を行う。さらに、マスターノード10は、本実施形態における特有な処理として、レプリカセット数、コンテナを起動させるための条件を示すアフィニティルールおよび障害許容数に基づく所定のロジックにより、コンテナ作成の単位となるPod2を配置するワーカーノード20の数を算出する。そして、マスターノード10は、ワーカーノード20の払い出しおよびコンテナ配置の制御を行うことを特徴とする。
以下、本実施形態に係るマスターノード10(コンテナリソース管理装置)について、図1を参照して詳細に説明する。
マスターノード10は、従来の機能である、各ワーカーノード20および各ワーカーノード20に配置されるPod2を管理する処理を行う。さらに、マスターノード10は、本実施形態における特有な処理として、レプリカセット数、コンテナを起動させるための条件を示すアフィニティルールおよび障害許容数に基づく所定のロジックにより、コンテナ作成の単位となるPod2を配置するワーカーノード20の数を算出する。そして、マスターノード10は、ワーカーノード20の払い出しおよびコンテナ配置の制御を行うことを特徴とする。
なお、コンテナオーケストレーションエンジン(コンテナ制御機構)により設定されるクラスタを構成する、マスターノード10およびワーカーノード20は、物理装置でもVMでもよいが、以下特に記載しない限りにおいてVMであるものとして説明する。また、マスターノード10およびワーカーノード20が物理装置である場合には、そのワーカーノード20の設定(払い出し)についての要求情報を、コンテナシステムの管理装置等に送信することにより、ノード(物理装置)の払い出し(設定)を行う。
このマスターノード10は、制御部、入出力部、記憶部(いずれも図示省略)を備える。
このマスターノード10は、制御部、入出力部、記憶部(いずれも図示省略)を備える。
入出力部は、各ワーカーノード20や、VNFM300、その他の外部装置等との間の情報について入出力を行う。この入出力部は、通信回線を介して情報の送受信を行う通信インタフェースを備える。
記憶部は、クラスタに関する情報である、各ワーカーノード20、Pod、ノード間の構成情報などを記憶する。
記憶部は、クラスタに関する情報である、各ワーカーノード20、Pod、ノード間の構成情報などを記憶する。
制御部は、図1に示すように、コンテナ設定受付部11と、リソース算出部12と、コンテナ設定部13とを含んで構成される。
コンテナ設定受付部11は、コンテナシステムの管理装置等から、コンテナに関する定義情報(マニュフェストファイル)を取得する。
このコンテナ設定受付部11が取得する定義情報には、従来より記載される、レプリカセット数およびコンテナを起動させるための条件を示すアフィニティルールに加えて、障害許容数を含むことを特徴とする。
なお、後記するように、コンテナ設定受付部11は、同時期に設定する複数のレプリカセットに関する定義情報を受信してもよい。
このコンテナ設定受付部11が取得する定義情報には、従来より記載される、レプリカセット数およびコンテナを起動させるための条件を示すアフィニティルールに加えて、障害許容数を含むことを特徴とする。
なお、後記するように、コンテナ設定受付部11は、同時期に設定する複数のレプリカセットに関する定義情報を受信してもよい。
この障害許容数は、N+M冗長構成において、レプリカセット数に対応するN(現用系)のワーカーノード20の数に対して、M(予備系)のワーカーノード20の数を設定するものである。障害許容数は、レプリカセット数およびアフィニティルールを満たした上で、宣言的な状態(自己修復が可能な状態)を維持するのに許容されるワーカーノード20の数、つまり、ワーカーノード20に障害が発生しても宣言的な状態を維持するために、予め払い出しておくワーカーノード20の数を示している。
この障害許容数で想定される「障害」は、ワーカーノード20において発生する故障だけでなく、各ワーカーノード20のトラヒック量やCPU使用率等において、所定の閾値を超えた場合も障害に該当するものとする。マスターノード10は、障害許容数を考慮して、予め(予備系の)ワーカーノード20を払い出しておく。そしてマスターノード10は、ワーカーノード20のトラヒック量やCPU使用率等が所定の閾値を超えないように、予め払い出しておいた(予備系の)ワーカーノード20にPodを配置することにより、アフィニティルールを満たすようにする。
この障害許容数で想定される「障害」は、ワーカーノード20において発生する故障だけでなく、各ワーカーノード20のトラヒック量やCPU使用率等において、所定の閾値を超えた場合も障害に該当するものとする。マスターノード10は、障害許容数を考慮して、予め(予備系の)ワーカーノード20を払い出しておく。そしてマスターノード10は、ワーカーノード20のトラヒック量やCPU使用率等が所定の閾値を超えないように、予め払い出しておいた(予備系の)ワーカーノード20にPodを配置することにより、アフィニティルールを満たすようにする。
リソース算出部12は、取得した定義情報(マニュフェストファイル)から、レプリカセット数、コンテナを起動するための条件を示すアフィニティルール、および、障害許容数の情報を抽出する。そして、リソース算出部12は、レプリカセット数、アフィニティルールおよび障害許容数を用いて、宣言的な状態を維持するために最低限必要なワーカーノード20(VMリソース)の数(以下、「必要ワーカーノード数」と称する。)を算出するというロジック(所定のロジック)に基づき、必要ワーカーノード数を算出する。
また、リソース算出部12は、コンテナの起動を要求する複数のレプリカセット(各々異なる複数のPod)の定義情報(マニュフェストファイル)を同時期に受け取った場合には、複数の定義情報のすべてを満たし、かつ、宣言的な状態を維持するのに、全体として最低限必要なワーカーノード20の数(必要ワーカーノード数)を算出する。
このようにすることで、コンテナの起動を要求する複数のレプリカセットの定義情報を受け付けた場合に、マスターノード10が、宣言的な状態を維持するのに、全体として最低限必要な必要ワーカーノード数を算出することができる。よって、人手によるリソース設計を不要とすることができる。また、より効率的にリソースを運用することができる。
このようにすることで、コンテナの起動を要求する複数のレプリカセットの定義情報を受け付けた場合に、マスターノード10が、宣言的な状態を維持するのに、全体として最低限必要な必要ワーカーノード数を算出することができる。よって、人手によるリソース設計を不要とすることができる。また、より効率的にリソースを運用することができる。
さらに、リソース算出部12は、リソースの種別を識別するラベルを付したアフィニティルールが記載された定義情報を取得した場合には、ラベル種別を判別し、「必要ラベルノード数」を算出する。リソース算出部12は、ラベル種別が例えば「GPU(Graphics Processing Unit)」であれば、「必要GPUラベルノード数」を算出する。ラベル種別は、「GPU」の他、例えば、ストレージや、ネットワーク機器をラベルとして指定し、判別できるようにしてもよい。
このようにすることで、マスターノード10は、ラベル種別を考慮して、リソースの種別を指定し、必要ラベルノード数(例えば、「必要GPUラベルノード数」)のリソースを算出することができる。よって、ラベルを付したアフィニティルールが記載された定義情報を取得した場合においても、人手によるリソース設計を不要とすることができる。
このようにすることで、マスターノード10は、ラベル種別を考慮して、リソースの種別を指定し、必要ラベルノード数(例えば、「必要GPUラベルノード数」)のリソースを算出することができる。よって、ラベルを付したアフィニティルールが記載された定義情報を取得した場合においても、人手によるリソース設計を不要とすることができる。
リソース算出部12は、必要ワーカーノード数、また必要ラベルノード数が算出されていれば、その必要ラベルノード数のワーカーノード20を、リソースとして払い出す指示情報(以下、「リソース払出指示情報」と称する。)として、VNFM300に送信する。これにより、VIM400がその指示情報をVNFM300から取得し、VMで構成されるワーカーノード20の払い出しが行われる。なお、VIM400が払い出したワーカーノード20は、マスターノード10に登録される。
コンテナ設定部13は、払い出されたワーカーノード20に、レプリカセット数で示される数のPod2の配置を決定し、Pod2の配置を決定したワーカーノード20にPod2の設定を指示する情報(コンテナ設定情報)を送信する。ワーカーノード20は、このコンテナ設定情報を受信して、Podを作成する。
また、コンテナ設定部13は、ワーカーノード20を監視しており、ワーカーノード20に障害が発生した場合には、レプリカセット数を維持するように、リソースとして予め払い出しておいたワーカーノード20を含めて、新たなPod2の配置先を決定する。そして、コンテナ設定部13は、新たなPod2の配置先として決定したワーカーノード20に、コンテナ設定情報を送信する。このようにすることで、マスターノード10は、自己修復が可能な宣言的な状態をワーカーノード20において維持することができる。
また、コンテナ設定部13は、ワーカーノード20を監視しており、ワーカーノード20に障害が発生した場合には、レプリカセット数を維持するように、リソースとして予め払い出しておいたワーカーノード20を含めて、新たなPod2の配置先を決定する。そして、コンテナ設定部13は、新たなPod2の配置先として決定したワーカーノード20に、コンテナ設定情報を送信する。このようにすることで、マスターノード10は、自己修復が可能な宣言的な状態をワーカーノード20において維持することができる。
次に、マスターノード10を含むコンテナリソース設計システム1000によるコンテナリソース設計処理の実施例を説明する。図2は、コンテナの設定に関する1つの定義情報(マニュフェストファイル)を、マスターノード10が取得した場合のコンテナリソース設計処理を示す。図3は、コンテナ設定に関する複数(3つ)の定義情報(マニュフェストファイル)を、マスターノード10が取得した場合のコンテナリソース設計処理を示す。
<第1実施例>
図2は、本実施形態に係るコンテナリソース設計装置(マスターノード10)を含むコンテナリソース設計システム1000のコンテナリソース設計処理の第1実施例を示す図である。
図2は、本実施形態に係るコンテナリソース設計装置(マスターノード10)を含むコンテナリソース設計システム1000のコンテナリソース設計処理の第1実施例を示す図である。
マスターノード10(コンテナ設定受付部11)は、コンテナシステムの管理装置等から、コンテナの設定に関する(1つのレプリカセットの)定義情報(マニュフェストファイル)を取得する。
この定義情報には、レプリカセット数「3」、コンテナを起動させるための条件を示すアフィニティルールとして「同一ワーカーノードには、同一コンテナ(Pod)のレプリカを配置しない」(同一Workerノード配置:不可)、障害許容数「1」が記載されているものとする(図2の符号α1)。
この定義情報には、レプリカセット数「3」、コンテナを起動させるための条件を示すアフィニティルールとして「同一ワーカーノードには、同一コンテナ(Pod)のレプリカを配置しない」(同一Workerノード配置:不可)、障害許容数「1」が記載されているものとする(図2の符号α1)。
マスターノード10のリソース算出部12は、取得した定義情報(マニュフェストファイル)から、レプリカセット数、アフィニティルール、および、障害許容数の情報を抽出する。そして、リソース算出部12は、宣言的な状態を維持するために最低限必要なワーカーノード20(VMリソース)の数(必要ワーカーノード数)を算出する。
ここで、リソース算出部12は、アフィニティルールにより、同一ワーカーノード20に同一コンテナ(Pod)のレプリカを配置できないこと、および、障害許容数「1」であることから、レプリカセット数「3」にワーカーノード20を「1」加えた、「4」を必要ワーカーノード数として算出する。
ここで、リソース算出部12は、アフィニティルールにより、同一ワーカーノード20に同一コンテナ(Pod)のレプリカを配置できないこと、および、障害許容数「1」であることから、レプリカセット数「3」にワーカーノード20を「1」加えた、「4」を必要ワーカーノード数として算出する。
マスターノード10のリソース算出部12は、必要ワーカーノード数「4」の情報を付したリソース払出指示情報を、VNFM300に送信する(図2に符号α2)。そして、VNFM300がそのリソース払出指示情報をVIM400に送信することにより、4つのワーカーノード20(Worker「1」「2」「3」「4」)の払い出しが行われる。
続いて、マスターノード10のコンテナ設定部13は、払い出されたワーカーノード20の中から、レプリカセット数で示される数「3」のPod2の配置を決定し(ここでは、Worker「1」「2」「3」)、Pod2の配置を決定したワーカーノード20にPod2の設定を指示するコンテナ設定情報を送信する。コンテナ設定情報を受信したワーカーノード20(Worker「1」「2」「3」)は、Pod2を設定する。
なお、ワーカーノード「4」は、予めリソースとして払い出されているが、Pod2が設定されていない状態となる。
なお、ワーカーノード「4」は、予めリソースとして払い出されているが、Pod2が設定されていない状態となる。
ここで、例えば、ワーカーノード「3」に障害が発生したとする(図2の符号d)。この場合、このままでは、レプリカセット数「3」を維持できないため、マスターノード10(コンテナ設定部13)は、予め払い出されているワーカーノード「4」に対し、コンテナ設定情報を送信する。これにより、ワーカーノード「4」は、Pod2(2n)を設定する(図2の符号e)。この際、アフィニティルールを考慮したうえで、リソースの払い出しが済んでいるため、サービスを中断することなく障害対応を行うことができる。つまり、サービス継続性を向上させることができる。
<第2実施例>
図3は、本実施形態に係るコンテナリソース設計装置(マスターノード10)を含むコンテナリソース設計システム1000のコンテナリソース設計処理の第2実施例を示す図である。
図3は、本実施形態に係るコンテナリソース設計装置(マスターノード10)を含むコンテナリソース設計システム1000のコンテナリソース設計処理の第2実施例を示す図である。
マスターノード10(コンテナ設定受付部11)は、コンテナシステムの管理装置等から、コンテナの設定に関する複数(3つのレプリカセット)の定義情報(マニュフェストファイル)を取得する。
ここでは、Aレプリカセット、Bレプリカセット、Cレプリカセットにおけるコンテナ(Pod)の設定を要求する3つの定義情報を取得したものとする。
ここでは、Aレプリカセット、Bレプリカセット、Cレプリカセットにおけるコンテナ(Pod)の設定を要求する3つの定義情報を取得したものとする。
Aレプリカセットの定義情報には、レプリカセット数「4」、コンテナを起動させるための条件を示すアフィニティルールとして「同一ワーカーノードには、同一コンテナ(Pod)のレプリカを配置しない」(同一Workerノード配置:不可)、障害許容数「2」が記載されているものとする(図2の符号β1-A)。
Bレプリカセットの定義情報には、レプリカセット数「3」、コンテナを起動させるための条件を示すアフィニティルールとして「同一ワーカーノードには、同一コンテナ(Pod)のレプリカを配置しない」(同一Workerノード配置:不可)、障害許容数「1」が記載されているものとする(図2の符号β1-B)。
Cレプリカセットの定義情報には、レプリカセット数「1」、コンテナを起動させるための条件を示すアフィニティルールとしてラベル「GPU」、障害許容数「1」が記載されているものとする(図2の符号β1-C)。
マスターノード10のリソース算出部12は、取得した3つの定義情報(マニュフェストファイル)から、レプリカセット数、アフィニティルール、および、障害許容数の情報を抽出する。そして、リソース算出部12は、宣言的な状態を維持するために最低限必要なワーカーノード20(VMリソース)の数(必要ワーカーノード数)を算出する。また、リソース算出部12は、Cレプリカセットにおいて、ラベル種別に「GPU」が設定されていることから、リソースとしてのGPUにワーカーノード20を設定する最低限必要なノード数(必要GPUラベルノード数)を算出する。
リソース算出部12は、まず、AレプリカセットとBレプリカセットの定義情報を比較する。Aレプリカセットのアフィニティルールにより、同一ワーカーノード20に同一コンテナ(Pod)のレプリカを配置できないこと、および、障害許容数「2」であることから、レプリカセット数「4」にワーカーノード20を「2」加えた、「6」をAレプリカセットの必要ワーカーノード数として算出する。一方、Bレプリカセットのアフィニティルールにより、同一ワーカーノード20に同一コンテナ(Pod)のレプリカを配置できないこと、および、障害許容数「1」であることから、レプリカセット数「3」にワーカーノード20を「1」加えた、「4」をBレプリカセットの必要ワーカーノード数として算出する。よって、AレプリカセットとBレプリカセットとの間では、最低限必要なノード数(必要ワーカーノード数)は「6」となる。
一方、Cレプリカセットの定義情報により、GPUへのワーカーノードの配置において、障害許容数「1」であることから、GPUに配置するワーカーノード数(必要GPUラベルノード数)は、「2」となる。
リソース算出部12は、以上に基づき、A,B,Cの3つのレプリカセットを同時期に設定する場合において、全体として最低限必要なノード数として、必要ワーカーノード数「4」、必要GPUラベルノード数「2」を算出する。なお、AレプリカセットとBレプリカセットとの間で必要ワーカーノード数は「6」であったが、そのうち、GPUをリソースとして用いるワーカーノード20を、必要GPUラベルノード数「2」に振り分けたワーカーノード20に重複させて設定を行う。よって、リソースとしてワーカーノード20を払い出す総数は「6」のままとなる。
マスターノード10のリソース算出部12は、必要ワーカーノード数「4」および必要GPUラベルノード数「2」の情報を付したリソース払出指示情報を、VNFM300に送信する(図3に符号β2)。そして、VNFM300がそのリソース払出指示情報をVIM400に送信することにより、4つのワーカーノード20(Worker「1」「2」「3」「4」)と、リソースとしてGPUを提供する2つのワーカーノード20(Worker「5」「6」)との払い出しが行われる。
続いて、マスターノード10のコンテナ設定部13は、払い出されたワーカーノード20の中から、各レプリカセットの定義情報のレプリカセット数で示される数に応じてPod2の配置を決定し、Pod2の配置を決定したワーカーノード20にそのPod2の設定を指示するコンテナ設定情報を送信する。そして、コンテナ設定情報を受信した各ワーカーノード20は、Pod2を設定する。
ここでは、Aレプリカセットの4つのPodが、ワーカーノード「1」「2」「4」「5」に設定される。Bレプリカセットの3つのPodが、ワーカーノード「1」「3」「4」に設定される。また、Cレプリカセットの1つのPodが、GPUをリソースとして提供するワーカーノード「5」に設定される。
なお、ワーカーノード「6」は、予めリソースとして払い出されているが、Podが設定されていない状態となる。
なお、ワーカーノード「6」は、予めリソースとして払い出されているが、Podが設定されていない状態となる。
ここで、例えば、ワーカーノード「4」「5」に障害が発生したとする(図3の符号f,g)。この場合、このままでは、A,B,Cの3つのレプリカセットにおいて各レプリカセット数を維持できない。そのため、マスターノード10(コンテナ設定部13)は、AレプリカセットのPodを、例えばワーカーノード「3」「6」に配置するようにし、コンテナ設定情報を送信する。BレプリカセットのPodを、例えばワーカーノード「2」に配置するようにし、コンテナ設定情報を送信する。また、CレプリカセットのPodを、ワーカーノード「6」に配置するようにし、コンテナ設定情報を送信する。
これにより、ワーカーノード「2」は、BレプリカセットのPodを設定する(図3の符号h)。ワーカーノード「3」は、AレプリカセットのPodを設定する(図3の符号i)。また、ワーカーノード「6」は、AレプリカセットのPodとCレプリカセットのPodとを設定する(図3の符号j,k)。
これにより、ワーカーノード「2」は、BレプリカセットのPodを設定する(図3の符号h)。ワーカーノード「3」は、AレプリカセットのPodを設定する(図3の符号i)。また、ワーカーノード「6」は、AレプリカセットのPodとCレプリカセットのPodとを設定する(図3の符号j,k)。
このようにすることで、人手によるリソース設計を不要とし、障害発生時のサービス継続性を向上させることができる。また、最低限必要なノード数にワーカーノード20の設定を抑えることが可能となり、効率的にリソースを運用することができる。
≪処理の流れ≫
次に、マスターノード10が実行する処理の流れについて説明する。
図4は、本実施形態に係るコンテナリソース設計装置(マスターノード10)が実行する処理の流れを示すフローチャートである。
次に、マスターノード10が実行する処理の流れについて説明する。
図4は、本実施形態に係るコンテナリソース設計装置(マスターノード10)が実行する処理の流れを示すフローチャートである。
まず、マスターノード10のコンテナ設定受付部11は、コンテナシステムの管理装置等から、コンテナに関する定義情報(マニュフェストファイル)を取得する(ステップS1)。
この定義情報には、レプリカセット数、コンテナを起動させるための条件を示すアフィニティルールおよび障害許容数が記載されている。
また、コンテナ設定受付部11は、複数のレプリカセットについての定義情報を受信してもよい。
この定義情報には、レプリカセット数、コンテナを起動させるための条件を示すアフィニティルールおよび障害許容数が記載されている。
また、コンテナ設定受付部11は、複数のレプリカセットについての定義情報を受信してもよい。
次に、マスターノード10のリソース算出部12は、取得した定義情報(マニュフェストファイル)から、レプリカセット数、コンテナを起動するための条件を示すアフィニティルール、および、障害許容数の情報を抽出する(ステップS2)。
続いて、リソース算出部12は、レプリカセット数、アフィニティルールおよび障害許容数に基づき、宣言的な状態を維持するために最低限必要なワーカーノード20の数(必要ワーカーノード数)を算出する(ステップS3)。
この際、リソース算出部12は、複数のレプリカセットについての定義情報を受け取った場合には、各定義情報で示される、レプリカセット数、アフィニティルールおよび障害許容数の条件を満たし、かつ、ワーカーノード数が全体として最低となるように、必要ワーカーノード数を算出する。また、アフィニティルールにおいてリソースの種別を識別するラベルの情報が付されていた場合には、ラベル種別を考慮し、ラベルで示される種類のリソースの数を満たすようにして、必要ラベルノード数(例えば、ラベルが「GPU」であれば「必要GPUラベルノード数」)を含めて算出する。
この際、リソース算出部12は、複数のレプリカセットについての定義情報を受け取った場合には、各定義情報で示される、レプリカセット数、アフィニティルールおよび障害許容数の条件を満たし、かつ、ワーカーノード数が全体として最低となるように、必要ワーカーノード数を算出する。また、アフィニティルールにおいてリソースの種別を識別するラベルの情報が付されていた場合には、ラベル種別を考慮し、ラベルで示される種類のリソースの数を満たすようにして、必要ラベルノード数(例えば、ラベルが「GPU」であれば「必要GPUラベルノード数」)を含めて算出する。
次に、リソース算出部12は、必要ワーカーノード数、また必要ラベルノード数(必要GPUラベルノード数)が算出されていれば、その必要ラベルノード数のワーカーノード20を含む、リソース払出指示情報を、VNFM300に送信する(ステップS4)。これにより、VIM400がその指示情報をVNFM300から取得し、ワーカーノード20の払い出しが行われる。これにより、VIM400が払い出したワーカーノード20が、マスターノード10に登録される。
そして、マスターノード10のコンテナ設定部13は、払い出されたワーカーノード20に、レプリカセット数で示される数のPod2の配置を決定し、Pod2の配置を決定したワーカーノード20にPod2の設定を指示するコンテナ設定情報を送信する(ステップS5)。ワーカーノード20は、このコンテナ設定情報を受信して、Podを作成する。
これにより、マスターノード10(コンテナリソース設計装置)は、レプリカセット数およびアフィニティルールの条件を満たした上で、宣言的な状態を維持することができる。よって、人手によるリソース設計を不要とし、障害発生時のサービス継続性を向上させることができる。
<ハードウェア構成>
本実施形態に係るコンテナリソース設計装置(マスターノード10)は、例えば図5に示すような構成の物理装置であるコンピュータ900によって実現される。
図5は、本実施形態に係るコンテナリソース設計装置(マスターノード10)の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。コンピュータ900は、CPU901、ROM(Read Only Memory)902、RAM903、HDD(Hard Disk Drive)904、入出力I/F(Interface)905、通信I/F906およびメディアI/F907を有する。
本実施形態に係るコンテナリソース設計装置(マスターノード10)は、例えば図5に示すような構成の物理装置であるコンピュータ900によって実現される。
図5は、本実施形態に係るコンテナリソース設計装置(マスターノード10)の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。コンピュータ900は、CPU901、ROM(Read Only Memory)902、RAM903、HDD(Hard Disk Drive)904、入出力I/F(Interface)905、通信I/F906およびメディアI/F907を有する。
CPU901は、ROM902またはHDD904に記憶されたプログラムに基づき作動し、図1に示すコンテナリソース設計装置(マスターノード10)の制御部(コンテナ設定受付部11、リソース算出部12、コンテナ設定部13)による制御を行う。ROM902は、コンピュータ900の起動時にCPU901により実行されるブートプログラムや、コンピュータ900のハードウェアに係るプログラム等を記憶する。
CPU901は、入出力I/F905を介して、マウスやキーボード等の入力装置910、および、ディスプレイ等の出力装置911を制御する。CPU901は、入出力I/F905を介して、入力装置910からデータを取得するともに、生成したデータを出力装置911へ出力する。なお、プロセッサとしてCPU901とともに、GPU等を用いても良い。
HDD904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータ等を記憶する。通信I/F906は、通信網(例えば、NW(Network)920)を介して他の装置からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網を介して他の装置へ送信する。
メディアI/F907は、記録媒体912に格納されたプログラムまたはデータを読み取り、RAM903を介してCPU901へ出力する。CPU901は、目的の処理に係るプログラムを、メディアI/F907を介して記録媒体912からRAM903上にロードし、ロードしたプログラムを実行する。記録媒体912は、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、磁気記録媒体、導体メモリテープ媒体又は半導体メモリ等である。
例えば、コンピュータ900が本実施形態に係るコンテナリソース設計装置(マスターノード10)として機能する場合、コンピュータ900のCPU901は、RAM903上にロードされたプログラムを実行することによりコンテナリソース設計装置(マスターノード10)の機能を実現する。また、HDD904には、RAM903内のデータが記憶される。CPU901は、目的の処理に係るプログラムを記録媒体912から読み取って実行する。この他、CPU901は、他の装置から通信網(NW920)を介して目的の処理に係るプログラムを読み込んでもよい。
<効果>
以下、本発明に係るコンテナリソース設計装置(マスターノード10)等の効果について説明する。
本発明に係るコンテナリソース設計装置は、仮想化されたコンテナシステムのリソース設計を行うコンテナリソース設計装置(マスターノード10)であって、コンテナシステムは、コンテナが配置されることによりサービスを提供する複数のワーカーノード20と、当該ワーカーノード20の生成および運用を行うコンテナリソース設計装置(マスターノード10)とにより構成されており、コンテナリソース設計装置(マスターノード10)が、1つ以上のコンテナの集合であるPod2単位での当該Pod2の冗長化の数を示すレプリカセット数、コンテナを起動させるための条件を示すアフィニティルール、および、自己修復が可能な状態を維持するために障害の発生が許容されるワーカーノード20の数を示す障害許容数、を含む定義情報を取得するコンテナ設定受付部11と、レプリカセット数、アフィニティルールおよび障害許容数を定義情報から抽出し、障害許容数以下の障害がワーカーノード20に発生した場合でも、レプリカセット数を満たし、かつ、アフィニティルールで規定される条件を満たした上で、最低限必要なワーカーノード20の数を示す必要ワーカーノード数を算出するとともに、算出された必要ワーカーノード数を含む、リソースの払い出しの指示情報であるリソース払出指示情報を、リソース管理機構に送信することにより、必要ワーカーノード数のワーカーノード20をリソースとして払い出させるリソース算出部12と、払い出されたワーカーノード20に、レプリカセット数で示される数のPod2の配置を決定し、Pod2の配置を決定したワーカーノード20に、Pod2を構成するコンテナの設定を指示するコンテナ設定情報を送信するコンテナ設定部13と、を備えることを特徴とする。
以下、本発明に係るコンテナリソース設計装置(マスターノード10)等の効果について説明する。
本発明に係るコンテナリソース設計装置は、仮想化されたコンテナシステムのリソース設計を行うコンテナリソース設計装置(マスターノード10)であって、コンテナシステムは、コンテナが配置されることによりサービスを提供する複数のワーカーノード20と、当該ワーカーノード20の生成および運用を行うコンテナリソース設計装置(マスターノード10)とにより構成されており、コンテナリソース設計装置(マスターノード10)が、1つ以上のコンテナの集合であるPod2単位での当該Pod2の冗長化の数を示すレプリカセット数、コンテナを起動させるための条件を示すアフィニティルール、および、自己修復が可能な状態を維持するために障害の発生が許容されるワーカーノード20の数を示す障害許容数、を含む定義情報を取得するコンテナ設定受付部11と、レプリカセット数、アフィニティルールおよび障害許容数を定義情報から抽出し、障害許容数以下の障害がワーカーノード20に発生した場合でも、レプリカセット数を満たし、かつ、アフィニティルールで規定される条件を満たした上で、最低限必要なワーカーノード20の数を示す必要ワーカーノード数を算出するとともに、算出された必要ワーカーノード数を含む、リソースの払い出しの指示情報であるリソース払出指示情報を、リソース管理機構に送信することにより、必要ワーカーノード数のワーカーノード20をリソースとして払い出させるリソース算出部12と、払い出されたワーカーノード20に、レプリカセット数で示される数のPod2の配置を決定し、Pod2の配置を決定したワーカーノード20に、Pod2を構成するコンテナの設定を指示するコンテナ設定情報を送信するコンテナ設定部13と、を備えることを特徴とする。
このようにすることで、本発明に係るコンテナリソース設計装置(マスターノード10)は、レプリカセット数およびアフィニティルールの条件を満たした上で、宣言的な状態を維持することができる。また、障害許容数を加味した冗長設計を自動で行うことができる。よって、人手によるリソース設計を不要とし、障害発生時のサービス継続性を向上させることができる。
また、コンテナリソース設計装置(マスターノード10)において、コンテナ設定受付部11は、各々異なるPod2に関する複数の定義情報を取得し、リソース算出部12は、各々のPod2が複数の定義情報それぞれで示される、障害許容数以下の障害がワーカーノード20に発生した場合でも、レプリカセット数を満たし、かつ、アフィニティルールで規定される条件を満たした上で、全体として最低限必要な必要ワーカーノード数を算出することを特徴とする。
このようにすることで、同時期に異なるPodの定義情報に基づき、複数のコンテナを設定(デプロイ)する場合でも、全体として最低限必要なワーカーノード数を算出することができる。よって、より効率的にリソースを運用することができる。
また、コンテナリソース設計装置(マスターノード10)において、アフィニティルールに、コンテナを起動させるリソースの種別を示すラベルが付されている場合に、リソース算出部12は、ラベルで示されるリソースの種別を判別し、判別した種別のリソースにおいて、最低限必要なワーカーノード20の数を示す必要ラベルノード数を算出し、リソース払出指示情報に含めてリソース管理機構に送信することを特徴とする。
このようにすることで、リソースの種別を考慮して最低限必要なワーカーノード数を算出することができる。よって、より効率的にリソースを運用することができる。
なお、本発明は、以上説明した実施形態に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。
例えば、本実施形態に係るコンテナリソース設計装置(マスターノード10)の特徴構成となる各機能(コンテナ設定受付部11、リソース算出部12、コンテナ設定部13)の全部または一部を、VNFM300に備えさせるようにしてもよい。この場合であっても、マスターノード10とVNFM300が連携して本実施形態の処理を実現することができる。
例えば、本実施形態に係るコンテナリソース設計装置(マスターノード10)の特徴構成となる各機能(コンテナ設定受付部11、リソース算出部12、コンテナ設定部13)の全部または一部を、VNFM300に備えさせるようにしてもよい。この場合であっても、マスターノード10とVNFM300が連携して本実施形態の処理を実現することができる。
2 Pod
10 コンテナリソース設計装置(マスターノード)
11 コンテナ設定受付部
12 リソース算出部
13 コンテナ設定部
20 ワーカーノード
300 VNFM(リソース管理機構)
400 VIM(リソース管理機構)
1000 コンテナリソース設計システム
10 コンテナリソース設計装置(マスターノード)
11 コンテナ設定受付部
12 リソース算出部
13 コンテナ設定部
20 ワーカーノード
300 VNFM(リソース管理機構)
400 VIM(リソース管理機構)
1000 コンテナリソース設計システム
Claims (5)
- 仮想化されたコンテナシステムのリソース設計を行うコンテナリソース設計装置であって、
前記コンテナシステムは、コンテナが配置されることによりサービスを提供する複数のワーカーノードと、当該ワーカーノードの生成および運用を行う前記コンテナリソース設計装置とにより構成されており、
前記コンテナリソース設計装置は、
1つ以上の前記コンテナの集合であるPod単位での当該Podの冗長化の数を示すレプリカセット数、前記コンテナを起動させるための条件を示すアフィニティルール、および、自己修復が可能な状態を維持するために障害の発生が許容される前記ワーカーノードの数を示す障害許容数、を含む定義情報を取得するコンテナ設定受付部と、
前記レプリカセット数、前記アフィニティルールおよび前記障害許容数を前記定義情報から抽出し、前記障害許容数以下の障害が前記ワーカーノードに発生した場合でも、前記レプリカセット数を満たし、かつ、前記アフィニティルールで規定される条件を満たした上で、最低限必要な前記ワーカーノードの数を示す必要ワーカーノード数を算出するとともに、
算出された前記必要ワーカーノード数を含む、リソースの払い出しの指示情報であるリソース払出指示情報を、リソース管理機構に送信することにより、前記必要ワーカーノード数の前記ワーカーノードをリソースとして払い出させるリソース算出部と、
払い出された前記ワーカーノードに、前記レプリカセット数で示される数の前記Podの配置を決定し、前記Podの配置を決定したワーカーノードに、前記Podを構成するコンテナの設定を指示するコンテナ設定情報を送信するコンテナ設定部と、
を備えることを特徴とするコンテナリソース設計装置。 - 前記コンテナ設定受付部は、各々異なるPodに関する複数の前記定義情報を取得し、
前記リソース算出部は、各々のPodが複数の前記定義情報それぞれで示される、前記障害許容数以下の障害が前記ワーカーノードに発生した場合でも、前記レプリカセット数を満たし、かつ、前記アフィニティルールで規定される条件を満たした上で、全体として最低限必要な前記必要ワーカーノード数を算出すること
を特徴とする請求項1に記載のコンテナリソース設計装置。 - 前記アフィニティルールに、前記コンテナを起動させるリソースの種別を示すラベルが付されている場合に、
前記リソース算出部は、前記ラベルで示されるリソースの種別を判別し、判別した種別のリソースにおいて、最低限必要な前記ワーカーノードの数を示す必要ラベルノード数を算出し、前記リソース払出指示情報に含めて前記リソース管理機構に送信すること
を特徴とする請求項1に記載のコンテナリソース設計装置。 - 仮想化されたコンテナシステムのリソース設計を行うコンテナリソース設計装置のコンテナリソース設計方法であって、
前記コンテナシステムは、コンテナが配置されることによりサービスを提供する複数のワーカーノードと、当該ワーカーノードの生成および運用を行う前記コンテナリソース設計装置とにより構成されており、
前記コンテナリソース設計装置は、
1つ以上の前記コンテナの集合であるPod単位での当該Podの冗長化の数を示すレプリカセット数、前記コンテナを起動させるための条件を示すアフィニティルール、および、自己修復が可能な状態を維持するために障害の発生が許容される前記ワーカーノードの数を示す障害許容数、を含む定義情報を取得するステップと、
前記レプリカセット数、前記アフィニティルールおよび前記障害許容数を前記定義情報から抽出し、前記障害許容数以下の障害が前記ワーカーノードに発生した場合でも、前記レプリカセット数を満たし、かつ、前記アフィニティルールで規定される条件を満たした上で、最低限必要な前記ワーカーノードの数を示す必要ワーカーノード数を算出するステップと、
算出された前記必要ワーカーノード数を含む、リソースの払い出しの指示情報であるリソース払出指示情報を、リソース管理機構に送信することにより、前記必要ワーカーノード数の前記ワーカーノードをリソースとして払い出させるステップと、
払い出された前記ワーカーノードに、前記レプリカセット数で示される数の前記Podの配置を決定し、前記Podの配置を決定したワーカーノードに、前記Podを構成するコンテナの設定を指示するコンテナ設定情報を送信するステップと、
を実行することを特徴とするコンテナリソース設計方法。 - コンピュータを、請求項1乃至請求項3のいずれか一項に記載のコンテナリソース設計装置として機能させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/926,936 US20230195497A1 (en) | 2020-05-21 | 2020-05-21 | Container resource designing device, container resource designing method, and program |
PCT/JP2020/020042 WO2021234885A1 (ja) | 2020-05-21 | 2020-05-21 | コンテナリソース設計装置、コンテナリソース設計方法およびプログラム |
JP2022524782A JP7533576B2 (ja) | 2020-05-21 | 2020-05-21 | コンテナリソース設計システムおよびコンテナリソース設計方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/020042 WO2021234885A1 (ja) | 2020-05-21 | 2020-05-21 | コンテナリソース設計装置、コンテナリソース設計方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021234885A1 true WO2021234885A1 (ja) | 2021-11-25 |
Family
ID=78708277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/020042 WO2021234885A1 (ja) | 2020-05-21 | 2020-05-21 | コンテナリソース設計装置、コンテナリソース設計方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230195497A1 (ja) |
JP (1) | JP7533576B2 (ja) |
WO (1) | WO2021234885A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11809276B2 (en) * | 2021-02-26 | 2023-11-07 | EMC IP Holding Company LLC | Container-based stateful application resilience to node failure |
US20230169168A1 (en) * | 2021-11-29 | 2023-06-01 | Microsoft Technology Licensing, Llc. | Detect anomalous container deployment at a container orchestration service |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007207219A (ja) * | 2006-01-06 | 2007-08-16 | Hitachi Ltd | 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム |
-
2020
- 2020-05-21 WO PCT/JP2020/020042 patent/WO2021234885A1/ja active Application Filing
- 2020-05-21 JP JP2022524782A patent/JP7533576B2/ja active Active
- 2020-05-21 US US17/926,936 patent/US20230195497A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007207219A (ja) * | 2006-01-06 | 2007-08-16 | Hitachi Ltd | 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム |
Non-Patent Citations (2)
Title |
---|
ANONYMOUS: "Manifest Nginx", KUBERNETES, 16 April 2019 (2019-04-16), pages 1 - 3, XP055874158, Retrieved from the Internet <URL:https://noumenon-th.net/programming/2019/04/16/manifest01> [retrieved on 20211217] * |
KUBERNETES MAGNUM: "Run Kubernetes manifest in Magnum", THINK IT, 12 June 2016 (2016-06-12), pages 1 - 17, XP055874156, Retrieved from the Internet <URL:https://thinkit.co.jp/article/9378> [retrieved on 20211217] * |
Also Published As
Publication number | Publication date |
---|---|
JP7533576B2 (ja) | 2024-08-14 |
US20230195497A1 (en) | 2023-06-22 |
JPWO2021234885A1 (ja) | 2021-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11425194B1 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
US11263084B2 (en) | Saving program execution state | |
US9280390B2 (en) | Dynamic scaling of a cluster of computing nodes | |
US8260840B1 (en) | Dynamic scaling of a cluster of computing nodes used for distributed execution of a program | |
US20200073655A1 (en) | Non-disruptive software update system based on container cluster | |
US8442958B2 (en) | Server change management | |
US20190288914A1 (en) | Allocating VNFC Instances with Anti Affinity Rule to Hosts | |
CN102981929B (zh) | 磁盘镜像的管理方法和系统 | |
US8966025B2 (en) | Instance configuration on remote platforms | |
JP5526784B2 (ja) | 縮退構成設計システムおよび方法 | |
US20140310703A1 (en) | Multi-machine deployment and configuration of multi-tiered applications | |
CN113886089B (zh) | 一种任务处理方法、装置、系统、设备及介质 | |
WO2021234885A1 (ja) | コンテナリソース設計装置、コンテナリソース設計方法およびプログラム | |
AU2014209611A1 (en) | Instance host configuration | |
CN111427675A (zh) | 一种数据处理方法、装置以及计算机可读存储介质 | |
US20230034835A1 (en) | Parallel Processing in Cloud | |
JP2017091330A (ja) | 計算機システム及び計算機システムのタスク実行方法 | |
CN117573291A (zh) | 跨数据中心的多集群管理方法、装置、设备及存储介质 | |
JP6098167B2 (ja) | 仮想マシン管理プログラム及びその方法 | |
EP4158874B1 (en) | Staging configuration changes with deployment freeze options | |
Hernández et al. | Using cloud-based resources to improve availability and reliability in a scientific workflow execution framework | |
JP6696947B2 (ja) | 仮想マシンエミュレートシステム、仮想マシンエミュレート方法およびコンピュータプログラム | |
US20240281242A1 (en) | Update control method of container infrastructure cluster, update system of container infrastructure cluster, update control device, and update control program | |
CN117742797A (zh) | 一种GitLab流水线发布方法、系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20937110 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022524782 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20937110 Country of ref document: EP Kind code of ref document: A1 |