Information processing system, information processing method, and information processing device

The system enhances communication performance in distributed computing by dynamically managing application containers and adjusting routes based on container configuration changes, addressing inefficiencies in existing microservice architectures.

JP7798000B2Active Publication Date: 2026-01-14TOYOTA JIDOSHA KK
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2022169066
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-10-21
Publication Date
2026-01-14
Estimated Expiration
2042-10-21

AI Technical Summary

Technical Problem

Existing distributed computing systems using microservices face challenges in optimizing communication performance between application containers due to the inability to dynamically reconfigure communication paths in response to changes in container configurations and network conditions.

Method used

An information processing system with a master device and a route control device that dynamically manages application containers and generates route information based on container configuration changes, using a route control device to optimize communication paths.

Benefits of technology

Improves communication performance by dynamically adjusting routes in response to container creation or destruction, ensuring optimal communication paths and resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007798000000001
    Figure 0007798000000001
  • Figure 0007798000000002
    Figure 0007798000000002
  • Figure 0007798000000003
    Figure 0007798000000003
Patent Text Reader

Abstract

To improve communication performance between applications containers.SOLUTION: An information processing system includes a master device for commanding to generate and destroy a plurality of application containers that operate in a plurality of respective node devices, and a path controller for controlling routing between the plurality of node devices. The master device has a first control part for executing the reception of a first message of requesting to generate or destroy the application containers in a first node device between the plurality of node devices, and the transmission of a second message showing a change in a configuration of the plurality of application containers to the path controller in the case of receiving the first message, and the path controller has a second control part for executing the generation of path information between the plurality of node devices in the case of receiving the second message.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to distributed computing. [Background technology]

[0002] In recent years, technologies for performing distributed processing using microservices have become widespread. As a related technology, for example, Non-Patent Document 1 discloses an orchestration technology for containerizing and deploying applications. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] Kubernetes,[online],[Retrieved September 16, 2022],https: / / kubernetes.io / Summary of the Invention [Problem to be solved by the invention]

[0004] The present disclosure aims to improve communication performance between application containers. [Means for solving the problem]

[0005] One aspect of an embodiment of the present disclosure is an information processing system including a master device that commands the generation and destruction of multiple application containers operating in each of multiple node devices, and a route control device that controls routing between the multiple node devices, wherein the master device has a first control unit that receives a first message requesting the generation or destruction of the application container in a first node device of the multiple node devices, and, when the master device receives the first message, sends a second message to the route control device indicating that the configuration of the multiple application containers has changed, and the route control device has a second control unit that, when the master device receives the second message, generates route information between the multiple node devices.

[0006] One aspect of an embodiment of the present disclosure is an information processing method executed by a master device that commands the generation and destruction of multiple application containers operating in each of multiple node devices, and a route control device that controls routing between the multiple node devices, wherein the master device receives a first message requesting the generation or destruction of the application container in a first node device of the multiple node devices, and, upon receiving the first message, sends to the route control device a second message indicating that the configuration of the multiple application containers has changed, and, upon receiving the second message, the route control device generates route information between the multiple node devices.

[0007] One aspect of an embodiment of the present disclosure is an information processing device that commands the generation and destruction of multiple application containers operating in each of multiple node devices, and has a control unit that performs the following operations: receiving a first message requesting the generation or destruction of the application container in a first node device of the multiple node devices; and, when the first message is received, sending a second message indicating that the configuration of the multiple application containers has changed to a route control device that generates route information between the multiple node devices.

[0008] Another aspect of the present invention is a program for causing a computer to execute the above-described method, or a computer-readable storage medium that non-transitoryly stores the program. [Effects of the Invention]

[0009] According to the present disclosure, it is possible to improve communication performance between application containers. [Brief explanation of the drawings]

