KR20220000592A - Method and device of dynamic resource allocation for container-based applications for iot edge computing infrastructure - Google Patents
Method and device of dynamic resource allocation for container-based applications for iot edge computing infrastructure Download PDFInfo
- Publication number
- KR20220000592A KR20220000592A KR1020200078413A KR20200078413A KR20220000592A KR 20220000592 A KR20220000592 A KR 20220000592A KR 1020200078413 A KR1020200078413 A KR 1020200078413A KR 20200078413 A KR20200078413 A KR 20200078413A KR 20220000592 A KR20220000592 A KR 20220000592A
- Authority
- KR
- South Korea
- Prior art keywords
- edge node
- iot
- application
- edge
- dynamic resource
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
Abstract
Description
본 발명은, 클라이언트의 요청 트래픽 상태를 고려하여, 각 엣지노드로의 요청량에 비례하도록 응용 서비스(application)의 복제본을 분배하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치에 관한 것이다.The present invention provides a container-based dynamic resource distribution method and apparatus for an IoT edge computing environment that distributes copies of application services in proportion to the amount of requests to each edge node in consideration of the client's request traffic status. it's about
특히, 본 발명에서는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라, 응용 서비스의 복제본의 개수를 동적으로 조정 함으로써, 시스템 전체 처리량을 개선시키는 기술을 제공할 수 있게 한다.In particular, in the present invention, it is possible to provide a technology for improving the overall system throughput by periodically monitoring the client's real-time status and dynamically adjusting the number of copies of the application service according to the requested resource for each edge node. .
근래에는, 수많은 사물인터넷(IoT) 기기에서 많은 양의 데이터가 생성되고 있으며, IoT 기기 수는 현재 200억대에서 2023년대에는 약 300억대까지 증가할 것으로 전망되고 있다.In recent years, a large amount of data is being generated from numerous Internet of Things (IoT) devices, and the number of IoT devices is expected to increase from 20 billion units at present to about 30 billion units in 2023.
또한, 클라우드 컴퓨팅 환경에서는, 다양한 IoT 기기에서 생성된 대규모의 데이터가 인터넷을 통해, 중앙 집중식 서버로 전송되어 처리된다.In addition, in a cloud computing environment, large-scale data generated by various IoT devices is transmitted and processed through the Internet to a centralized server.
이러한 트래픽 패턴은 네트워크의 높은 대역폭을 요구할 뿐만 아니라, 트래픽의 처리 과정에 따른 지연시간을 수반하게 되어, 실시간성에 민감한 증강현실, 지능형 교통 시스템, 스마트 시티 등과 같은 IoT 응용 서비스의 품질을 저하시킬 수 있다.This traffic pattern not only requires a high bandwidth of the network, but also accompanies a delay time according to the traffic processing process, which can reduce the quality of IoT application services such as augmented reality sensitive to real-time, intelligent transportation system, and smart city. .
포그 컴퓨팅 기술로도 일컫는 엣지 컴퓨팅 기술은, 클라우딩 컴퓨팅의 중앙 집중식 전송에 따른 문제를 개선할 수 있는 새로운 컴퓨팅 패러다임으로, IoT 기기와 가까운 곳에 연산 자원을 배치 함으로써, 분석을 가속화하고 응용 서비스의 처리지연시간을 낮추는 등 여러 가지 이점을 제공할 수 있다.Edge computing technology, also referred to as fog computing technology, is a new computing paradigm that can improve the problems caused by centralized transmission of cloud computing. By placing computational resources close to IoT devices, it accelerates analysis and processes application services It can provide several benefits, including lower latency.
즉, 엣지 컴퓨팅 기술은 데이터를 클라우드로 전송하는 대신, 엣지 컴퓨팅 자원을 통해 지연시간을 낮추고, 네트워크 전체의 트래픽 양을 줄일 수 있다. 또한, 엣지 컴퓨팅 기술은 엣지 컴퓨팅의 연산 자원을 활용함으로써 클라우드 연산자원의 부담을 줄일 수 있다.In other words, edge computing technology can lower latency and reduce the amount of traffic across the network through edge computing resources instead of sending data to the cloud. In addition, edge computing technology can reduce the burden of cloud operator resources by utilizing the computing resources of edge computing.
엣지 컴퓨팅 환경에서는 응용서비스의 동적 배포 및 자원관리의 용이성을 고려하여 컨테이너를 사용하고 있다. 상기 컨테이너는 가상머신(VM, Virtual Machine) 처럼 전체 운영체제로 구성하는 대신, 어플리케이션과 관련한 라이브러리로 구성된 번들 패키지로 구성되어, 효율적이고 가벼워 빠른 배포를 가능하게 한다라는 장점을 가지고 있다. In the edge computing environment, containers are used in consideration of dynamic distribution of application services and ease of resource management. The container is composed of a bundle package composed of application-related libraries instead of the entire operating system like a virtual machine (VM, Virtual Machine), and has the advantage of enabling efficient, light and fast deployment.
그러나 엣지 컴퓨팅 기술에서는 컨테이너 간 리소스를 효율적으로 배포하고 관리하기 위한 도구를 필요로 한다.However, edge computing technology requires tools to efficiently deploy and manage resources between containers.
쿠버네티스(Kubernetes, K8S)는 이를 위한 오픈소스 기반 컨테이너 오케스트레이션(Container Orchestration) 플랫폼으로, 주로 엣지 컴퓨팅 기술의 인프라 구축을 위하여 사용될 수 있다.Kubernetes (K8S) is an open source-based container orchestration platform for this purpose, and can be mainly used to build an infrastructure for edge computing technology.
쿠버네티스에서는 응용 서비스의 배포, 리소스 관리, 자원 모니터링, 로드 밸런싱, 및 자동 확장 등 컨테이너 오케스트레이션을 위한 다양한 기능을 제공할 수 있다. Kubernetes can provide a variety of features for container orchestration, including deployment of application services, resource management, resource monitoring, load balancing, and autoscaling.
도 1은 일반적인 쿠버네티스 기반 엣지 컴퓨팅의 구조를 설명하는 도면이다.1 is a diagram illustrating the structure of a general Kubernetes-based edge computing.
도 1에 도시한 바와 같이, 쿠버네티스의 하위 계층(130)에는, 주로 중간 계층(120)의 엣지노드와 직접 연결되는 무선 게이트웨이를 통해, 상위 계층(110)으로 요청을 보내는 여러 IoT 기기들이 포함되어 있다.As shown in FIG. 1 , in the lower layer 130 of Kubernetes, several IoT devices that send requests to the upper layer 110 mainly through a wireless gateway directly connected to the edge node of the middle layer 120 are provided. Included.
쿠버네티스의 중간 계층(120)은 엣지 컴퓨팅(포크 컴퓨팅) 계층으로서, IoT 기기의 요청을 분석하고 계산할 수 있는 엣지노드를 포함하고 있다.The middle layer 120 of Kubernetes is an edge computing (fork computing) layer, and includes edge nodes that can analyze and calculate requests from IoT devices.
또한, 쿠버네티스의 상위 계층(110)은 데이터 센터의 여러 서버를 포함하는 클라우드 컴퓨팅 계층일 수 있다.Also, the upper layer 110 of Kubernetes may be a cloud computing layer including several servers in a data center.
쿠버네티스에서는 복수의 임의 엣지노드들을 하나의 클러스터로 구성하고, 구성된 클러스터 단위로 클라이언트의 요청을 전달하고 공유함으로써, 자원 처리의 효율성을 높이게 된다.In Kubernetes, resource processing efficiency is improved by configuring a plurality of arbitrary edge nodes into a cluster and delivering and sharing client requests in the configured cluster unit.
그러나 쿠버네티스에서 구성된 클러스터 내 엣지노드의 협업 기능 역시 엣지노드 간의 요청 및 응답의 전달 과정에서 지연시간 및 메시지 처리 비용을 수반하게 된다.However, the collaboration function of edge nodes in the cluster configured in Kubernetes also entails latency and message processing costs in the process of transferring requests and responses between edge nodes.
이에 따라 각 엣지노드에서 필요한 만큼 적절한 자원을 분산함으로써, 노드 간 협업에 따른 비용을 최소화하는 것은, 엣지노드를 포함하는 클러스터의 시스템 성능을 최적화 할 수 있는 방법일 수 있다.Accordingly, by distributing appropriate resources as needed in each edge node, minimizing the cost of collaboration between nodes may be a method of optimizing the system performance of a cluster including edge nodes.
그러나, 종래의 쿠버네티스 플랫폼은, 두 가지 측면에서의 제한 사항을 갖는다.However, the conventional Kubernetes platform has limitations in two aspects.
첫째로는 쿠버네티스에서는, 엣지노드들에게 응용서비스 복제본의 분산배치를 지원하고 있으나, 분산배치의 지원시 각 엣지노드의 자원 요청 상태를 고려하는 기능은 결여되어 있다.First, Kubernetes supports distributed deployment of application service replicas to edge nodes, but lacks the ability to consider the resource request status of each edge node when supporting distributed deployment.
예컨대, 도 1에서 도시한 바와 같이, 엣지노드 Location A에 4개의 클라이언트, 엣지노드 Location B에 1개의 클라이언트, 엣지노드 Location C에 1개의 클라이언트가 연결되어 응용 서비스를 요청하고 있는 상황임에도 불구하고, 종래의 쿠버네티스에서는, 각 엣지노드로의 자원 요청 상태의 고려 없이, 엣지노드에 각 3개씩 동일한 수의 복제본을 배포하고 있다.For example, as shown in FIG. 1, despite the situation in which four clients are connected to the edge node Location A, one client is connected to the edge node Location B, and one client is connected to the edge node Location C, the application service is being requested. In the conventional Kubernetes, the same number of replicas are distributed to each edge node, 3 copies each, without considering the resource request status to each edge node.
만약, 배포된 복제본 보다 더 많은 수의 요청이 입력되는 경우에는, 사용자의 요청 메시지를 수신한 엣지노드 대신 원격지의 다른 엣지노드에 의해서 처리될 가능성도 높아질 수 있다. 즉, 쿠버네티스에서는 각 응용 서비스의 요청을 받을 때마다 주어진 정책에 따라 해당 요청을 처리할 엣지노드들을 선택하고, 요청을 전달하게 되는데, 요청 메시지를 수신한 엣지노드가 아닌 원격지의 엣지노드로 전달될 경우에는 요청 처리 지연시간이 필연적으로 증가하게 되는 문제가 발생한다.If a larger number of requests than distributed replicas are input, the possibility of being processed by other edge nodes at a remote location instead of the edge node receiving the user's request message may increase. In other words, whenever Kubernetes receives a request from each application service, it selects edge nodes to process the request according to the given policy and delivers the request. If it is forwarded, there is a problem in that the request processing delay time inevitably increases.
둘째로 쿠버네티스에서는, IoT 디바이스의 요청 상태의 동적 변화를 적용하지 못하고 있다.Second, in Kubernetes, dynamic changes in the request state of IoT devices cannot be applied.
즉, IoT 응용 서비스 인프라의 특성 상 각 엣지노드에 접근하는 요청량은 시간대별 사용자의 집중도 등에 따라 달라질 수 있다. 즉, 도 1과 같은 요청 자원 및 실제 할당 자원의 불균형 문제는 시간에 따라 지속적으로 발생할 수 있게 된다.That is, due to the characteristics of IoT application service infrastructure, the amount of requests to access each edge node may vary depending on the concentration of users by time period, etc. That is, the problem of imbalance between the requested resource and the actual allocated resource as shown in FIG. 1 may continuously occur over time.
따라서, 쿠버네티스 자원 배분를 고려하여, 자원 프로비저닝 기능을 제공하는 기술 개발이 절실히 필요한 실정이다.Therefore, in consideration of Kubernetes resource allocation, there is an urgent need to develop a technology that provides a resource provisioning function.
본 발명의 실시예는, 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능을 제공하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치를 제공하는 것을 목적으로 한다.An embodiment of the present invention aims to provide a container-based dynamic resource distribution method and apparatus for an IoT edge computing environment, which provides a resource provisioning function in consideration of the Kubernetes resource allocation problem.
또한, 본 발명의 실시예는, 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배하는 것을 목적으로 한다.In addition, an embodiment of the present invention aims to distribute copies for each application service in proportion to the amount of requests to each edge node in consideration of the client's request traffic status.
또한, 본 발명의 실시예는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선하는 것을 목적으로 한다.In addition, an embodiment of the present invention aims to improve the overall throughput of the system by periodically monitoring the real-time status of the client and dynamically adjusting the number of service copies according to the requested resource for each edge node.
본 발명의 일실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법은, 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트하는 단계; 및 IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정하는 단계를 포함할 수 있다.A container-based dynamic resource distribution method for an IoT edge computing environment according to an embodiment of the present invention relates to a cluster constituting the middle layer of a Kubernetes-based edge computing, with respect to an edge node included in the cluster. , counting the number of assigned application replicas; and re-adjusting the number of application copies required by each of the edge nodes in consideration of the request traffic status from the IoT device.
또한, 본 발명의 실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치는, 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트하는 카운트부; 및 IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정하는 처리부를 포함하여 구성할 수 있다.In addition, the container-based dynamic resource distribution apparatus for the IoT edge computing environment according to an embodiment of the present invention relates to a cluster constituting the middle layer of the Kubernetes-based edge computing, and provides an edge node included in the cluster. For, a counting unit for counting the number of copies of the application to be allocated; and a processing unit that readjusts the number of application copies required by each of the edge nodes in consideration of the request traffic status from the IoT device.
본 발명의 일실시예에 따르면, 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능을 제공하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치를 제공할 수 있다.According to an embodiment of the present invention, in consideration of the Kubernetes resource allocation problem, it is possible to provide a container-based dynamic resource distribution method and apparatus for an IoT edge computing environment, which provides a resource provisioning function.
또한, 본 발명에 의해서는, 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배할 수 있다.In addition, according to the present invention, it is possible to distribute copies for each application service in proportion to the amount of requests to each edge node in consideration of the client's request traffic status.
또한, 본 발명에 의해서는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선할 수 있다.In addition, according to the present invention, by periodically monitoring the client's real-time status and dynamically adjusting the number of service copies according to the requested resource for each edge node, the overall system throughput can be improved.
도 1은 일반적인 쿠버네티스 기반 엣지 컴퓨팅의 구조를 설명하는 도면이다.
도 2는 본 발명의 일실시예에 따른 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치의 구성을 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 스케줄링을 위한 nodeAffinity 설정을 예시하는 도면이다.
도 4는 본 발명에서 제안하는 기술의 구성요소 및 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른, ElasticFog에서의 동작 알고리즘을 설명하기 위한 도이다.
도 6은 본 발명의 일실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법을 도시한 흐름도이다.1 is a diagram illustrating the structure of a general Kubernetes-based edge computing.
2 is a block diagram illustrating a configuration of a container-based dynamic resource distribution device for an IoT edge computing environment according to an embodiment of the present invention.
3 is a diagram illustrating setting of nodeAffinity for scheduling according to an embodiment of the present invention.
4 is a view for explaining the components and operation of the technology proposed in the present invention.
5 is a diagram for explaining an operation algorithm in ElasticFog according to an embodiment of the present invention.
6 is a flowchart illustrating a container-based dynamic resource distribution method for an IoT edge computing environment according to an embodiment of the present invention.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all modifications, equivalents and substitutes for the embodiments are included in the scope of the rights.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for the purpose of description only, and should not be construed as limiting. The singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that a feature, number, step, operation, component, part, or a combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are given the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In describing the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.
도 2는 본 발명의 일실시예에 따른 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치의 구성을 도시한 블록도이다.2 is a block diagram illustrating a configuration of a container-based dynamic resource distribution device for an IoT edge computing environment according to an embodiment of the present invention.
도 2을 참조하면, 본 발명의 일실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치(이하, '동적 자원 분배 장치'라 약칭함)(200)는 카운트부(210), 및 처리부(220)를 포함하여 구성할 수 있다. 또한, 실시예에 따라, 동적 자원 분배 장치(200)는 모니터링부(230)를 선택적으로 추가하여 구성할 수 있다.Referring to FIG. 2 , according to an embodiment of the present invention, a container-based dynamic resource distribution device for an IoT edge computing environment (hereinafter, abbreviated as 'dynamic resource distribution device') 200 includes a
우선, 카운트부(210)는 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트한다. 즉, 카운트부(210)는 엣지노드에 현재 할당되어 있는 응용 서비스 복제본의 수를 계수하는 역할을 할 수 있다.First, the
상술한 도 1에서와 같이, 엣지노드 각각에는 초기에 설정된 수(예, 3개)의 어플리케이션 복제본이 할당되어 있을 수 있고, 이 경우, 카운트부(210)는 각 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 '3'으로 카운트 할 수 있다.1, an initially set number (eg, three) of application copies may be allocated to each of the edge nodes, and in this case, the
처리부(220)는 IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정한다. 즉, 처리부(220)는 엣지노드에 연결되는 IoT 기기로부터 입력되는 요청의 정도를 감안하여, 개별 엣지노드에 할당되어야 하는 어플리케이션 복제본의 개수를 동적으로 결정하는 역할을 할 수 있다.The
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 처리부(220)는 4개의 IoT 기기에서 발생한 요청 트래픽의 양에 따라, 상기 4개의 IoT 기기가 연결되는 엣지노드에서의 필요한 어플리케이션 복제본의 개수를 '6'으로 결정할 수 있다. 이후 처리부(220)는 해당 엣지노드에 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 6개로 재조정할 수 있다.In the above example in which the number of application replicas allocated to all edge nodes is counted as '3', the
엣지노드에서 필요로 하는 어플리케이션 복제본의 개수의 결정에 있어, 처리부(220)는 엣지노드 각각으로, 연결되는 상기 IoT 기기로부터의 요청 트래픽의 수에 상응하여, 엔드포인트 개체를 작성할 수 있다. 상기 엔드포인트(Endpoint) 개체는, IoT 기기에서 입력된 요청 트래픽을 엣지노드에서 처리될 때 일시 보관하는 수단일 수 있다.In determining the number of application replicas required by the edge node, the
본 발명의 기반이 되는 쿠버네티스에서, 처리부(220)는, IoT 기기에서 동일 기간에 입력되는 요청 트래픽의 양에 연동되어, 상기 엔드포인트 개체를 실시간으로 작성할 수 있다. 예컨대, 특정의 엣지노드와 연결되는 4개의 IoT 기기 각각에서 동일한 기간 동안에, 요청 트래픽을 발생시킴에 따라, 처리부(220)는 이들 4개의 IoT 기기 각각에 대한 엔드포인트 개체를 작성할 수 있다.In Kubernetes, which is the basis of the present invention, the
이후, 처리부(220)는 작성된 상기 엔드포인트 개체의 수가, 설정된 한계치를 초과하는 활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 busy로 판단하여, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 한다.Thereafter, the
즉, 처리부(220)는 연결되고 있던 IoT 기기로부터 요청 트래픽이 대량으로 입력되고, 그에 따라 다수의 엔드포인트 개체가 한계치를 넘어 작성되는 엣지노드를, 활동 엣지노드로 결정하고, 결정된 활동 엣지노드에 대해 어플리케이션 복제본의 개수를 현재 보다 증가시키는 조정을 할 수 있다.That is, the
여기서, 한계치는, 엔드포인트 개체를 기준으로, 엣지노드가, 현재 실제 작업을 처리하는 노드인지를 판별할 수 있게 하는 기준치일 수 있고, 본 발명의 발명자의 경험과 연구 결과에 따른 임의의 값(예컨대, '5')으로 설정할 수 있다.Here, the threshold value may be a reference value that allows it to be determined whether an edge node is a node currently processing an actual job, based on the endpoint entity, and an arbitrary value ( For example, it can be set to '5').
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 처리부(220)는 Location A에 작성되는 엔드포인트 개체가 한계치 '5'보다 많은 '6'일 경우, 해당 엣지노드를 활동 엣지노드로 결정하여, 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 6개로 재조정할 수 있다.In the above example in which the number of application replicas allocated to all edge nodes is counted as '3', the
다른 실시예에서, 처리부(220)는, 작성된 상기 엔드포인트 개체의 수가, 상기 한계치 이하이거나 '0'인 비활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 free로 판단하여, 상기 비활동 엣지노드에 할당되는 어플리케이션 복제본의 적어도 일부를, 상기 활동 엣지노드로 이동하여 할당시켜 재조정을 한다.In another embodiment, the
즉, 처리부(220)는, 작성된 엔드포인트 개체의 수가 적어, 현재 실제 작업에 관여하지 않는 엣지노드를 비활동 엣지노드로 결정하고, 결정된 비활동 엣지노드에 할당되고 있던 일부의 어플리케이션 복제본을 활동 엣지노드로 이동시켜 할당하도록 할 수 있다.That is, the
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 처리부(220)는 Location B에 작성되는 엔드포인트 개체가 한계치 '5'보다 현저히 적은 '1'일 경우, 해당 엣지노드를 비활동 엣지노드로 결정하여, 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 1개로 재조정하고, 잔여되는 2개의 어플리케이션 복제본을, 활동 엣지노드인 Location A로 이동시켜 할당되도록 할 수 있다.In the above example in which the number of application replicas allocated to all edge nodes is counted as '3', the
또 다른 실시예에서, 처리부(220)는, 상기 IoT 기기와의 연결 빈도에 따라, 상기 엣지노드 각각으로, 선호규칙비율을 결정한다. 즉, 처리부(220)는 IoT 기기와 접촉되는 횟수에 따라 개별 엣지노드에 대해 우선순위를 부여할 수 있다.In another embodiment, the
예컨대, IoT 기기와 접촉된 횟수가 많아, 연결 빈도가 가장 많은 Location A에 대해, 처리부(220)는 최우선수위인 '80'의 선호규칙비율을 결정할 수 있고, 다음으로 연결 빈도가 많은 Location C에 대해 선호규칙비율 '15'를 결정할 수 있으며, 가장 작은 연결 빈도의 Location B에 대해 선호규칙비율 '5'를 결정할 수 있다.For example, for Location A, where the number of times of contact with the IoT device is large and the connection frequency is the highest, the
이후, 처리부(220)는 결정된 상기 선호규칙비율이 높은 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 상대적으로 증가하여 할당시키는 재조정을 할 수 있다. 즉, 처리부(220)는 결정된 선호규칙비율의 크기에 따라, 엣지노드 각각에 할당되어야 하는 어플리케이션 복제본의 수를 최적하게 재조정할 수 있다.Thereafter, the
예컨대, 처리부(220)는 선호규칙비율 '66.66'의 Location A에 어플리케이션 복제본을 6개 할당으로 재조정하고, 선호규칙비율 '22.22'의 Location C에 어플리케이션 복제본을 2개 할당으로 재조정하며, 선호규칙비율 '11.11'의 Location B에 어플리케이션 복제본을 1개 할당으로 재조정할 수 있다.For example, the
다른 실시예에서, 동적 자원 분배 장치(200)는 요청 트래픽의 수에 정비례하여, 개별 엣지노드에 할당되는 어플리케이션 복제본의 개수를 재조정할 수 있다.In another embodiment, the dynamic
이를 위해, 카운트부(210)는 선정된 기간 동안, 발생한 상기 IoT 기기로부터의 요청 트래픽의 수를, 엣지노드 별로 카운트 할 수 있다. 즉, 카운트부(210)는 연결되는 IoT 기기에서 사전에 정한 기간에 동시에 발생하는 요청 트래픽의 수를 카운트 할 수 있다.To this end, the
이후, 처리부(220)는, 상기 기간 동안, 상기 카운트된 요청 트래픽의 수와 일치하도록, 각 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 재조정할 수 있다. 즉, 처리부(220)는 카운트 된 요청 트래픽의 수와 동일하도록, 상기 기간 동안에 각 엣지노드에 할당되는 어플리케이션 복제본의 수를 결정할 수 있다.Thereafter, the
이를 통해, 동적 자원 분배 장치(200)는 현재 발생하는 요청 트래픽에 최적하도록, 엣지노드 별 할당되는 어플리케이션 복제본의 수를 적절히 조정할 수 있어, 부족하거나 불필요한 어플리케이션 복제본이 존재하지 않도록 할 수 있다.Through this, the dynamic
다른 실시예에서, 동적 자원 분배 장치(200)는 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정할 수 있다.In another embodiment, the dynamic
이를 위해, 동적 자원 분배 장치(200)는 모니터링부(230)를 추가로 구성할 수 있다. 즉, 모니터링부(230)는 클라이언트인 상기 IoT 기기에 대한 상태를 모니터링하는 역할을 할 수 있다.To this end, the dynamic
여기서 IoT 기기에 대한 상태는, IoT 기기가 이용하는 통신 주파수 대역, 주변 노이즈 현황, 연결 프로토콜의 오류 유무, 요청 트래픽의 전달 중 손실율 등일 수 있다.Here, the status of the IoT device may be a communication frequency band used by the IoT device, a status of ambient noise, whether there is an error in a connection protocol, a loss rate during transmission of the request traffic, and the like.
이후, 처리부(220)는, 상기 모니터링의 결과를 더 고려하여, 재조정하는 상기 어플리케이션 복제본의 개수를 결정할 수 있다. 즉, 처리부(220)는 모니터링을 통해 확인된 IoT 기기의 상태에 따라, IoT 기기와 연결되는 엣지노드에 할당되는 어플리케이션 복제본의 개수를 증가 또는 감소시킬 수 있다.Thereafter, the
예컨대, 모니터링부(230)의 모니터링 결과, IoT 기기의 주변 노이즈 현황이, 요청 트래픽을 정상적으로 전달하는 데에 문제가 많을 정도로 안 좋을 경우, 처리부(220)는 해당 IoT 기기와 연결되는 엣지노드에 할당되는 어플리케이션 복제본의 개수를 감소시키는 재조정을 할 수 있다.For example, as a result of monitoring by the
본 발명의 일실시예에 따르면, 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능을 제공하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치를 제공할 수 있다.According to an embodiment of the present invention, in consideration of the Kubernetes resource allocation problem, it is possible to provide a container-based dynamic resource distribution method and apparatus for an IoT edge computing environment, which provides a resource provisioning function.
또한, 본 발명에 의해서는, 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배할 수 있다.In addition, according to the present invention, it is possible to distribute copies for each application service in proportion to the amount of requests to each edge node in consideration of the client's request traffic status.
또한, 본 발명에 의해서는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선할 수 있다.In addition, according to the present invention, by periodically monitoring the client's real-time status and dynamically adjusting the number of service copies according to the requested resource for each edge node, the overall system throughput can be improved.
본 발명에서는 종래의 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능 제공 방법을 제안한다.The present invention proposes a method for providing a resource provisioning function in consideration of the conventional Kubernetes resource allocation problem.
동적 자원 분배 장치(200)는 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배한다. 예를 들어 도 1의 조건에서, 본 발명의 동적 자원 분배 장치(200)는 엣지노드 Location A에 6개의 응용 서비스 복제본을 프로비저닝하고, 엣지노드 Location B에 1개의 응용 서비스 복제본을 프로비저닝하며, 엣지노드 Location C에 2개의 응용 서비스 복제본을 프로비저닝 할 수 있다.The dynamic
또한, 본 발명은, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 응용 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선할 수 있다.In addition, the present invention can improve the overall throughput of the system by periodically monitoring the real-time status of the client and dynamically adjusting the number of application service replicas according to the requested resource for each edge node.
본 발명에서는 사물인터넷 엣지 컴퓨팅 환경에서 컨테이너 기반 자원을 동적으로 분배할 수 있는 기술을 제안한다.The present invention proposes a technology for dynamically distributing container-based resources in an IoT edge computing environment.
즉, 본 발명은 사물인터넷 응용서비스의 고확장성 및 고가용성을 제공하기 위하여, 동일한 서비스를 제공하는 다수의 컨테이너 기반 복제본을 운영하는 엣지 컴퓨팅 플랫폼에 적용될 수 있다.That is, in order to provide high scalability and high availability of IoT application services, the present invention can be applied to an edge computing platform that operates multiple container-based replicas that provide the same service.
또한, 본 발명의 목적은 엣지노드의 클러스터 환경에서 각 엣지노드에 요청되는 트래픽 양을 고려하여 적절한 수의 복제본을 각 엣지노드에 배포할 수 있다.In addition, it is an object of the present invention to distribute an appropriate number of replicas to each edge node in consideration of the amount of traffic requested to each edge node in the cluster environment of the edge node.
동적 자원 분배 장치(200)는 각 엣지노드 별 수신 요청 수에 대한 정보를 수집하기 위해, 쿠버네티스 플랫폼 환경에서 해당 정보를 저장하기 위한 Endpoint 개체를 만든다.The dynamic
동적 자원 분배 장치(200)는 사용자 요청 트래픽의 분배 모듈에 관한 쿠버네티스의 프록시 모드 중 user-space proxy 모드를 사용하여 각 엣지노드의 어플리케이션에 접근하는 요청 수를 주기적으로 카운팅하여 Endpoint 개체를 만든다.The dynamic
즉, 쿠버네티스를 관장하는 마스터노드는 각 엣지노드 상의 Endpoint 개체를 읽어 네트워크 트래픽 상태를 알 수 있다.In other words, the master node in charge of Kubernetes can read the endpoint object on each edge node to know the network traffic status.
또한, 마스터 노드의 스케쥴러는 nodeAffinity라는 우선순위 규칙을 이용하여, 어플리케이션별 복제본이 배포될 엣지노드를 특정할 수 있으며, nodeAffinity에는 필수(Required) 규칙과 선호(Preffered) 규칙 두 가지가 있다.In addition, the scheduler of the master node can use the priority rule called nodeAffinity to specify the edge node to which the replica for each application will be distributed. There are two types of nodeAffinity: Required and Preferred.
필수 규칙에서는 선택된 엣지노드가 각 어플리케이션별 복제본의 요구 사항을 충족해야 함을 의미하며, 선호 규칙에서는 각 엣지노드별 가중치 필드를 1에서 100까지 명시하고 가중치 값이 높은 엣지노드를 선택될 수 있도록 각 어플리케이션에 우선순위를 부여할 수 있다. The mandatory rule means that the selected edge node must satisfy the requirements of replicas for each application. In the preferred rule, the weight field for each edge node is specified from 1 to 100, and each edge node with a high weight value can be selected. Applications can be given priority.
쿠버네티스 클러스터에서 각 노드는 키(key)-값(Value) 형태의 라벨을 가진다.In a Kubernetes cluster, each node has a key-value label.
따라서 특정 노드에 복제본을 배치해야 하는 nodeAffinity 규칙의 구성은 노드의 라벨을 기반으로 한다.Therefore, the configuration of the nodeAffinity rule that should place a replica on a particular node is based on the node's label.
동적 자원 분배 장치(200)는 각 어플리케이션의 복제본을 할당하기 위하여 선호 규칙을 활용할 수 있다.The dynamic
먼저, 각 엣지노드의 레이블(label)은 노드의 위치를 기준으로 정해진다.First, the label of each edge node is determined based on the node's location.
엣지노드 A는 키를 위치로 하고, 값을 위치의 이름으로 하여 정해지는 값을 갖는다(예 엣지노드 A의 라벨 : location - location A).Edge node A has a value determined by using the key as the location and the value as the location name (eg, the label of edge node A: location - location A).
또한, 각 엣지노드의 가중치 필드의 값은, 위치에서 어플리케이션에 접근 요청하는 비율로 정한다.In addition, the value of the weight field of each edge node is determined by the rate of requesting access to the application from the location.
도 3은 본 발명의 실시예에 따른 스케줄링을 위한 nodeAffinity 설정을 예시하는 도면이다.3 is a diagram illustrating setting of nodeAffinity for scheduling according to an embodiment of the present invention.
도 3에 도시한 바와 같이, 엣지노드 A에서 “IoT-app-1” 어플리케이션에 접근 요청하는 비율은 80%이고, 엣지노드 B에 접근 요청하는 비율은 20%로 분산되어 있다.As shown in FIG. 3, the rate of requesting access to the “IoT-app-1” application from edge node A is 80%, and the rate of requesting access to edge node B is distributed at 20%.
이에 따라 도 3에서 가중치 값(weight)은 엣지노드 A에 80(도 3의 도번 310), 엣지노드 B에 20(도 3의 도번 320)으로 설정하게 된다.Accordingly, in FIG. 3 , the weight is set to 80 ( 310 in FIG. 3 ) for the edge node A and 20 ( 320 in FIG. 3 ) for the edge node B.
도 4는 본 발명에서 제안하는 기술의 구성요소 및 동작을 설명하기 위한 도면이다.4 is a view for explaining the components and operation of the technology proposed in the present invention.
본 발명은 컨테이너 오케스트레이션을 위한 오픈소스 프로젝트인 쿠버네티스 플랫폼 상에서 동작할 수 있다.The present invention can operate on the Kubernetes platform, which is an open source project for container orchestration.
도 4에 도시한 바와 같이, 본 발명은 쿠버네티스의 마스터 노드(Master Node) 상의 응용 서비스를 위한 컨트롤 모듈의 형태로 구현될 수 있다.As shown in FIG. 4 , the present invention can be implemented in the form of a control module for application services on a master node of Kubernetes.
즉, IoT 엣지 인프라 환경에서 실제 동작하는 워커 노드(Worker Node)는 엣지노드로 동작하게 되며, 각 워커 노드의 kube-proxy에서 각 엣지노드에 배포된 어플리케이션별 수신 요청 수를 카운트할 수 있다.That is, a worker node that actually operates in the IoT edge infrastructure environment operates as an edge node, and the kube-proxy of each worker node can count the number of incoming requests for each application deployed to each edge node.
ElssticFog로 명명된 마스터 노드 상의 컨트롤 모듈에서는, 주기적으로 어플리케이션, 엣지노드 및 네트워크 상태의 최신 정보를 수집할 수 있다.In the control module on the master node named ElssticFog, it is possible to periodically collect the latest information on the application, edge node and network status.
또한, 마스터 노드는 수집된 정보를 바탕으로 각 엣지노드에서 수신하는 요청량의 비율을 계산하고 nodeAffinity 규칙을 업데이트한다.In addition, the master node calculates the ratio of the request amount received from each edge node based on the collected information and updates the nodeAffinity rule.
마지막으로 쿠버네티스 스케줄러에서는 nodeAffinity 규칙에 따라 어플리케이션 별 복제본의 수를 재분배 할 수 있다.Finally, the Kubernetes scheduler can redistribute the number of replicas per application according to the nodeAffinity rule.
도 5는 본 발명의 실시예에 따른, ElasticFog에서의 동작 알고리즘을 설명하기 위한 도이다.5 is a diagram for explaining an operation algorithm in ElasticFog according to an embodiment of the present invention.
도 5의 동작 알고리즘에서는 도 4의 구성 요소 중에 쿠버네티스 마스터 노드 상의 ElasticFog 제어 모듈에서 동작하는 알고리즘을 기술한다.The operation algorithm of FIG. 5 describes an algorithm operating in the ElasticFog control module on the Kubernetes master node among the components of FIG. 4 .
도 5의 applicationList는 클러스터에서 실행 중인 어플리케이션의 목록이고, nodeList는 클러스터에 있는 엣지노드의 목록일 수 있다.The applicationList of FIG. 5 may be a list of applications running in the cluster, and the nodeList may be a list of edge nodes in the cluster.
도 5의 LocationInfo는 각 위치의 노드 목록(예: location A:[node1]. location B: [node2])를 나타내며, applicationRequestInfo는 각 엣지노드에서의 어플리케이션 별 수신 요청 수를 저장할 수 있다(예: node1: 800, node2: 200).The LocationInfo of FIG. 5 represents a node list (eg, location A:[node1]. location B: [node2]) of each location, and the applicationRequestInfo may store the number of requests received for each application in each edge node (eg, node1). : 800, node2: 200).
도 5의 weightInfo는 어플리케이션의 각 위치에서 수신받는 요청의 비율을 나타낼 수 있다(예: location A: 80, location B: 20).The weightInfo of FIG. 5 may indicate the ratio of requests received at each location of the application (eg, location A: 80, location B: 20).
쿠버네티스 API에 의해서는 검색기능을 통해 nodeList와 applicationList를 검색할 수 있다.With the Kubernetes API, nodeList and applicationList can be searched through the search function.
또한, 도 5의 locationInfo는 엣지노드의 라벨을 기반으로 업데이트 되며, applicationReuestInfo는 어플리케이션에 해당되는 Endpoint 객체를 읽어 수집할 수 있다.In addition, the locationInfo of FIG. 5 is updated based on the label of the edge node, and the applicationReuestInfo may be collected by reading the Endpoint object corresponding to the application.
동작 알고리즘은 클러스터 내의 어플리케이션 별로 반복될 수 있다.The operation algorithm may be repeated for each application in the cluster.
즉, 본 발명에서는, 각 어플리케이션 별로 요청량에 비례하도록 복제본의 수를 동적으로 조정할 수 있다.That is, in the present invention, the number of replicas can be dynamically adjusted in proportion to the request amount for each application.
본 발명은 nodeList, locationInfo 그리고 applicationRequestInfo을 통해, 클러스터 및 각 위치에서 어플리케이션의 수신한 요청의 수를 계산한다.The present invention calculates the number of requests received by an application in a cluster and each location through nodeList, locationInfo, and applicationRequestInfo.
그리고 나서, 본 발명은 각 위치에서 수신한 요청의 비율을 계산하고 weightInfo에 업데이트한다.Then, the present invention calculates the proportion of requests received at each location and updates the weightInfo.
또한, 본 발명은 weightInfo의 값을 토대로 nodeAffinity 규칙에 따라 각 위치의 weight 값을 업데이트 한다.In addition, the present invention updates the weight value of each location according to the nodeAffinity rule based on the value of weightInfo.
마지막으로, 본 발명은 어플리케이션 별로 nodeAffinity 규칙이 업데이트되면, 쿠버네티스의 스케쥴러는 각 노드 상의 복제분의 재분배를 수행하게 되며 이 때 nodeAffinity의 우선순위의 비율에 따라 복제본을 우선 배치하게 된다. Finally, according to the present invention, when the nodeAffinity rule is updated for each application, the Kubernetes scheduler redistributes the copies on each node.
본 발명에 의해서는, 사물인터넷을 위한 엣지 컴퓨팅 인프라로 활용될 수 있고, 특히 사용자의 요청량 비율에 따라 연산자원을 동적 분배 함으로써, 엣지 컴퓨팅 인프라의 시스템 처리성능을 개선할 수 있다.According to the present invention, it can be utilized as an edge computing infrastructure for the Internet of Things, and in particular, by dynamically distributing operator resources according to the user's request rate ratio, the system processing performance of the edge computing infrastructure can be improved.
이하, 도 6에서는 본 발명의 실시예들에 따른 동적 자원 분배 장치(200)의 작업 흐름을 상세히 설명한다.Hereinafter, a work flow of the dynamic
도 6은 본 발명의 일실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법을 도시한 흐름도이다.6 is a flowchart illustrating a container-based dynamic resource distribution method for an IoT edge computing environment according to an embodiment of the present invention.
본 실시예에 따른 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법은 동적 자원 분배 장치(200)에 의해 수행될 수 있다.The container-based dynamic resource distribution method for the IoT edge computing environment according to the present embodiment may be performed by the dynamic
우선, 동적 자원 분배 장치(200)는 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트한다(610). 단계(610)는 엣지노드에 현재 할당되어 있는 응용 서비스 복제본의 수를 계수하는 과정일 수 있다.First, the dynamic
상술한 도 1에서와 같이, 엣지노드 각각에는 초기에 설정된 수(예, 3개)의 어플리케이션 복제본이 할당되어 있을 수 있고, 이 경우, 동적 자원 분배 장치(200)는 각 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 '3'으로 카운트 할 수 있다.1, an initially set number (eg, three) of application copies may be allocated to each edge node, and in this case, the dynamic
또한, 동적 자원 분배 장치(200)는 IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정한다(620). 단계(620)는 엣지노드에 연결되는 IoT 기기로부터 입력되는 요청의 정도를 감안하여, 개별 엣지노드에 할당되어야 하는 어플리케이션 복제본의 개수를 동적으로 결정하는 과정일 수 있다.In addition, the dynamic
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 동적 자원 분배 장치(200)는 4개의 IoT 기기에서 발생한 요청 트래픽의 양에 따라, 상기 4개의 IoT 기기가 연결되는 엣지노드에서의 필요한 어플리케이션 복제본의 개수를 '6'으로 결정할 수 있다. 이후 동적 자원 분배 장치(200)는 해당 엣지노드에 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 6개로 재조정할 수 있다.In the above example in which the number of application copies allocated to all edge nodes is counted as '3', the dynamic
엣지노드에서 필요로 하는 어플리케이션 복제본의 개수의 결정에 있어, 동적 자원 분배 장치(200)는 엣지노드 각각으로, 연결되는 상기 IoT 기기로부터의 요청 트래픽의 수에 상응하여, 엔드포인트 개체를 작성할 수 있다. 상기 엔드포인트(Endpoint) 개체는, IoT 기기에서 입력된 요청 트래픽을 엣지노드에서 처리될 때 일시 보관하는 수단일 수 있다.In determining the number of application replicas required by the edge node, the dynamic
본 발명의 기반이 되는 쿠버네티스에서, 동적 자원 분배 장치(200)는, IoT 기기에서 동일 기간에 입력되는 요청 트래픽의 양에 연동되어, 상기 엔드포인트 개체를 실시간으로 작성할 수 있다. 예컨대, 특정의 엣지노드와 연결되는 4개의 IoT 기기 각각에서 동일한 기간 동안에, 요청 트래픽을 발생시킴에 따라, 동적 자원 분배 장치(200)는 이들 4개의 IoT 기기 각각에 대한 엔드포인트 개체를 작성할 수 있다.In Kubernetes, which is the basis of the present invention, the dynamic
이후, 동적 자원 분배 장치(200)는 작성된 상기 엔드포인트 개체의 수가, 설정된 한계치를 초과하는 활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 busy로 판단하여, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 한다.Thereafter, the dynamic
즉, 동적 자원 분배 장치(200)는 연결되고 있던 IoT 기기로부터 요청 트래픽이 대량으로 입력되고, 그에 따라 다수의 엔드포인트 개체가 한계치를 넘어 작성되는 엣지노드를, 활동 엣지노드로 결정하고, 결정된 활동 엣지노드에 대해 어플리케이션 복제본의 개수를 현재 보다 증가시키는 조정을 할 수 있다.That is, the dynamic
여기서, 한계치는, 엔드포인트 개체를 기준으로, 엣지노드가, 현재 실제 작업을 처리하는 노드인지를 판별할 수 있게 하는 기준치일 수 있고, 본 발명의 발명자의 경험과 연구 결과에 따른 임의의 값(예컨대, '5')으로 설정할 수 있다.Here, the threshold value may be a reference value that allows it to be determined whether an edge node is a node currently processing an actual job, based on the endpoint entity, and an arbitrary value ( For example, it can be set to '5').
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 동적 자원 분배 장치(200)는 Location A에 작성되는 엔드포인트 개체가 한계치 '5'보다 많은 '6'일 경우, 해당 엣지노드를 활동 엣지노드로 결정하여, 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 6개로 재조정할 수 있다.In the above example in which the number of application replicas allocated to all edge nodes is counted as '3', the dynamic
다른 실시예에서, 동적 자원 분배 장치(200)는, 작성된 상기 엔드포인트 개체의 수가, 상기 한계치 이하이거나 '0'인 비활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 free로 판단하여, 상기 비활동 엣지노드에 할당되는 어플리케이션 복제본의 적어도 일부를, 상기 활동 엣지노드로 이동하여 할당시켜 재조정을 한다.In another embodiment, the dynamic
즉, 동적 자원 분배 장치(200)는, 작성된 엔드포인트 개체의 수가 적어, 현재 실제 작업에 관여하지 않는 엣지노드를 비활동 엣지노드로 결정하고, 결정된 비활동 엣지노드에 할당되고 있던 일부의 어플리케이션 복제본을 활동 엣지노드로 이동시켜 할당하도록 할 수 있다.That is, the dynamic
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 동적 자원 분배 장치(200)는 Location B에 작성되는 엔드포인트 개체가 한계치 '5'보다 현저히 적은 '1'일 경우, 해당 엣지노드를 비활동 엣지노드로 결정하여, 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 1개로 재조정하고, 잔여되는 2개의 어플리케이션 복제본을, 활동 엣지노드인 Location A로 이동시켜 할당되도록 할 수 있다.In the above example in which the number of application replicas allocated to all edge nodes is counted as '3', the dynamic
또 다른 실시예에서, 동적 자원 분배 장치(200)는, 상기 IoT 기기와의 연결 빈도에 따라, 상기 엣지노드 각각으로, 선호규칙비율을 결정한다. 즉, 동적 자원 분배 장치(200)는 IoT 기기와 접촉되는 횟수에 따라 개별 엣지노드에 대해 우선순위를 부여할 수 있다.In another embodiment, the dynamic
예컨대, IoT 기기와 접촉된 횟수가 많아, 연결 빈도가 가장 많은 Location A에 대해, 동적 자원 분배 장치(200)는 최우선수위인 '80'의 선호규칙비율을 결정할 수 있고, 다음으로 연결 빈도가 많은 Location C에 대해 선호규칙비율 '15'를 결정할 수 있으며, 가장 작은 연결 빈도의 Location B에 대해 선호규칙비율 '5'를 결정할 수 있다.For example, for Location A, where the number of times of contact with the IoT device is large, and the connection frequency is the highest, the dynamic
이후, 동적 자원 분배 장치(200)는 결정된 상기 선호규칙비율이 높은 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 상대적으로 증가하여 할당시키는 재조정을 할 수 있다. 즉, 동적 자원 분배 장치(200)는 결정된 선호규칙비율의 크기에 따라, 엣지노드 각각에 할당되어야 하는 어플리케이션 복제본의 수를 최적하게 재조정할 수 있다.Thereafter, the dynamic
예컨대, 동적 자원 분배 장치(200)는 선호규칙비율 '66.66'의 Location A에 어플리케이션 복제본을 6개 할당으로 재조정하고, 선호규칙비율 '22.22'의 Location C에 어플리케이션 복제본을 2개 할당으로 재조정하며, 선호규칙비율 '11.11'의 Location B에 어플리케이션 복제본을 1개 할당으로 재조정할 수 있다.For example, the dynamic
다른 실시예에서, 동적 자원 분배 장치(200)는 요청 트래픽의 수에 정비례하여, 개별 엣지노드에 할당되는 어플리케이션 복제본의 개수를 재조정할 수 있다.In another embodiment, the dynamic
이를 위해, 동적 자원 분배 장치(200)는 선정된 기간 동안, 발생한 상기 IoT 기기로부터의 요청 트래픽의 수를, 엣지노드 별로 카운트 할 수 있다. 즉, 동적 자원 분배 장치(200)는 연결되는 IoT 기기에서 사전에 정한 기간에 동시에 발생하는 요청 트래픽의 수를 카운트 할 수 있다.To this end, the dynamic
이후, 동적 자원 분배 장치(200)는, 상기 기간 동안, 상기 카운트된 요청 트래픽의 수와 일치하도록, 각 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 재조정할 수 있다. 즉, 동적 자원 분배 장치(200)는 카운트 된 요청 트래픽의 수와 동일하도록, 상기 기간 동안에 각 엣지노드에 할당되는 어플리케이션 복제본의 수를 결정할 수 있다.Thereafter, the dynamic
이를 통해, 동적 자원 분배 장치(200)는 현재 발생하는 요청 트래픽에 최적하도록, 엣지노드 별 할당되는 어플리케이션 복제본의 수를 적절히 조정할 수 있어, 부족하거나 불필요한 어플리케이션 복제본이 존재하지 않도록 할 수 있다.Through this, the dynamic
다른 실시예에서, 동적 자원 분배 장치(200)는 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정할 수 있다.In another embodiment, the dynamic
즉, 동적 자원 분배 장치(200)는 클라이언트인 상기 IoT 기기에 대한 상태를 모니터링 할 수 있다.That is, the dynamic
여기서 IoT 기기에 대한 상태는, IoT 기기가 이용하는 통신 주파수 대역, 주변 노이즈 현황, 연결 프로토콜의 오류 유무, 요청 트래픽의 전달 중 손실율 등일 수 있다.Here, the status of the IoT device may be a communication frequency band used by the IoT device, a status of ambient noise, whether there is an error in a connection protocol, a loss rate during transmission of the request traffic, and the like.
이후, 동적 자원 분배 장치(200)는, 상기 모니터링의 결과를 더 고려하여, 재조정하는 상기 어플리케이션 복제본의 개수를 결정할 수 있다. 즉, 동적 자원 분배 장치(200)는 모니터링을 통해 확인된 IoT 기기의 상태에 따라, IoT 기기와 연결되는 엣지노드에 할당되는 어플리케이션 복제본의 개수를 증가 또는 감소시킬 수 있다.Thereafter, the dynamic
예컨대, 동적 자원 분배 장치(200)의 모니터링 결과, IoT 기기의 주변 노이즈 현황이, 요청 트래픽을 정상적으로 전달하는 데에 문제가 많을 정도로 안 좋을 경우, 동적 자원 분배 장치(200)는 해당 IoT 기기와 연결되는 엣지노드에 할당되는 어플리케이션 복제본의 개수를 감소시키는 재조정을 할 수 있다.For example, as a result of monitoring the dynamic
본 발명의 일실시예에 따르면, 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능을 제공하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치를 제공할 수 있다.According to an embodiment of the present invention, in consideration of the Kubernetes resource allocation problem, it is possible to provide a container-based dynamic resource distribution method and apparatus for an IoT edge computing environment, which provides a resource provisioning function.
또한, 본 발명에 의해서는, 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배할 수 있다.In addition, according to the present invention, it is possible to distribute copies for each application service in proportion to the amount of requests to each edge node in consideration of the client's request traffic status.
또한, 본 발명에 의해서는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선할 수 있다.In addition, according to the present invention, by periodically monitoring the client's real-time status and dynamically adjusting the number of service copies according to the requested resource for each edge node, the overall system throughput can be improved.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or apparatus, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques are performed in an order different from the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
200 : 동적 자원 분배 장치
210 : 카운트부
220 : 처리부
230 : 모니터링부200: dynamic resource distribution device
210: count unit 220: processing unit
230: monitoring unit
Claims (13)
상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트하는 단계; 및
IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정하는 단계
를 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.With respect to the cluster that constitutes the middle tier of Kubernetes-based edge computing,
counting the number of allocated application replicas for the edge nodes included in the cluster; and
Re-adjusting the number of application copies required by each edge node in consideration of the request traffic status from the IoT device
A container-based dynamic resource distribution method for an IoT edge computing environment comprising a.
상기 어플리케이션 복제본의 개수를 재조정하는 단계는,
엣지노드 각각으로, 연결되는 상기 IoT 기기로부터의 요청 트래픽의 수에 상응하여, 엔드포인트(Endpoint) 개체를 작성하는 단계; 및
작성된 상기 엔드포인트 개체의 수가, 설정된 한계치를 초과하는 활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 busy로 판단하여, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 하는 단계
를 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.According to claim 1,
The step of re-adjusting the number of application replicas,
creating an endpoint entity, corresponding to the number of request traffic from the connected IoT device, to each edge node; and
Re-adjusting to increase the number of application replicas by judging that the request traffic status from the IoT device is busy for an active edge node in which the number of created endpoint entities exceeds a set threshold
A container-based dynamic resource distribution method for an IoT edge computing environment comprising a.
상기 어플리케이션 복제본의 개수를 재조정하는 단계는,
작성된 상기 엔드포인트 개체의 수가, 상기 한계치 이하이거나 '0'인 비활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 free로 판단하여, 상기 비활동 엣지노드에 할당되는 어플리케이션 복제본의 적어도 일부를, 상기 활동 엣지노드로 이동하여 할당시켜 재조정을 하는 단계
를 더 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.3. The method of claim 2,
The step of re-adjusting the number of application replicas,
For an inactive edge node in which the number of created endpoint entities is less than or equal to the threshold value or '0', the status of request traffic from the IoT device is determined as free, and at least a portion of an application copy allocated to the inactive edge node moving to the active edge node and assigning it to readjust
Container-based dynamic resource distribution method for IoT edge computing environment further comprising.
상기 어플리케이션 복제본의 개수를 재조정하는 단계는,
상기 IoT 기기와의 연결 빈도에 따라, 상기 엣지노드 각각으로, 선호규칙비율을 결정하는 단계; 및
결정된 상기 선호규칙비율이 높은 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 상대적으로 증가하여 할당시키는 재조정을 하는 단계
를 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.According to claim 1,
The step of re-adjusting the number of application replicas,
determining, with each of the edge nodes, a preference rule ratio according to a connection frequency with the IoT device; and
Re-arranging to allocate a relatively increasing number of application replicas for the determined edge node having a high preference rule ratio
A container-based dynamic resource distribution method for an IoT edge computing environment comprising a.
선정된 기간 동안, 발생한 상기 IoT 기기로부터의 요청 트래픽의 수를, 엣지노드 별로 카운트하는 단계
를 더 포함하고,
상기 어플리케이션 복제본의 개수를 재조정하는 단계는,
상기 기간 동안, 상기 카운트된 요청 트래픽의 수와 일치하도록, 각 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 재조정하는 단계
를 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.According to claim 1,
Counting the number of request traffic from the IoT device generated during a selected period for each edge node
further comprising,
The step of re-adjusting the number of application replicas,
Rebalancing the number of application replicas for each edge node to match the counted number of request traffic during the period
A container-based dynamic resource distribution method for an IoT edge computing environment comprising a.
상기 IoT 기기에 대한 상태를 모니터링하는 단계; 및
상기 모니터링의 결과를 더 고려하여, 재조정하는 상기 어플리케이션 복제본의 개수를 결정하는 단계
를 더 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.According to claim 1,
monitoring the status of the IoT device; and
Determining the number of the application replicas to be readjusted, further considering the results of the monitoring
Container-based dynamic resource distribution method for IoT edge computing environment further comprising.
상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트하는 카운트부; 및
IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정하는 처리부
를 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.With respect to the cluster that constitutes the middle tier of Kubernetes-based edge computing,
a counting unit for counting the number of allocated application copies for the edge nodes included in the cluster; and
A processing unit that readjusts the number of application copies required by each of the edge nodes in consideration of the request traffic status from the IoT device
A container-based dynamic resource distribution device for an IoT edge computing environment comprising a.
상기 처리부는,
엣지노드 각각으로, 연결되는 상기 IoT 기기로부터의 요청 트래픽의 수에 상응하여, 엔드포인트 개체를 작성하고,
작성된 상기 엔드포인트 개체의 수가, 설정된 한계치를 초과하는 활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 busy로 판단하여, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 하는
사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.8. The method of claim 7,
The processing unit,
To each edge node, create an endpoint object corresponding to the number of request traffic from the connected IoT device,
For an active edge node in which the number of created endpoint entities exceeds a set threshold, rebalancing to increase and allocate the number of application copies by determining that the request traffic status in the IoT device is busy
Container-based dynamic resource distribution device for IoT edge computing environment.
상기 처리부는,
작성된 상기 엔드포인트 개체의 수가, 상기 한계치 이하이거나 '0'인 비활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 free로 판단하여, 상기 비활동 엣지노드에 할당되는 어플리케이션 복제본의 적어도 일부를, 상기 활동 엣지노드로 이동하여 할당시켜 재조정을 하는
사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.9. The method of claim 8,
The processing unit,
For an inactive edge node in which the number of created endpoint entities is less than or equal to the threshold value or '0', the status of request traffic from the IoT device is determined as free, and at least a portion of an application copy allocated to the inactive edge node , which moves to the active edge node and allocates
Container-based dynamic resource distribution device for IoT edge computing environment.
상기 처리부는,
상기 IoT 기기와의 연결 빈도에 따라, 상기 엣지노드 각각으로, 선호규칙비율을 결정하고,
결정된 상기 선호규칙비율이 높은 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 상대적으로 증가하여 할당시키는 재조정을 하는
사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.8. The method of claim 7,
The processing unit,
According to the connection frequency with the IoT device, each edge node determines a preference rule ratio,
For the edge node having the determined preference rule ratio high, readjustment is performed by relatively increasing the number of application replicas and allocating
Container-based dynamic resource distribution device for IoT edge computing environment.
상기 카운트부는,
선정된 기간 동안, 발생한 상기 IoT 기기로부터의 요청 트래픽의 수를, 엣지노드 별로 카운트하고,
상기 처리부는,
상기 기간 동안, 상기 카운트된 요청 트래픽의 수와 일치하도록, 각 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 재조정하는
사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.8. The method of claim 7,
The count unit,
Count the number of request traffic from the IoT device generated during the selected period for each edge node,
The processing unit,
For each edge node, readjusting the number of application replicas to match the counted number of request traffic during the period
Container-based dynamic resource distribution device for IoT edge computing environment.
상기 IoT 기기에 대한 상태를 모니터링하는 모니터링부
를 더 포함하고,
상기 처리부는,
상기 모니터링의 결과를 더 고려하여, 재조정하는 상기 어플리케이션 복제본의 개수를 결정하는
사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.8. The method of claim 7,
Monitoring unit for monitoring the status of the IoT device
further comprising,
The processing unit,
Further considering the results of the monitoring, determining the number of application replicas to rebalance
Container-based dynamic resource distribution device for IoT edge computing environment.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200078413A KR102410586B1 (en) | 2020-06-26 | 2020-06-26 | Method and device of dynamic resource allocation for container-based applications for iot edge computing infrastructure |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200078413A KR102410586B1 (en) | 2020-06-26 | 2020-06-26 | Method and device of dynamic resource allocation for container-based applications for iot edge computing infrastructure |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220000592A true KR20220000592A (en) | 2022-01-04 |
KR102410586B1 KR102410586B1 (en) | 2022-06-17 |
Family
ID=79342521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200078413A KR102410586B1 (en) | 2020-06-26 | 2020-06-26 | Method and device of dynamic resource allocation for container-based applications for iot edge computing infrastructure |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102410586B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230021790A (en) | 2021-08-06 | 2023-02-14 | 금오공과대학교 산학협력단 | Edge computing platform system based on data distribution service in industrial Internet of Things environment |
KR102527066B1 (en) * | 2022-11-21 | 2023-05-03 | 주식회사 데이터스트림즈 | Efficient dynamic resource allocation method and system for maximizing utilization in Kubernetes environment |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240002944A (en) | 2022-06-29 | 2024-01-08 | 주식회사 크래프트엑스 | Method and system for managing container to ensure the stability control services in smart factories |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019207624A (en) * | 2018-05-30 | 2019-12-05 | 富士通株式会社 | Information processing system, control method for information processing system, and control program for management device |
US20200026562A1 (en) * | 2017-05-04 | 2020-01-23 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a scheduler and workload manager that identifies and optimizes horizontally scalable workloads |
-
2020
- 2020-06-26 KR KR1020200078413A patent/KR102410586B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200026562A1 (en) * | 2017-05-04 | 2020-01-23 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a scheduler and workload manager that identifies and optimizes horizontally scalable workloads |
JP2019207624A (en) * | 2018-05-30 | 2019-12-05 | 富士通株式会社 | Information processing system, control method for information processing system, and control program for management device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230021790A (en) | 2021-08-06 | 2023-02-14 | 금오공과대학교 산학협력단 | Edge computing platform system based on data distribution service in industrial Internet of Things environment |
KR102527066B1 (en) * | 2022-11-21 | 2023-05-03 | 주식회사 데이터스트림즈 | Efficient dynamic resource allocation method and system for maximizing utilization in Kubernetes environment |
Also Published As
Publication number | Publication date |
---|---|
KR102410586B1 (en) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102410586B1 (en) | Method and device of dynamic resource allocation for container-based applications for iot edge computing infrastructure | |
JP6113849B2 (en) | Method and apparatus for automatically deploying geographically distributed applications in the cloud | |
KR102199278B1 (en) | Accelerated resource processing method and apparatus, and network function virtualization system | |
US10541901B2 (en) | Methods, systems and computer readable media for optimizing placement of virtual network visibility components | |
US7388839B2 (en) | Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems | |
Téllez et al. | A tabu search method for load balancing in fog computing | |
Hegyi et al. | Application orchestration in mobile edge cloud: Placing of IoT applications to the edge | |
US20060242647A1 (en) | Dynamic application placement under service and memory constraints | |
JP2018523365A (en) | System and method for virtual infrastructure management between operator networks | |
JP2001043199A (en) | Service-oriented resource management over different kind of servers | |
US11902108B2 (en) | Dynamic adaptive network | |
JP2018527668A (en) | Method and system for limiting data traffic | |
JP2023514487A (en) | Master data placement in distributed storage system | |
US20220318071A1 (en) | Load balancing method and related device | |
KR20200133478A (en) | Apparatus and method for adjusting resources in cloud system | |
WO2018158819A1 (en) | Distributed database system and resource management method for distributed database system | |
JP2023523523A (en) | Geographically focused workload sharing among nearby MEC hosts on multiple carriers | |
JPH05216842A (en) | Resources managing device | |
US20190042294A1 (en) | System and method for implementing virtualized network functions with a shared memory pool | |
KR102201799B1 (en) | Dynamic load balancing method and dynamic load balancing device in sdn-based fog system | |
CN112655185A (en) | Apparatus, method and storage medium for service distribution in software defined network | |
Alghamdi et al. | Fog Network Area Management Model for Managing Fog-cloud Resources in IoT Environment | |
Hamd et al. | Multicellular 4G and load balancing over cloud computing | |
KR101813165B1 (en) | Adaptive control plane management method for software defined network and apparatus thereof | |
Huang et al. | A multipath openflow controller for multiple TCP stream applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |