System, control device, control method, and program
A centralized IP address management system for edge systems allows quick and efficient switching of connection destinations, addressing the challenge of frequent service updates in edge cloud environments by optimizing load balancing and resource utilization.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-11-07
- Publication Date
- 2026-03-10
AI Technical Summary
In edge cloud environments using Kubernetes, frequent service updates require time-consuming gateway reconfiguration, making it difficult to quickly switch connection destinations.
A control device manages IP addresses centrally, assigning the same IP address to the same service across multiple edge systems, and controls gateways to facilitate seamless switching of connection destinations based on load and resource availability.
Enables rapid and efficient switching of edge systems in response to service updates, reducing performance degradation and service outages by optimizing load balancing and resource utilization.
Smart Images

Figure 0007826906000001 
Figure 0007826906000002 
Figure 0007826906000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a system, a control device, a control method, and a program. [Background technology]
[0002] In a system consisting of multiple edge servers, it has been proposed that a transit IP network routes a processing request from a client to a service instance of an appropriate edge server (Non-Patent Document 1, etc.). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 2019-41266 [Patent Document 2] Japanese Patent Application Publication No. 2019-144864 [Patent Document 3] Patent Publication No. 2021-10130 [Patent Document 4] Japanese Patent Publication No. 2022-54417 [Non-patent literature]
[0004] [Non-Patent Document 1] Li, Yizhou, et al. "Dyncast: Use Dynamic Anycast to Facilitate Service Semantics Embedded in IP address." 2021, IEEE 22nd International Conference on High Performance Switching and Routing (HPSR). IEEE, 2021. Summary of the Invention [Problem to be solved by the invention]
[0005] However, conventional technologies are based on the assumption that edge server services (or the common IP addresses assigned to the services) exist in an environment where they are unique and fixed. In an edge cloud environment using Kubernetes or similar, an IP address for accessing the service is assigned independently to each edge. To expose a service to the outside world, a gateway must be configured to forward access to a specified port number for the IP address of the external connection gateway to the IP address of the service. When services are updated frequently, configuring such a gateway is time-consuming, making it difficult to quickly switch connection destinations.
[0006] One aspect of the present disclosure aims to provide a new method for easily switching the edge system to which a client terminal connects in a system in which multiple edge systems provide the same service. [Means for solving the problem]
[0007] One aspect of the present disclosure is a plurality of edge systems each providing at least one common service; a control device that controls the plurality of edge systems; A system comprising: The control device a management means for managing IP addresses of services provided in the plurality of edge systems, the management means being configured to assign the same IP address to the same service in the plurality of edge systems; a deployment means for releasing a service to the plurality of edge systems; a selection means for selecting, for each service, an edge system to which a client terminal should connect; a transfer control means for controlling a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected so that the client terminal can communicate with the selected edge system when accessing the service; The system is provided with:
[0008] Another aspect of the present disclosure is A control device in a system including a plurality of edge systems in which the same IP address is assigned to a common service, a selection means for selecting, for each service, an edge system to which a client terminal should connect; a transfer control means for controlling a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected so that the client terminal can communicate with the selected edge system when accessing a service; The control device is provided with:
[0009] Another aspect of the present disclosure is an address allocation step of allocating the same IP address to the same service provided by a plurality of edge systems; a deploying step of releasing the service to the edge systems and controlling the IP addresses to be assigned to the service; a selection step of selecting, for each service, an edge system to which the client terminal should connect; a transfer control step of controlling a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected so that the client terminal can communicate with the selected edge system when accessing the service; The control method includes:
[0010] Another aspect of the present disclosure is A control method for a system including a plurality of edge systems in which the same IP address is assigned to a common service, comprising: a management step of managing IP addresses of services provided in a plurality of edge systems; a selection step of selecting, for each service, an edge system to which the client terminal should connect; a transfer control step of controlling a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected so that the client terminal can communicate with the selected edge system when accessing the service; Top and The control method includes: [Effects of the Invention]
[0011] According to aspects of the present disclosure, it is possible to automatically switch the connected edge system in conjunction with a service update in the edge system. [Brief explanation of the drawings]
[0012] [Figure 1] FIG. 1 is a functional configuration diagram of a system according to an embodiment. [Figure 2] FIG. 1 is a hardware configuration diagram of a system according to an embodiment. [Figure 3] 10 is a flowchart of a process performed by a controller at the time of service release. [Figure 4] FIG. 4 is a sequence diagram of a process performed at the time of service release in the first embodiment. [Figure 5] 10 is an example of an address management table that stores services and cluster IP addresses in association with each other. [Figure 6] 10 is an example of a connection management table that stores connection settings for each service. [Figure 7] 10 is a flowchart of a process performed by a controller after a service release. [Figure 8] FIG. 4 is a sequence diagram of processing performed after service release in the first embodiment. [Figure 9] FIG. 10 is a sequence diagram of a process performed at the time of service release in the second embodiment. [Figure 10]FIG. 10 is a sequence diagram of processing performed after service release in the second embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0013] In recent years, system architectures using container virtualization, a lightweight virtualization technology, and container orchestration software have become popular. Such system architectures enable agile and flexible development and operation. In particular, by adopting a microservices architecture, in which individual functions are provided as microservices using containers, it is possible to release new services to the production environment multiple times a day.
[0014] Edge servers have limited available resources compared to public clouds, making them well suited to lightweight virtualization technology. Therefore, it is expected that system architectures using containers and container orchestration software will be widely adopted in edge servers in the future.
[0015] Container orchestration software typically assigns IP addresses for accessing services independently and randomly to each edge. For example, Kubernetes, which is widely used as the de facto standard for container orchestration software, randomly assigns a cluster IP address for accessing services to each Kubernetes cluster (corresponding to an edge). To expose a service to the outside world in such an environment, the gateway must be configured to forward access to a specified port number for the IP address of the external connection gateway to the cluster IP address.
[0016] In such an environment, if services are frequently updated (created and deleted), the time and effort required to configure the gateway makes system operation difficult. Therefore, this embodiment provides a method that enables automatic and rapid switching of connected services in conjunction with service updates in the above-mentioned environment.
[0017] One embodiment of the present disclosure is a system including a plurality of edge systems each providing at least one common service, and a control device that controls the plurality of edge systems, wherein the control device includes a management means for managing IP addresses of services provided by the plurality of edge systems, the management means assigning the same IP address in the plurality of edge systems to the same service, a deployment means for releasing services to the plurality of edge systems, a selection means for selecting, for each service, an edge system to which a client terminal should connect, a client-side gateway to which the client terminal connects so that the client terminal can communicate with the selected edge system when accessing the service, and a gateway to which the selected edge system connects. and a transfer control means for controlling the edge-side gateway.
[0018] According to this embodiment, the same IP address is assigned to the same service in multiple edge systems. Therefore, by changing the settings of the client-side gateway and the edge-side gateway using the transfer control means, when a client terminal accesses a service, it can communicate with the selected edge system. In this way, according to this embodiment, it is possible to easily switch the edge system to which a client terminal connects.
[0019] In this embodiment, each edge system may provide the service by, for example, executing a containerized application, or may provide the service in another manner. Furthermore, each edge system may be a cluster system composed of multiple computers coupled to operate as a single system, or may be a system composed of a single computer. One example of an edge system is an edge Kubernetes cluster composed of multiple computers and managed by container orchestration software such as Kubernetes.
[0020] The management means in this embodiment assigns the same IP address to the same service provided by multiple edge systems. The method of determining the IP address to be assigned is not particularly limited. A typical method is to select one of the available addresses from a specific address range, but the present disclosure is not limited to this. The management means stores the IP addresses assigned to each service.
[0021] In this embodiment, the deployment unit transmits a service creation request to the edge system, the request including the service to be deployed and the IP address to be assigned to the service. In response to the service creation request, the edge system controls the deployment of the service and the assignment of the IP address to the service.
[0022] In this embodiment, the selection means selects an edge system to which a client terminal should connect for each IP address or service. This selection can be performed based on the load or available resources of the multiple edge systems. The load or available resources of an edge system can be acquired, for example, by a monitoring means. Examples of load include the number of requests per unit time, the number of required CPUs or CPU time, or the amount of required memory. Examples of available resources include the value obtained by subtracting the actual number of requests per unit time from the number of requests that can be stably processed per unit time, the number of available CPUs or CPU time, or the amount of available memory. The selection of an edge system can be performed, for example, by preferentially selecting an edge system with a low load or many available resources. "Preferential selection" means that, other conditions being equal, an edge system with a lower load or many available resources is selected. Note that the selection can also be performed based on other indicators. In such cases, an edge system with a higher load or few available resources may be selected due to the influence of other indicators. Examples of other indicators include the physical distance between gateways or communication delay time. By selecting an edge system to connect in this manner, appropriate load balancing is possible.
[0023] In this embodiment, monitoring by the monitoring means may be performed continuously, i.e., periodically, or may be performed each time a service is released by the deployment means. Furthermore, each time a monitoring result is obtained by the monitoring means, the selection means may select an edge system to connect to, and if the edge system to connect to needs to be changed in the selection, control may be further performed by the transfer control means. The edge system to connect to needs to be changed, for example, when the edge system selected as the edge system to which the client terminal should connect becomes overloaded, i.e., the load is above a threshold or the available resources are below a threshold. By monitoring and changing the connection destination in this way, the edge system to which the connection destination is made can be quickly changed every time the load situation in the edge system changes, thereby preventing performance degradation and processing stoppage in the edge system.
[0024] The transfer control means in this embodiment may connect the gateways by, for example, setting up a tunnel connection between a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected. Another example of a method is to change the routing settings of the client-side gateway, the edge-side gateway, and the router of the IP network connecting these gateways.
[0025] The management means, deployment means, selection means, and transfer control means of the control device in this embodiment may be provided as different devices or by different administrators. As an example, the control device may be configured to include a selection means and a transfer control means. For example, a control device according to an embodiment of the present disclosure is a control device that controls a plurality of edge systems in a system including multiple edge systems, each of which provides at least one common service and the same IP address is assigned to the common service. The control device is characterized by including: a selection means that selects, for each service, an edge system to which a client terminal should connect; a client-side gateway to which the client terminal connects so that the client terminal can communicate with the selected edge system when accessing the service; and a transfer control means that controls the edge-side gateway to which the selected edge system connects.
[0026] Furthermore, one embodiment of the present disclosure includes a control method performed by the above-described control device, and a program for causing a computer to execute the control method.
[0027] Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. The configurations of the following embodiments are examples, and the present disclosure is not limited to the configurations of the embodiments.
[0028] First Embodiment (System Configuration) FIG. 1 is a functional configuration diagram of a system 10 according to the first embodiment. As shown in FIG. 1, the system 10 includes a controller 100 and multiple edge Kubernetes clusters 200a and 200b. An edge Kubernetes cluster is a collection of nodes (computers) that run containerized applications and provides multiple services. Client terminals 400a and 400b access the services via client gateways 300a and 300b and edge gateways 240a and 240b. The controller 100 is connected to each of the edge Kubernetes clusters 200a and 200b and manages these edge Kubernetes clusters 200a and 200b.
[0029] In the following description, when multiple similar components are referred to without any particular distinction, the subscripts will be omitted. For example, when there is no need to distinguish between the edge Kubernetes clusters 200a and 200b, they will simply be referred to as the edge Kubernetes cluster 200.
[0030] (controller) The controller 100 is responsible for managing the edge Kubernetes clusters 200a and 200b, particularly for deploying services and controlling the network between the clusters. As shown in FIG. 1, the controller 100 includes a service deployment unit 110, an IP address management unit 120, a transfer control unit 130, a connection destination selection unit 140, and a monitoring unit 150. FIG. 2 is a hardware configuration diagram of a computer (information processing device) 20 that executes the controller 100. The computer 20 includes a CPU 21, a main storage device such as RAM, and auxiliary storage devices such as SSDs and HDDs. The controller 100 is configured by connecting an auxiliary storage device 23, a communication device 24, and an input / output device 25 to a bus. The CPU 21 loads a computer program stored in the auxiliary storage device 23 into the main storage device 22 and executes it, thereby realizing each functional unit of the controller 100 described above. The controller 100 may be realized by a plurality of computers, or may be realized by computers (nodes) that make up an edge Kubernetes cluster, which will be described later.
[0031] The service deployment unit 110 receives requests from edge service developers and operators and simultaneously releases specified services 231, 232 to all edge Kubernetes clusters 200. The IP address management unit 120 centrally manages cluster IPs (IP addresses) assigned to each service. The transfer control unit 130 sets up a tunnel connection (for example, LISP (Locator / Identity Separation Protocol)) between the client gateway 300 to which the client terminal 400 connects and the edge gateway 240 selected by the connection destination selection unit 140. The monitoring unit 150 monitors load information of each edge Kubernetes cluster 200. Details of these functional units will be described later.
[0032] (Edge Kubernetes cluster) An edge Kubernetes cluster (hereinafter also simply referred to as an edge cluster) 200a is a collection of nodes that run containerized applications. The configuration of the nodes (computers) that make up the edge cluster 200a is similar to that of the computer 20 shown in FIG. 2, so a description thereof will be omitted. The edge cluster 200a is made up of one or more master nodes and multiple worker nodes, and includes a Kube-apiserver 210a, multiple pods 221a to 224a, multiple services 231a and 232a, and an edge gateway 240a.
[0033] Kube-apiserver 210a is an API server that manages the resources of edge cluster 200a. The edge gateway 240a is a gateway router that connects the edge cluster 200a to an external IP network (e.g., the Internet). The pods 221a to 224a are a set of one or more containers deployed to one node. The services 231a and 232a are logical entities that expose applications running in one or more pods to the outside world as network services. The services 231a and 232a are assigned a cluster IP (IP address). The edge gateway 240a is a gateway router that connects the edge cluster 200a to an external IP network (e.g., the Internet).
[0034] The configuration of the edge Kubernetes cluster 200b is similar to the configuration of the edge Kubernetes cluster 200a, and therefore a repeated description will be omitted. In this embodiment, it is assumed that the services provided by the edge Kubernetes clusters 200a and 200b are completely common, but the provided services do not need to be completely identical as long as at least one common service is provided by the edge Kubernetes clusters 200a and 200b.
[0035] The client gateways 300a and 300b are gateway routers for connecting client terminals to an external IP network. If the external IP network is a cellular network, the client gateways 300a and 300b are located adjacent to the eNodeB / gNodeB.
[0036] The client terminals 400a and 400b are computers that access services provided by the edge cluster. An example of the client terminals 400a and 400b is an in-vehicle terminal. For example, the in-vehicle terminal transmits various sensor data acquired during driving to the edge cluster. By processing the data in the edge cluster, which is located between the client terminal and the cloud, low-latency responses and reduced relay traffic can be achieved.
[0037] (Processing at the time of service release) The following describes the processing performed in the system 10 according to this embodiment at the time of service release. 3 and 4 are a flowchart and a sequence diagram, respectively, showing the flow of processing when a service is released. Here, the case of creating a service is taken as an example, but the same applies to updating or deleting a service. Note that the process numbers in Figures 3 and 4 correspond to each other, and in Figure 4, the process numbers of processes corresponding to those in Figure 3 are given subscripts such as a or b to indicate that they are elements of the processes shown in Figure 3.
[0038] In step S11 (S11a), the service deployment unit 110 receives a request to generate an edge service from the operator 40. The edge service generation request includes a service name and a container image. The edge service generation request may include a storage location of the container image instead of the container image itself.
[0039] In step S12, the controller 100 generates a cluster IP for the service. More specifically, the processing of step S12 includes the following processes: In S12a, the service deployment unit 110 notifies the IP address management unit 120 of a cluster IP generation request including the service name. The IP address management unit 120 assigns a cluster IP to the service name. A typical assignment method is to select one of the available addresses from a pre-specified address range. In step S12c, the IP address management unit 120 notifies the service deployment unit 110 of a cluster IP generation response including the generated cluster IP. The IP address management unit 120 creates or updates the address management table 50 shown in FIG. 5 and stores it in memory. The address management table 50 holds the correspondence between service names 51 and cluster IPs 52.
[0040] In step S13, the controller 100 generates a service. More specifically, the process in step S13 includes the following processes: In step S13a, the service deployment unit 110 notifies each edge cluster 200 (200a, 200b) of a service generation request. The service generation request includes a service name, a container image, and a cluster IP. In step S13b, the edge cluster 200 (kube-apiserver 210 ) deploys the container to the cluster and assigns the specified cluster IP. In step S13c, the edge cluster 200 notifies the service deployment unit 110 of the service creation response. Note that the processing of steps S13a to S13c is executed for all edge clusters 200 included in the system 10.
[0041] The following processing in steps S14 and S15 is executed for all client gateways 300 included in the system 10. In the following description, the client gateway 300 selected as the processing target is referred to as the "target client gateway."
[0042] In step S14, the controller 100 selects a destination edge cluster for the service. More specifically, the processing of step S14 includes the following processes. In step S14a, the service deployment unit 110 notifies the destination selection unit 140 of a destination selection request including the cluster IP of the service and (the IP address of) the target client gateway 300. In step S14b, the destination selection unit 140 notifies the monitoring unit 150 of a load information request. In step S14c, the destination selection unit 140 acquires load information of each edge cluster 200 and notifies the destination selection unit 140 of the load information response. The load information of the edge cluster 200 may be the load on the edge cluster 200 or the available resources of the edge cluster 200. Examples of the load include the number of requests per unit time, the number of required CPUs or CPU time, or the required memory amount. Examples of available resources include the value obtained by subtracting the actual number of requests per unit time from the number of requests that can be stably processed per unit time, the number of available CPUs or CPU time, or the amount of available memory. The connection destination selection unit 140 selects an edge cluster to connect to for the service based on the obtained load information. The edge cluster selection can be performed, for example, by preferentially selecting an edge cluster with a low load or a large amount of available resources. "Preferential selection" means that, other conditions being equal, an edge cluster with a lower load or a larger amount of available resources is selected. Note that the selection may be performed based on other indicators as well. In such cases, an edge cluster with a higher load or fewer available resources may be selected due to the influence of other indicators. Examples of other indicators include the physical distance between gateways or communication delay time. Selecting an edge cluster to connect to in this manner enables appropriate load balancing. In step S14e, the connection destination selection unit 140 notifies the service deployment unit 110 of a connection destination selection response including the IP address of the edge gateway 240 of the selected edge cluster 200.
[0043] In step S15, the controller 100 configures the target client gateway to forward access to the service to the edge gateway 240 of the selected edge cluster 200. In this embodiment, the controller 100 configures a tunnel connection between these gateways. The process of step S15 includes the following processes in more detail: In step S15a, the service deployment unit 110 notifies the forwarding control unit 130 of a tunnel configuration request including the gateway 240 of the selected edge cluster 200, the target client gateway 300, and the cluster IP. In step S15b, the forwarding control unit 130 notifies the selected edge gateway 240 of the target client gateway 300 and the cluster IP, and requests the target client gateway 300 to configure a tunnel. In response to this, the edge gateway 240 configures the target client gateway 300 to create a tunnel connection for communication using the cluster IP. In addition, in step S15c, the forwarding control unit 130 notifies the target client gateway 300 of the selected edge gateway 250 and the cluster IP, and requests the target client gateway 300 to configure a tunnel for the selected edge gateway. In response to this, the client gateway 300 makes a setting to create a tunnel connection for communication using the cluster IP with the selected edge gateway 240. Through these processes, the setting of the tunnel connection between the target client gateway 300 and the selected edge gateway 240 is completed.
[0044] The service deployment unit 110 stores information indicating which client gateway 300 and which edge gateway 240 a tunnel connection has been established between in a connection management table 60 shown in FIG. 6. The connection management table 60 stores the correspondence between a service name 61, a client gateway 62, and an edge gateway 63. In the example of FIG. 6, for "service A," tunnel connections are established between client gateway "G3" and edge gateway "G1," and between client gateway "G4" and edge gateway "G2." In this example, access to "service A" via client gateway "G3" is forwarded to edge gateway "G1" (i.e., the edge system having that edge gateway). Also, access to "service A" via client gateway "G4" is forwarded to edge gateway "G2" (i.e., the edge system having that edge gateway).
[0045] When the processing of steps S14 and S15 is completed for all client gateways, the service deployment unit 110 notifies the operator 40 that the edge service generation is complete (step S11b). This completes the release of the service and the initial tunnel setup between the gateways.
[0046] (Processing after service release) Next, the processing performed in the system 10 according to this embodiment after service release will be described. FIGS. 7 and 8 are a flowchart and a sequence diagram, respectively, showing the flow of processing after service release. The sequence diagram in FIG. 8 shows the processing flow when, in a situation where access to service A (cluster IP) is being forwarded to edge cluster 200a, an overload occurs in edge cluster 200a and the settings are changed to forward access to edge cluster 200b. Note that the processing numbers in FIGS. 7 and 8 correspond to each other, and in FIG. 8, the processing numbers of processes corresponding to those in FIG. 7 are given subscripts such as a or b to indicate that they are elements of the processing shown in FIG. 7.
[0047] In step S21, the controller 100 continuously collects load information of the edge clusters. The load information may be collected periodically, for example. Specifically, in steps 21a and 21b, the load information collection process involves the edge clusters 200a and 200b periodically notifying the monitoring unit 150 of their load information, i.e., information on the load or available resources. This notification may be made spontaneously by the edge cluster 200, or may be made in response to an inquiry from the monitoring unit 150.
[0048] In step S22, the controller 100 determines whether it is necessary to change the connection destination in the currently set tunnel connection. More specifically, the processing in step S22 includes the following processes: In step S22a, the monitoring unit 22a detects the occurrence of an overload in any edge cluster. An overload can be determined to have occurred when the load on the edge cluster is equal to or greater than a threshold or when the available resources are less than a threshold. When an overload is detected, in step S22b, the monitoring unit 150 notifies the service deployment unit 110 of an overload occurrence notification indicating which edge cluster the overload occurred in.
[0049] In step S23, the controller 100 selects a new destination edge cluster for a tunnel connection whose destination needs to be changed. The process of step S23, in more detail, includes the following processes. In step S23a, the service deployment unit 110 refers to the connection management table 60 (FIG. 6) to identify a tunnel connection whose destination needs to be changed. For example, if an overload occurs in the edge cluster 200a, the service deployment unit 110 determines that the tunnel connection for which the edge gateway 240a of the edge cluster 200a is selected in the connection management table 60 is the tunnel connection that needs to be changed. In step S23b, the service deployment unit 110 notifies the destination selection unit 140 of a destination edge selection request including the target client gateway and the target cluster IP. The target client gateway can be obtained from the connection management table 60, and the target cluster IP can be obtained from the address management table 50 (FIG. 5). In step S23c, the connection destination selection unit 140 requests load information from the monitoring unit 150, and in step S23d, the monitoring unit 150 notifies the connection destination selection unit 140 of the load information of each edge cluster. In step S23e, the connection destination selection unit 140 selects a new connection destination edge cluster based on the load information. The selection method may be the same as when the service was released, but the same criteria do not necessarily need to be adopted. In step S23f, the connection destination selection unit 140 notifies the service deployment unit 110 of a connection destination selection response including the selected edge cluster.
[0050] In step S24, the controller 100 sets up a tunnel connection between the gateways so that access to the service from the target client gateway is forwarded to the edge gateway of the newly selected edge cluster. In this embodiment, the controller 100 sets up a tunnel connection between these gateways. More specifically, the process of step S24 includes the following processes. In step S24a, the service deployment unit 110 creates a tunnel connection including the gateway of the newly selected edge cluster, the target client gateway, and the cluster IP. In steps S24b and S24c, the forwarding control unit 130 notifies the newly selected edge gateway and the target client gateway, respectively, and causes these gateways to set up a tunnel connection. In step S24d, the service deployment unit 110 notifies the forwarding control unit 130 of a tunnel connection deletion request including the old edge gateway, the target client gateway, and the cluster IP. In steps S24e and S24f, the forwarding control unit 130 notifies the old edge gateway and the target client gateway, respectively, and causes these gateways to delete the tunnel connection. Through the above processing, the old tunnel connection is deleted, a new tunnel connection is set up, and access from the client terminal 400 using the service name (cluster IP) is forwarded to the newly selected edge gateway and further to the edge system.
[0051] The above-mentioned processing from step S23a onwards is executed for all existing tunnel connections that are determined to need to be changed.
[0052] (Advantageous Effects of the Present Embodiment) According to this embodiment, when a new service is released, the same cluster IP (IP address) is assigned to that service in all edge clusters. Therefore, by setting up an appropriate tunnel connection between gateways, access from a client terminal using the service name or cluster IP can be forwarded to the desired edge cluster. In addition, because the process for forwarding settings is simple, new services can be frequently released.
[0053] Furthermore, because the connection destination is selected each time a service is released (created, updated, or deleted), and overload monitoring is performed periodically after a service is released, the forwarding settings can be changed quickly and at the appropriate time, ensuring that the forwarding settings are always appropriate. Even if an edge system experiences an overload due to concentrated access, the access forwarding destination can be quickly switched, reducing the possibility of performance degradation or service outages in the edge system.
[0054] Second Embodiment In the first embodiment, a tunnel connection is used to forward access from the client terminal 400 to a specific service (cluster IP) to the connected edge cluster 200. In this embodiment, IP network routing settings are used to forward access from the client terminal 400 to a specific service (cluster IP) to the connected edge cluster 200.
[0055] The basic configuration of the system according to this embodiment is the same as that of the first embodiment (FIG. 1), so a description thereof will be omitted.
[0056] The processing performed in this embodiment at the time of service release is basically the same as that in the first embodiment (FIG. 3), except for the details of step S15. FIG. 9 is a sequence diagram of the processing performed at the time of service release in this embodiment.
[0057] The operations from step S11 to step S14 are the same as those in the first embodiment, and therefore description thereof will be omitted. In step S15 of this embodiment, the controller 100 configures each router in the IP network so that an IP packet having a destination IP address of a cluster IP, which is sent from the client gateway 300 to which the client terminal 400 is connected, is routed to the edge gateway 240 of the edge cluster 200 selected in step S14d. More specifically, the processing of step S15 includes the following processes. In step S15e, the service deployment unit 110 configures all routers in the IP network and the cluster IP of the service to be configured. The transfer control unit 130 notifies the transfer control unit 130 of a routing setting request including P. In step S15f, the transfer control unit 130 notifies the selected edge gateway of the target client gateway and cluster IP, and configures the target client gateway to forward communications using the cluster IP to the target client gateway. In step S15g, the transfer control unit 130 notifies the target client gateway of the selected edge gateway and cluster IP, and configures the target client gateway to forward communications using the cluster IP to the selected edge gateway. In step S15h, the transfer control unit 130 configures all routers 500 (excluding gateways) in the IP network to forward communications using the cluster IP from the target client gateway between the client gateway and the selected edge gateway. In this way, routing settings in the IP network are completed, and access from client terminals using the cluster IP is now forwarded to the selected edge cluster.
[0058] The processing performed in this embodiment after service release is basically the same as that in the first embodiment (FIG. 7). However, the details of step S24 are different. FIG. 10 is a sequence diagram of the processing performed after service release in this embodiment. The sequence diagram in FIG. 10 shows the flow of processing when an overload occurs in edge cluster 200a.
[0059] The operations from step S21 to step S23 are basically the same as those in the first embodiment, and therefore will not be described again. However, in step S23a′, the service deployment unit 110 identifies a network section in which the routing setting needs to be changed, instead of identifying a tunnel connection in which the forwarding setting needs to be changed.
[0060] In step S24 of this embodiment, the controller 100 changes the settings of routers in the IP network so that access from some of the client gateways 300a connected to a service on the edge cluster where an overload has been detected is connected to a service on another edge cluster gateway where an overload is not occurring. More specifically, the processing of step S24 includes the following processes. In steps S24i, S24j, S24k, and S24m, the forwarding control unit 130 configures the edge gateway 240a, the edge gateway 240b, the client gateway 300a, and all routers 500 (excluding gateways) in the IP network so that communication using the cluster IP from the target client gateway 300a is forwarded between the client gateway 300a and the selected edge gateway 240b.
[0061] As in this embodiment, by changing the routing settings of the IP network, it is possible to forward access using a cluster IP to a desired edge cluster, and it is possible to obtain the same effects as in the first embodiment.
[0062] <Other variations> 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.
[0063] The processes and means described in this disclosure can be freely combined and implemented as long as no technical contradiction occurs.
[0064] 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.
[0065] 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]
[0066] 100: Controller, 110: Service deployment unit, 120: IP address management unit, 130: Transfer control unit, 140: Connection destination selection unit, 150: Monitoring unit 200a, 200b: Edge Kubernetes cluster 240a, 240b: Edge gateway 300a, 300b: Client gateway 400a, 400b: Client terminal
Claims
1. a plurality of edge systems each providing at least one common service; a control device that controls the plurality of edge systems; A system comprising: The control device a management means for managing IP addresses of services provided in the plurality of edge systems, the management means being configured to assign the same IP address to the same service in the plurality of edge systems; a deploying means for sending a service creation request to the plurality of edge systems; a selection means for selecting, for each service, an edge system to which a client terminal should connect; a transfer control means for controlling a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected so that the client terminal can communicate with the selected edge system when accessing the service; Equipped with the deployer, in response to receiving a service creation request including information for identifying a service, includes an IP address assigned to the service by the management unit in the service creation request and transmits the request to the edge systems; each of the plurality of edge systems deploys the service and sets the IP address to the service based on the service creation request; system.
2. the transfer control means sets up a tunnel connection between a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected. The system of claim 1 .
3. The control device further includes a monitoring unit that monitors loads or available resources of the edge systems, The selection means selects a first edge system based on loads or available resources of the plurality of edge systems. Selecting an edge system to which the client terminal should connect; The system of claim 1 .
4. the selection means preferentially selects an edge system having a low load or a large amount of available resources. The system of claim 3 .
5. the monitoring means continuously monitors the loads or the available resources of the edge systems; Based on the results of the monitoring, the selection unit selects an edge system to be connected, and the transfer control unit performs control. The system of claim 3 .
6. the monitoring means monitors the loads or the available resources of the edge systems every time the deploying means releases the service; Based on the results of the monitoring, the selection unit selects an edge system to be connected, and the transfer control unit performs control. The system of claim 3 .
7. Each of the edge systems is a cluster system configured with a plurality of computers and providing the service by executing a containerized application. A system according to any one of claims 1 to 6.
8. A control device in a system including a plurality of edge systems in which the same IP address is assigned to a common service, a management means for managing IP addresses of services provided in the plurality of edge systems, the management means being configured to assign the same IP address to the same service in the plurality of edge systems; a deploying means for, in response to receiving a service creation request including information for identifying a service, transmitting the service creation request to the plurality of edge systems, the service creation request including an IP address assigned to the service by the managing means; a selection means for selecting, for each service, an edge system to which a client terminal should connect; a transfer control means for controlling a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected so that the client terminal can communicate with the selected edge system when accessing a service; A control device comprising:
9. the transfer control means sets up a tunnel connection between a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected. The control device according to claim 8.
10. further comprising a monitoring means for monitoring loads or available resources of the plurality of edge systems; the selection means preferentially selects an edge system having a low load or a large amount of available resources. The control device according to claim 9.
11. the monitoring means continuously monitors the loads or the available resources of the edge systems; Based on the results of the monitoring, the selection unit selects an edge system to be connected, and the transfer control unit performs control. The control device according to claim 10.
12. the monitoring means monitors the loads or the available resources of the edge systems every time a service provided in the edge systems is updated; Based on the results of the monitoring, the selection unit selects an edge system to be connected, and the transfer control unit sets control. The control device according to claim 10.
13. an address allocation step of allocating the same IP address to the same service provided in a plurality of edge systems; a deploying step of, in response to receiving a service creation request including information for identifying a service, transmitting a service creation request including an IP address assigned to the service in the address assigning step to the plurality of edge systems, thereby controlling each of the plurality of edge systems to deploy the service and set the IP address to the service; a selection step of selecting, for each service, an edge system to which the client terminal should connect; a transfer control step of controlling a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected so that the client terminal can communicate with the selected edge system when accessing the service; A control method comprising:
14. In the transfer control step, a tunnel connection is established between a client-side gateway to which the client terminal is connected and an edge-side gateway to which the selected edge system is connected. The control method according to claim 13.
15. The method further includes a monitoring step of monitoring the load or available resources of the plurality of edge systems continuously or each time the service is released to the plurality of edge systems; In the selection step, an edge system having a low load or a large amount of available resources is preferentially selected. The control method according to claim 13.
16. A program for causing a computer to execute each step of the control method according to any one of claims 13 to 15.
Citation Information
Patent Citations
System and method for load distribution
JP2016144144A
Software-Defined Data Center, and Service Cluster Scheduling Method and Traffic Monitoring Method Therefor
JP2018504038A
Communication system and method
JP2019041266A
Edge computing system, edge server, system control method, and program
JP2019144864A
Edge system, control method edge system, computer program used to control edge system, and recording medium thereof
JP2021010130A