[0010] [Figure 1] 1 is a schematic diagram of a communication system according to a first embodiment. [Figure 2] FIG. 2 is a hardware configuration diagram of each device included in the system. [Figure 3A] FIG. 2 is a diagram showing the configuration of modules included in the master device. [Figure 3B] FIG. 2 is a diagram showing the relationship between modules included in the master device. [Figure 4A] FIG. 2 is a diagram illustrating the configuration of modules included in a route control device. [Figure 4B] FIG. 2 is a diagram showing the relationship between modules included in a route control device. [Figure 5] FIG. 2 is a diagram illustrating a packet transfer path. [Figure 6] FIG. 2 is a diagram illustrating a configuration of modules included in a node device. [Figure 7] 10 is a flowchart of a process executed by the master device. [Figure 8] 10 is a flowchart of a process executed by a route control device. [Figure 9] 10 is a flowchart of a process executed by a route control device in the second embodiment. [Figure 10] 10 is a flowchart of a process executed by a route control device in the second embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0011] Microservices architecture is known, which divides an application provided to a user into multiple independent small applications (hereinafter referred to as microservice applications) and distributes the execution of these microservice applications across multiple nodes. For example, by using an orchestration system such as that described in Non-Patent Document 1, it becomes possible to link microservice applications together and perform processing.

[0012] In such a system, multiple nodes running applications are tunnel-connected via a virtual network, and applications communicate with each other via virtual transmission paths. However, in such a configuration, applications cannot know the status of the physical network. In other words, even if a failure or congestion occurs on the data transmission path, it is difficult to appropriately reconfigure the path to avoid the failure. The information processing system according to the present disclosure solves such a problem.

[0013] An information processing system according to one aspect of the present disclosure includes: An information processing system including a master device that commands the creation and destruction of multiple application containers operating in each of multiple node devices, and a route control device that controls routing between the multiple node devices, wherein the master device has a first control unit that receives a first message requesting the creation or destruction of the application container in a first node device among the multiple node devices, and, when the master device receives the first message, sends a second message to the route control device indicating that the configuration of the multiple application containers has changed, and the route control device has a second control unit that, when the master device receives the second message, generates route information between the multiple node devices.

[0014] The master device is a device that commands each of the plurality of node devices to generate or discard an application container. In the information processing system according to the present disclosure, this allows the number of nodes that perform information processing to be dynamically increased or decreased.

[0015] A first control unit included in the master device receives a first message requesting creation or destruction of an application container in a first node device. The first message may be received from an external device or may be transmitted and received within the master device. For example, the first message may be generated based on an instruction from an operator or may be generated by a scheduler or the like operating within the master device. The master device detects, based on the first message, that creation or destruction of an application container has been requested.

[0016] When the master device detects that a request to create or destroy an application container has been made to any of the node devices, it instructs the node device to create or destroy the application container and transmits a second message to the route control device. The second message is a message notifying that the configuration of the application containers operating in the multiple node devices, i.e., their locations, number, etc., has changed.

[0017] A route control device is a device that controls the routing of communications between a plurality of node devices. Here, if the configuration of application containers operating on multiple node devices changes, the appropriate communication path between any of the node devices may change. For example, when a new application container that performs a large amount of communication is created, it is preferable to separate the path through which the communication is performed from the paths used by other application containers. Furthermore, when an application container that was performing communication is discarded, the communication capacity of the path used by the application container becomes available, allowing other communications to be allocated to the path.

[0018] To achieve this, the routing control device must be able to detect changes in the configuration of the application container in a timely manner. Therefore, the route control device according to the present disclosure generates route information between a plurality of node devices when triggered by receiving the second message. The route information is information regarding a suitable route for communication between a plurality of application containers. The route information may describe a suitable communication route for each combination of node devices in which an application container exists (is operating) among the plurality of node devices.

[0019] In an information processing system according to the present disclosure, a master device notifies a route control device of a change in the configuration of an application container running on multiple node devices, and the route control device generates or regenerates route information based on the change. This allows route information to be updated at appropriate times in a system in which multiple application containers run. Furthermore, by updating the route information at appropriate times, communication performance between application containers can be maintained in an optimal state.

[0020] The path control device may execute a predetermined process for controlling the transfer path of data transmitted and received by a plurality of application containers based on the generated path information. For example, the route control device may transmit first data for controlling communication routes to a plurality of node devices. The first data may be, for example, data for performing route control in a physical network, such as data for performing segment routing.

[0021] The route control device may also acquire container information from the master device, the container information including information about the operating status of application containers in multiple node devices. The container information is, for example, data indicating which application container is operating in which node. The container information may also include information about the communication status of each application container (for example, communication statistics). Furthermore, the route information may be generated or regenerated based on the container information. For example, if congestion or a failure is detected at a certain node based on the container information, the route control device can regenerate a route that avoids the node.

[0022] Specific embodiments of the present disclosure will be described below with reference to the accompanying drawings. Unless otherwise specified, the hardware configuration, module configuration, functional configuration, etc. described in each embodiment are not intended to limit the technical scope of the disclosure to those configurations alone.

[0023] (First embodiment) Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. The communication system according to this embodiment is a system in which a plurality of node devices (information processing devices) execute specific information processing in a distributed manner.

[0024] FIG. 1 is a schematic diagram of a communication system according to this embodiment. The communication system according to this embodiment includes a master device 100, a route control device 200, and a plurality of node devices 300. In the illustrated example, two node devices 300, 300A and 300B, are shown as examples of the node devices 300, but the system may include three or more node devices 300.

[0025] In the communication system according to this embodiment, a plurality of node devices 300 communicate with each other to execute tasks in a distributed manner. The plurality of node devices 300 may be fixed computers or mobile computers. For example, by installing a node device 300 in an automobile, tasks that arise while the automobile is traveling can be processed in a distributed manner by a plurality of vehicles traveling nearby. Each of the plurality of node devices 300 executes a microservice application that is programmed to process a predetermined task.

[0026] A plurality of node devices 300 may have a parent-child relationship. A parent node node device 300 may request task processing from another node device 300 at a lower position. A node device 300 that has been requested to process a task may request the other node devices 300 to process the task (part or all). Each node device 300 may execute a different type of task.

[0027] Kubernetes is known as a platform that enables such processing. In Kubernetes, multiple microservices run in application containers. A virtual network interface runs on the computer on which Kubernetes runs, and a unique IP address is assigned to each application container. By sending an HTTP request to the application container, each microservice can be asked to process a task.

[0028] The master device 100 is a device that controls the creation and destruction of application containers that run in the node devices 300. In the communication system of this embodiment, the number of containers in which applications run is dynamically changed based on a command from the master device 100. For example, when the master device 100 determines that more computing resources are needed, it dynamically changes the number of containers in which applications run based on a command from the master device 100. The node device 300 issues a command to generate application containers to as many node devices 300 as possible. When a computational resource becomes unnecessary, the node device 300 issues a command to discard the unnecessary application container. The node device 300 generates and destroys containers based on commands sent from the master device 100 . This allows dynamic control of the computational resources of the entire system.

[0029] In such a communication system, the selection of an appropriate communication path becomes an issue. In Kubernetes, multiple application containers communicate via a virtual network. In this configuration, application containers communicate with each other via virtual transmission paths, so the application containers cannot know the status of the physical network. In other words, even if a failure or congestion occurs on the data transmission path, it is difficult to appropriately reconfigure the path to avoid the failure.

[0030] Furthermore, the network conditions may change depending on the placement of the application container. For example, when a new application container that performs large-volume communication is created, it is preferable to separate the route through which that communication travels from routes used by other application containers. Also, when an application container that was performing large-scale communication is discarded, the route used by that application container has more communication capacity, allowing other communications to be allocated to that route.

[0031] Therefore, in the communication system of this embodiment, a route control device 200 is provided, which is a device that acquires the network status, and the route control device 200 generates route information between multiple node devices 300 and then issues information to the multiple node devices 300 to instruct the data transmission route. Furthermore, the route control device 200 generates route information when a change in the placement status of an application container in multiple node devices 300 is used as a trigger. The change in the placement status of an application container is detected by the master device 100 and notified to the route control device 200. The route control device 200 may be a controller in a Software-Defined Network (SDN controller) or may be implemented as a container in Kubernetes. In this case, the functions may be distributed among multiple containers.

[0032] This configuration enables the route control device 200 to generate or update route information in accordance with changes in the placement status of application containers. Furthermore, it becomes possible to instruct the node device 300 on the data transmission route based on the route information.

[0033] The hardware configurations of the master device 100, the route control device 200, and the node device 300 according to this embodiment will be described with reference to FIG.

[0034] The master device 100, the route control device 200, and the node device 300 can be configured by a computer having a CPU (Central Processing Unit), a main memory device, and an auxiliary memory device. Note that all or part of the illustrated functions may be performed using dedicated circuits.

[0035] The master device 100 includes a control unit 101 , a storage unit 102 , and a communication unit 103 . The route control device 200 includes a control unit 201 , a storage unit 202 , and a communication unit 203 . The node device 300 includes a control unit 301 , a storage unit 302 , and a communication unit 303 .

[0036] The control unit 101 is a calculation unit that executes a predetermined program to realize various functions of the master device 100. The control unit 201 is a calculation unit that executes a predetermined program to realize various functions of the route control device 200. The control unit 301 is a calculation unit that executes a predetermined program to realize various functions of the node device 300. The control units 101, 202, and 301 may be realized by, for example, a CPU or the like.

[0037] The storage units 102, 202, and 302 are means for storing information and are configured with storage media such as RAM, magnetic disks, flash memories, etc. The storage units 102, 202, and 302 store various programs executed by the control units 101, 201, and 301, data used by the programs, etc.

[0038] The communication units 103, 203, and 303 are communication interfaces for connecting the master device 100, the route control device 200, and the node device 300 to a network, respectively. The communication units 103, 203, and 303 are configured to include, for example, a network interface board and a wireless communication interface for wireless communication.

[0039] Next, the functions executed by each device will be explained for each functional module. 3A is a schematic diagram showing the functional modules included in the master device 100. Each of the illustrated functional modules is executed by the control unit 101.

[0040] The API server 1011 is a server that commands the creation and destruction of application containers to the multiple node devices 300. In Kubernetes, a predetermined API (typically, an HTTP (Hypertext Transfer Protocol) API) is used to Issues various commands to the application container.

[0041] The API server 1011 receives a request for controlling an application container (hereinafter, a container operation request) from outside the device, and issues a command for the application container to the node device 300 in response to the request. The container operation request is typically a request to create an application container or a request to destroy an application container, but may include other requests. The container operation request includes a message for calling an HTTP API.

[0042] Furthermore, the API server 1011 has a function of managing configuration information of application containers. Specifically, the API server 1011 communicates with the node devices 300 to obtain information about their status. This allows the API server 1011 to know what application container is running on which node device 300. The API server 1011 can also obtain information about communications between multiple application containers (such as communication statistics information) from the node devices 300.

[0043] The proxy 1012 is a proxy server that relays container operation requests sent from outside the device to the API server 1011. The proxy 1012 provides functions such as providing a secure connection, address translation, and user authentication. The proxy 1012 is also called a K8s proxy or a kubectl proxy.

[0044] The API monitor 1013 monitors container operation requests sent to the API server 1011 . In this embodiment, the API monitor 1013 monitors the API server 1011. Based on the contents of the container operation request, the node device 300 detects that the configuration of the application containers running on the plurality of node devices 300 has changed, and notifies the routing control device 200 of this fact.

[0045] Next, the flow of the processing executed by each of the above-mentioned functional modules will be described with reference to FIG. 3B.

[0046] As shown in FIG. 3B, the master device 100 receives a request (container operation request) to operate an application container from outside the device. The container operation request includes a message for calling an HTTP API. The container operation request is processed by the proxy 1012 and received by the API server 1011. When the API server 1011 receives a container operation request via the API, it generates a predetermined container control command and transmits the container control command to the corresponding node device 300. The container control command commands the creation or destruction of an application container.

[0047] The API server 1011 may be connected to a scheduler that performs scheduling related to the creation and destruction of application containers. The scheduler associates application containers with node devices based on resource requirements, hardware policies, expiration dates, etc., and performs scheduling related to the creation and destruction of application containers. In this case, the API server 1011 may issue a command to create or destroy a container based on a container operation request sent from the scheduler. That is, the container operation request may be sent from outside the device or from inside the device.

[0048] Hereinafter, a command issued by the API server 1011 to the node device 300 is referred to as a container control command. The container control command includes either a command to create an application container or a command to discard an application container. The container control command generated by the API server 1011 is received and processed by the target node device 300. As a result, the node device 300 generates or destroys an application container.

[0049] In this embodiment, a change in the configuration of application containers running on multiple node devices 300 is detected by directly listening to container operation requests sent to the API server 1011. Specifically, the API monitoring unit 1013 acquires the container operation request (i.e., a request to call the HTTP API) sent to the API server 1011 and determines the content of the request.

[0050] The API monitor 1013 includes a packet collector and a container state detector. The packet collection unit reads the contents of packets sent from outside the device to the API server 1011 and determines whether the packets contain a container operation request, i.e., a message for calling the HTTP API. The packet collection unit acquires packets at the kernel level at one of the following times. Note that the stage at which packets are acquired is not limited to a specific one. (1) Timing of packets passing through the network interface driver (2) The timing when the packet is handed over from the NIC to the kernel (3) When the network stack processes a packet

[0051] The packet collection unit determines whether the acquired packet contains a message for calling the HTTP API. Specifically, the packet collection unit performs the following process. (1) Filter only packets that contain HTTP headers (2) Check the HTTP header to see if an HTTP API call is being made. (3) Determine whether a container creation or destruction is being requested. Here, if the packet contains a message for calling an HTTP API that operates a container, the API monitor 1013 can determine that a request has been made to create or destroy an application container.

[0052] Based on the results of the determination made by the packet collection unit, the container status detection unit generates and saves information about the target container (namespace and container name), time information, the called API, etc. This information is included in the container operation request. Furthermore, the container state detection unit generates data notifying that the configuration of the container has changed (hereinafter, referred to as a change notification) based on the stored information, and transmits the data to the route control device 200.

[0053] Although the case where a container operation request is transmitted from outside the master device 100 has been described above, as mentioned above, a container operation request may also be issued by a built-in scheduler. In this case, too, the API monitor 1013 can read the packet transmitted to the API server 1011 and determine, in a similar manner, that a request to create or destroy an application container has been made.

[0054] Furthermore, the API server 1011 can provide information about a plurality of application containers (hereinafter, container information) to an external device (for example, the route control device 200). For example, the API server 1011 can transmit container information to the route control device 200 in response to an inquiry from the route control device 200. The container information includes, for example, configuration information of a K8s cluster.

[0055] Next, we will explain the functional modules that the routing control device 200 has. Fig. 4A is a schematic diagram showing the functional modules that the routing control device 200 has. Each of the illustrated functional modules is executed by a control unit 201.

[0056] The container state monitoring unit 2011 acquires container information from the master device 100 (API server 1011) when it receives a change notification from the master device 100. The container information includes information on the configuration and state of all application containers running on the multiple node devices 300. The collected container information is temporarily stored.

[0057] The route control unit 2012 calculates the optimal communication route between multiple application containers based on the stored container information. The route control unit 2012 has a function to manage the configuration of the target network and a function to monitor the status of the network, and can calculate the optimal communication route between any node devices. The route control unit 2012 generates optimal communication routes for all combinations of application containers that are currently running, and stores data indicating these routes. Furthermore, based on this data, the route control unit 2012 transmits data (hereinafter referred to as route control data) instructing the multiple nodes (including the node device 300) that make up the network on the packet forwarding route.

[0058] Note that tunnels on the virtual network in Kubernetes are set by the node device 300. The route control unit 2012 generates routes on the physical network between the node devices, separately from the virtual network.

[0059] Next, the flow of processing executed by each functional module of the routing control device 200 will be described with reference to FIG. 4B.

[0060] When the path control device 200 receives the change notification, the container state monitoring unit 2011 starts operating as shown in FIG. 4B. The container state monitoring unit 2011 is triggered by receiving the change notification to make an inquiry to the API server 1011 and acquire container information (for example, configuration information of a K8s cluster) managed by the API server 1011. The container information includes information on all application containers running on the multiple node devices 300 included in the system. The container information may include the names, locations, number, and communication status of the application containers. The acquired container information is stored in the storage unit 202 as container status data.

[0061] When the container status monitor 2011 acquires the container information, the process is handed over to the route control unit 2012 . The route control unit 2012 generates optimal route information between multiple application containers based on network configuration information and container information. The network configuration information is information managed by the function of the routing control unit 2012 that manages the configuration of the target network. If the container information includes the communication status of each application container (for example, statistical information on the communication performed by each application container), the route control unit 2012 generates route information taking into account the communication status. When a new application container is created, the route control unit 2012 creates a new route with the application container as the source or destination. When an application container is discarded, the route control unit 2012 deletes the route with the application container as the source or destination. This allows the routing information for the entire network to be generated or updated. The routing control unit 2012 stores the generated or updated routing information as routing data.

[0062] Furthermore, the route control unit 2012 transmits data (route control data) instructing the packet forwarding route to the plurality of node devices 300 included in the network based on the generated route data. The routing control data includes, for example, a combination of a source node, a destination node, and nodes along the way.

[0063] For example, assume that there is a network as shown in Fig. 5. Nodes R1 to R6 are communication devices (for example, network switches) on a packet forwarding path. Here, it is assumed that the optimal route between the node device 300A, which is the source node of the packet, and the node device 300B, which is the destination node, is the route as shown in the figure (for example, it is assumed that node R2 is the bottleneck). The route control device 200 can grasp such nodes to be avoided and nodes to be passed through based on the container information. In this case, the route control unit 2012 generates route control data indicating that the packet should be transmitted to the node device 300B via the node R4 and the node R6, and transmits the route control data to the node device 300A. Note that the route control data may be transmitted not only to the node device 300 but also to any communication device included in the network.

[0064] 6 is a schematic diagram showing the functional modules included in the node device 300. Each of the illustrated functional modules is executed by a control unit 301.

[0065] The container management unit 3011 receives a command (container control command) to create or destroy an application container from the master device 100, and creates or deletes the application container in accordance with the container control command. The container management unit 3011 may notify the master device 100 of the result of creating or deleting an application container. The container management unit 3011 operates in the application layer of the node device 300.

[0066] The SRv6 control unit 3012 performs processing to control the transfer path of packets transmitted and received by application containers based on the path control data received from the path control device 200 . As mentioned above, in Kubernetes, multiple application containers communicate via virtual transmission paths. Therefore, the communication paths must be controlled at the network layer below the application layer.

[0067] Therefore, in this embodiment, the SRv6 control unit 3012 adds data for performing segment routing to packets sent and received by the application container. The SRv6 control unit 3012 operates at the kernel level, i.e., at a layer (for example, network layer) lower than the application layer, and can write data to the IPv6 extension header of a packet sent by the application container.

[0068] For example, in the example of Figure 5, the route control unit 2012 transmits route control data to the node device 300A instructing it to "transmit a packet whose source is the node device 300A and whose destination is the node device 300B via nodes R4 and R6." The SRv6 control unit 3012 of the node device 300A, which is the source node, stores data indicating a route via nodes R4 and R6 in the IPv6 extension header of the packet generated by the application container and sends the packet to the network. This configuration makes it possible to perform route control in the lower network layer.

[0069] When the node device 300 receives the routing control data, the SRv6 control unit 3012 starts operating as shown in FIG. The SRv6 control unit 3012 relays packets sent by application containers running in the node device 300, sets data for performing segment routing in the packets based on the route control data received from the route control device 200, and sends the packets to the network. Specifically, based on SRv6, data specifying the nodes through which the packet will pass is stored in the IPv6 extension header. Note that the IPv6 extension header may also include data specifying the processing to be performed at the nodes through which the packet will pass. This allows packets to be transmitted along arbitrary paths without affecting the data generated by applications running in the container.

[0070] Next, a flowchart of the process executed by the master device 100 and the route control device 200 will be described. FIG. 7 is a flowchart of the process executed by the master device 100 (API monitor 1013). First, in step S11, the packet collection unit collects packets sent to the API server 1011. The packets may be those sent from outside the device via the proxy 1012, or those sent directly from the built-in scheduler. Good too.

[0071] Next, in step S12, the container status detection unit determines whether the collected packet includes an HTTP request and is related to an API for operating the container. If the determination here is positive, the process proceeds to step S13. If the determination here is negative, the process ends.

[0072] In step S13, the container status detection unit acquires the API type, namespace, and container name included in the HTTP request, and generates a change notification including this information. The generated change notification is sent to the route control device 200 in step S14.

[0073] Next, a detailed description will be given of the processing executed by the route control device 200. Fig. 8 is a flowchart of the processing executed by the route control device 200 upon receiving a change notification. First, in step S21, the container status monitoring unit 2011 acquires container information. The container information can be acquired from the API server 1011 of the master device 100. This allows the route control device 200 to acquire the latest information on application containers running on multiple node devices 300. The acquired container information is reflected in the container status data. In this step, a process may be executed to identify the target node device 300 based on the namespace or container name included in the change notification.

[0074] Next, in step S22, the route control unit 2012 determines the type of API requested by the master device 100. The type of API is either "create application container" or "destroy application container."

[0075] If the API type is "Generate Application Container," the process proceeds to step S23, where the route control unit 2012 calculates and generates a new route with the newly generated application container as the source or destination, and then verifies whether the route is configurable. If the generated route can be configured (step S24-Yes), the process proceeds to step S25. If the generated route cannot be configured (step S24-No), the process returns to step S23, and the route is generated again.

[0076] If the type of API is "discard application container," the process proceeds to step S27, where the route control unit 2012 determines the route to be deleted and then verifies the appropriateness of deleting the route. If the deletion of the target route is appropriate (step S28-Yes), the process proceeds to step S25. If the deletion of the target route is not appropriate (step S28-No), the process returns to step S27, and the target route is determined again.

[0077] In step S25, the routing information for the entire network is updated based on the processing results of step S23 or S27. As a result, for example, a routing table with the newly generated application container as the source is added. Also, a routing table with the discarded application container as the source is deleted. In this step, the routing data is updated by the routing control unit 2012.

[0078] In step S26, the route control unit 2012 generates route control data based on the updated route data, and transmits the route control data to all nodes affected by the creation and destruction of the application container. The routing control data is processed by the SRv6 control unit 3012 of the node device 300. This allows segment routing to be implemented.

[0079] As described above, in the first embodiment, when a request is made to generate or destroy an application container running on multiple node devices 300, the route control device updates the route information between each node device, and based on this, instructs each node device 300 on the data transfer route.

[0080] Because the container information is managed by the master device 100, by periodically acquiring this information, it is possible to find an optimal route between each node device. However, depending on the timing of acquiring the container information, it may not be possible to properly track the life cycle of the application container. Furthermore, if the period for acquiring the container information is too short, it will result in the consumption of processing resources and communication traffic. To address this issue, in this embodiment, changes in the application container configuration are detected by listening to messages sent to the API server. This configuration makes it possible to detect changes in network conditions in real time and to reconfigure routes more quickly.

[0081] (Modification of the first embodiment) In the first embodiment, when the configuration of an application container changes, the route control device 200 updates the route information. However, there are cases where the network status changes even if the configuration of the application container does not change. Therefore, when the route control device 200 detects such a change in the network status, it may update the route information.

[0082] A change in the network status can be estimated based on, for example, statistical information received from a network switch or statistical information related to communication of application containers. The statistical information related to communication of application containers can be acquired by the API server 1011. The API server 1011 may generate container information including statistical information related to communication. The route control unit 2012 may acquire and store the container information including such statistical information.

[0083] 9 is a flowchart of a first process executed in the modified example by the route control device 200. The process shown in the figure can be executed periodically at a timing independent of the timing at which a change notification is received. First, in step S31, statistical information is acquired from the network switches included in the network. Next, in step S32, statistical information relating to communication of the application container is acquired from the API server 1011.

[0084] Next, in step S33, the route control device 200 updates the route information based on the stored statistical information and regenerates the route data. This makes it possible to detect, for example, that a large amount of communication is occurring in a certain application container, and to avoid the effects of that communication, detour the communication paths used by other application containers. The route control device 200 may detect the occurrence of a failure or congestion on the network based on statistical information related to communication of application containers, and may regenerate route data based on this.

[0085] Furthermore, when the routing control device 200 receives data directly notifying that a fault or congestion has occurred on the network, it updates the routing information and regenerates the routing data. That's fine. 10 is a flowchart of a second process executed by the route control device 200 in the modified example. The process shown in the figure is executed when the route control device 200 receives data (fault data) notifying of a network fault (e.g., congestion). The fault data may be transmitted from a network switch or the like.

[0086] First, in step S41, the target device (for example, a network switch) is identified based on the received fault data. Next, in step S42, a route affected by the failure is identified from the routes that have already been generated. Next, in step S43, in order to change the route affected by the network failure, the route information is updated and route data is regenerated.

[0087] The routing control device 200 generates routing control data based on the regenerated routing data and transmits it to the target node device 300 . In this way, the routing control device 200 may regenerate the routing data at any timing and transmit the routing control data to a plurality of node devices.

[0088] (Variation) The above-described embodiment is merely an example, and the present disclosure can be modified and implemented as appropriate within the scope that does not deviate from the gist of the disclosure. For example, the processes and means described in this disclosure can be freely combined and implemented as long as no technical contradiction occurs.

[0089] Furthermore, a process described as being performed by one device may be shared and executed by multiple devices. Alternatively, a process described as being performed by different devices may be executed by a single device. In a computer system, the hardware configuration (server configuration) by which each function is realized can be flexibly changed.

[0090] The present disclosure can also be realized by providing a computer program implementing the functions described in the above embodiments to a computer, and having one or more processors in the computer read and execute the program. Such a computer program may be provided to the computer via a non-transitory computer-readable storage medium connectable to the computer's system bus or via a network. Non-transitory computer-readable storage media include, for example, any type of disk, such as a magnetic disk (e.g., a floppy disk, a hard disk drive (HDD), etc.), an optical disk (e.g., a CD-ROM, a DVD disk, a Blu-ray disk), a read-only memory (ROM), a random access memory (RAM), an EPROM, an EEPROM, a magnetic card, a flash memory, an optical card, or any type of medium suitable for storing electronic instructions. [Explanation of symbols]

[0091] 100 Master device 200 Route control device 300 Node equipment 101, 201, 301...Control unit 102,202,302...Storage section 103,203,303···Communications Department

Claims

1. An information processing system including: a master device that commands the creation and destruction of a plurality of application containers that operate in each of a plurality of node devices; and a route control device that controls routing between the plurality of node devices, The master device receiving a first message requesting creation or destruction of the application container at a first node device of the plurality of node devices; When the first message is received, transmitting a second message indicating that a configuration of the plurality of application containers has changed to the route control device; generating container information including statistical information regarding communication status of the application container in the plurality of node devices; a first control unit that executes The route control device a second control unit that generates route information between the plurality of node devices when the second message is received; The second control unit acquiring the container information from the master device, and generating the route information based on the statistical information included in the container information; Information processing system.

2. the first control unit detects the first message from a packet received by the device itself; The information processing system according to claim 1 .

3. when the first control unit receives the first message, it transmits a third message to the first node device, instructing the first node device to generate or discard the application container; The information processing system according to claim 1 .

4. When the second control unit receives the second message, the second control unit generating the route information between the node devices in which the application container exists; The information processing system according to claim 1 .

5. the second control unit transmits first data for controlling a communication path to each of the plurality of node devices based on the path information; The information processing system according to any one of claims 1 to 4.

6. the plurality of application containers communicate via a virtual network; the first data is data for performing routing control in a physical network; The information processing system according to claim 5 .

7. The first data includes route information for performing segment routing. The information processing system according to claim 6.

8. The second control unit regenerates the route information based on the container information. The information processing system according to claim 1 .

9. the second control unit detects that congestion or a failure has occurred on the network based on the container information; The information processing system according to claim 1 .

10. the second control unit regenerates the route information when the congestion or failure is detected. The information processing system according to claim 9 .

11. An information processing method executed by a master device that commands the creation and destruction of a plurality of application containers that operate in each of a plurality of node devices, and a route control device that controls routing between the plurality of node devices, comprising: The master device: receiving a first message requesting creation or destruction of the application container at a first node device of the plurality of node devices; When the first message is received, transmitting a second message indicating that a configuration of the plurality of application containers has changed to the route control device; generating container information including statistical information regarding communication status of the application container in the plurality of node devices; Run The route control device When the second message is received, generating route information between the plurality of node devices; acquiring the container information from the master device, and generating the route information based on the statistical information included in the container information; Information processing methods.

12. the master device detects the first message from a packet received by the master device; The information processing method according to claim 11.

13. When the master device receives the first message, the master device sends a third message to the first node device to instruct the first node device to generate or discard the application container. Send, The information processing method according to claim 11.

14. when the route control device receives the second message, it generates the route information between node devices in which the application container exists, among the plurality of node devices. The information processing method according to claim 11.

15. the route control device transmits first data for controlling the communication route to each of the plurality of node devices based on the route information; 15. The information processing method according to any one of claims 11 to 14.

16. The route control device regenerates the route information based on the container information. The information processing method according to claim 11.

17. An information processing device that commands the creation and destruction of a plurality of application containers that operate in a plurality of node devices, receiving a first message requesting creation or destruction of the application container at a first node device of the plurality of node devices; When the first message is received, transmitting a second message indicating that a configuration of the plurality of application containers has changed to a route control device that generates route information between the plurality of node devices; generating container information including statistical information regarding communication status of the application container in the plurality of node devices; a control unit that executes the following: Information processing device.

18. the control unit detects the first message from a packet received by the device itself; The information processing device according to claim 17.

Citation Information

Patent Citations

  • Resource assignment management device, and service chaining system

    JP2017079352A

  • Service aware virtual private network for optimized forwarding in cloud native environment

    US20210328913A1