KR102410586B1 - 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치 - Google Patents

사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치 Download PDF

Info

Publication number
KR102410586B1
KR102410586B1 KR1020200078413A KR20200078413A KR102410586B1 KR 102410586 B1 KR102410586 B1 KR 102410586B1 KR 1020200078413 A KR1020200078413 A KR 1020200078413A KR 20200078413 A KR20200078413 A KR 20200078413A KR 102410586 B1 KR102410586 B1 KR 102410586B1
Authority
KR
South Korea
Prior art keywords
iot
edge
dynamic resource
resource distribution
application
Prior art date
Application number
KR1020200078413A
Other languages
English (en)
Other versions
KR20220000592A (ko
Inventor
응웬딘응웬
이승환
김태홍
Original Assignee
충북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020200078413A priority Critical patent/KR102410586B1/ko
Publication of KR20220000592A publication Critical patent/KR20220000592A/ko
Application granted granted Critical
Publication of KR102410586B1 publication Critical patent/KR102410586B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5033Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5055Allocation 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network

Abstract

사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치 및 동적 자원 분배 방법이 개시된다. 본 발명의 일실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법은, 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트하는 단계; 및 IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정하는 단계를 포함할 수 있다.

Description

사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치{METHOD AND DEVICE OF DYNAMIC RESOURCE ALLOCATION FOR CONTAINER-BASED APPLICATIONS FOR IOT EDGE COMPUTING INFRASTRUCTURE}
본 발명은, 클라이언트의 요청 트래픽 상태를 고려하여, 각 엣지노드로의 요청량에 비례하도록 응용 서비스(application)의 복제본을 분배하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치에 관한 것이다.
특히, 본 발명에서는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라, 응용 서비스의 복제본의 개수를 동적으로 조정 함으로써, 시스템 전체 처리량을 개선시키는 기술을 제공할 수 있게 한다.
근래에는, 수많은 사물인터넷(IoT) 기기에서 많은 양의 데이터가 생성되고 있으며, IoT 기기 수는 현재 200억대에서 2023년대에는 약 300억대까지 증가할 것으로 전망되고 있다.
또한, 클라우드 컴퓨팅 환경에서는, 다양한 IoT 기기에서 생성된 대규모의 데이터가 인터넷을 통해, 중앙 집중식 서버로 전송되어 처리된다.
이러한 트래픽 패턴은 네트워크의 높은 대역폭을 요구할 뿐만 아니라, 트래픽의 처리 과정에 따른 지연시간을 수반하게 되어, 실시간성에 민감한 증강현실, 지능형 교통 시스템, 스마트 시티 등과 같은 IoT 응용 서비스의 품질을 저하시킬 수 있다.
포그 컴퓨팅 기술로도 일컫는 엣지 컴퓨팅 기술은, 클라우딩 컴퓨팅의 중앙 집중식 전송에 따른 문제를 개선할 수 있는 새로운 컴퓨팅 패러다임으로, IoT 기기와 가까운 곳에 연산 자원을 배치 함으로써, 분석을 가속화하고 응용 서비스의 처리지연시간을 낮추는 등 여러 가지 이점을 제공할 수 있다.
즉, 엣지 컴퓨팅 기술은 데이터를 클라우드로 전송하는 대신, 엣지 컴퓨팅 자원을 통해 지연시간을 낮추고, 네트워크 전체의 트래픽 양을 줄일 수 있다. 또한, 엣지 컴퓨팅 기술은 엣지 컴퓨팅의 연산 자원을 활용함으로써 클라우드 연산자원의 부담을 줄일 수 있다.
엣지 컴퓨팅 환경에서는 응용서비스의 동적 배포 및 자원관리의 용이성을 고려하여 컨테이너를 사용하고 있다. 상기 컨테이너는 가상머신(VM, Virtual Machine) 처럼 전체 운영체제로 구성하는 대신, 어플리케이션과 관련한 라이브러리로 구성된 번들 패키지로 구성되어, 효율적이고 가벼워 빠른 배포를 가능하게 한다라는 장점을 가지고 있다.
그러나 엣지 컴퓨팅 기술에서는 컨테이너 간 리소스를 효율적으로 배포하고 관리하기 위한 도구를 필요로 한다.
쿠버네티스(Kubernetes, K8S)는 이를 위한 오픈소스 기반 컨테이너 오케스트레이션(Container Orchestration) 플랫폼으로, 주로 엣지 컴퓨팅 기술의 인프라 구축을 위하여 사용될 수 있다.
쿠버네티스에서는 응용 서비스의 배포, 리소스 관리, 자원 모니터링, 로드 밸런싱, 및 자동 확장 등 컨테이너 오케스트레이션을 위한 다양한 기능을 제공할 수 있다.
도 1은 일반적인 쿠버네티스 기반 엣지 컴퓨팅의 구조를 설명하는 도면이다.
도 1에 도시한 바와 같이, 쿠버네티스의 하위 계층(130)에는, 주로 중간 계층(120)의 엣지노드와 직접 연결되는 무선 게이트웨이를 통해, 상위 계층(110)으로 요청을 보내는 여러 IoT 기기들이 포함되어 있다.
쿠버네티스의 중간 계층(120)은 엣지 컴퓨팅(포크 컴퓨팅) 계층으로서, IoT 기기의 요청을 분석하고 계산할 수 있는 엣지노드를 포함하고 있다.
또한, 쿠버네티스의 상위 계층(110)은 데이터 센터의 여러 서버를 포함하는 클라우드 컴퓨팅 계층일 수 있다.
쿠버네티스에서는 복수의 임의 엣지노드들을 하나의 클러스터로 구성하고, 구성된 클러스터 단위로 클라이언트의 요청을 전달하고 공유함으로써, 자원 처리의 효율성을 높이게 된다.
그러나 쿠버네티스에서 구성된 클러스터 내 엣지노드의 협업 기능 역시 엣지노드 간의 요청 및 응답의 전달 과정에서 지연시간 및 메시지 처리 비용을 수반하게 된다.
이에 따라 각 엣지노드에서 필요한 만큼 적절한 자원을 분산함으로써, 노드 간 협업에 따른 비용을 최소화하는 것은, 엣지노드를 포함하는 클러스터의 시스템 성능을 최적화 할 수 있는 방법일 수 있다.
그러나, 종래의 쿠버네티스 플랫폼은, 두 가지 측면에서의 제한 사항을 갖는다.
첫째로는 쿠버네티스에서는, 엣지노드들에게 응용서비스 복제본의 분산배치를 지원하고 있으나, 분산배치의 지원시 각 엣지노드의 자원 요청 상태를 고려하는 기능은 결여되어 있다.
예컨대, 도 1에서 도시한 바와 같이, 엣지노드 Location A에 4개의 클라이언트, 엣지노드 Location B에 1개의 클라이언트, 엣지노드 Location C에 1개의 클라이언트가 연결되어 응용 서비스를 요청하고 있는 상황임에도 불구하고, 종래의 쿠버네티스에서는, 각 엣지노드로의 자원 요청 상태의 고려 없이, 엣지노드에 각 3개씩 동일한 수의 복제본을 배포하고 있다.
만약, 배포된 복제본 보다 더 많은 수의 요청이 입력되는 경우에는, 사용자의 요청 메시지를 수신한 엣지노드 대신 원격지의 다른 엣지노드에 의해서 처리될 가능성도 높아질 수 있다. 즉, 쿠버네티스에서는 각 응용 서비스의 요청을 받을 때마다 주어진 정책에 따라 해당 요청을 처리할 엣지노드들을 선택하고, 요청을 전달하게 되는데, 요청 메시지를 수신한 엣지노드가 아닌 원격지의 엣지노드로 전달될 경우에는 요청 처리 지연시간이 필연적으로 증가하게 되는 문제가 발생한다.
둘째로 쿠버네티스에서는, IoT 디바이스의 요청 상태의 동적 변화를 적용하지 못하고 있다.
즉, IoT 응용 서비스 인프라의 특성 상 각 엣지노드에 접근하는 요청량은 시간대별 사용자의 집중도 등에 따라 달라질 수 있다. 즉, 도 1과 같은 요청 자원 및 실제 할당 자원의 불균형 문제는 시간에 따라 지속적으로 발생할 수 있게 된다.
따라서, 쿠버네티스 자원 배분를 고려하여, 자원 프로비저닝 기능을 제공하는 기술 개발이 절실히 필요한 실정이다.
본 발명의 실시예는, 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능을 제공하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명의 실시예는, 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배하는 것을 목적으로 한다.
또한, 본 발명의 실시예는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선하는 것을 목적으로 한다.
본 발명의 일실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법은, 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트하는 단계; 및 IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정하는 단계를 포함할 수 있다.
또한, 본 발명의 실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치는, 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트하는 카운트부; 및 IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정하는 처리부를 포함하여 구성할 수 있다.
본 발명의 일실시예에 따르면, 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능을 제공하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치를 제공할 수 있다.
또한, 본 발명에 의해서는, 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배할 수 있다.
또한, 본 발명에 의해서는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선할 수 있다.
도 1은 일반적인 쿠버네티스 기반 엣지 컴퓨팅의 구조를 설명하는 도면이다.
도 2는 본 발명의 일실시예에 따른 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치의 구성을 도시한 블록도이다.
도 3은 본 발명의 실시예에 따른 스케줄링을 위한 nodeAffinity 설정을 예시하는 도면이다.
도 4는 본 발명에서 제안하는 기술의 구성요소 및 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른, ElasticFog에서의 동작 알고리즘을 설명하기 위한 도이다.
도 6은 본 발명의 일실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법을 도시한 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 2는 본 발명의 일실시예에 따른 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치의 구성을 도시한 블록도이다.
도 2을 참조하면, 본 발명의 일실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치(이하, '동적 자원 분배 장치'라 약칭함)(200)는 카운트부(210), 및 처리부(220)를 포함하여 구성할 수 있다. 또한, 실시예에 따라, 동적 자원 분배 장치(200)는 모니터링부(230)를 선택적으로 추가하여 구성할 수 있다.
우선, 카운트부(210)는 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트한다. 즉, 카운트부(210)는 엣지노드에 현재 할당되어 있는 응용 서비스 복제본의 수를 계수하는 역할을 할 수 있다.
상술한 도 1에서와 같이, 엣지노드 각각에는 초기에 설정된 수(예, 3개)의 어플리케이션 복제본이 할당되어 있을 수 있고, 이 경우, 카운트부(210)는 각 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 '3'으로 카운트 할 수 있다.
처리부(220)는 IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정한다. 즉, 처리부(220)는 엣지노드에 연결되는 IoT 기기로부터 입력되는 요청의 정도를 감안하여, 개별 엣지노드에 할당되어야 하는 어플리케이션 복제본의 개수를 동적으로 결정하는 역할을 할 수 있다.
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 처리부(220)는 4개의 IoT 기기에서 발생한 요청 트래픽의 양에 따라, 상기 4개의 IoT 기기가 연결되는 엣지노드에서의 필요한 어플리케이션 복제본의 개수를 '6'으로 결정할 수 있다. 이후 처리부(220)는 해당 엣지노드에 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 6개로 재조정할 수 있다.
엣지노드에서 필요로 하는 어플리케이션 복제본의 개수의 결정에 있어, 처리부(220)는 엣지노드 각각으로, 연결되는 상기 IoT 기기로부터의 요청 트래픽의 수에 상응하여, 엔드포인트 개체를 작성할 수 있다. 상기 엔드포인트(Endpoint) 개체는, IoT 기기에서 입력된 요청 트래픽을 엣지노드에서 처리될 때 일시 보관하는 수단일 수 있다.
본 발명의 기반이 되는 쿠버네티스에서, 처리부(220)는, IoT 기기에서 동일 기간에 입력되는 요청 트래픽의 양에 연동되어, 상기 엔드포인트 개체를 실시간으로 작성할 수 있다. 예컨대, 특정의 엣지노드와 연결되는 4개의 IoT 기기 각각에서 동일한 기간 동안에, 요청 트래픽을 발생시킴에 따라, 처리부(220)는 이들 4개의 IoT 기기 각각에 대한 엔드포인트 개체를 작성할 수 있다.
이후, 처리부(220)는 작성된 상기 엔드포인트 개체의 수가, 설정된 한계치를 초과하는 활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 busy로 판단하여, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 한다.
즉, 처리부(220)는 연결되고 있던 IoT 기기로부터 요청 트래픽이 대량으로 입력되고, 그에 따라 다수의 엔드포인트 개체가 한계치를 넘어 작성되는 엣지노드를, 활동 엣지노드로 결정하고, 결정된 활동 엣지노드에 대해 어플리케이션 복제본의 개수를 현재 보다 증가시키는 조정을 할 수 있다.
여기서, 한계치는, 엔드포인트 개체를 기준으로, 엣지노드가, 현재 실제 작업을 처리하는 노드인지를 판별할 수 있게 하는 기준치일 수 있고, 본 발명의 발명자의 경험과 연구 결과에 따른 임의의 값(예컨대, '5')으로 설정할 수 있다.
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 처리부(220)는 Location A에 작성되는 엔드포인트 개체가 한계치 '5'보다 많은 '6'일 경우, 해당 엣지노드를 활동 엣지노드로 결정하여, 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 6개로 재조정할 수 있다.
다른 실시예에서, 처리부(220)는, 작성된 상기 엔드포인트 개체의 수가, 상기 한계치 이하이거나 '0'인 비활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 free로 판단하여, 상기 비활동 엣지노드에 할당되는 어플리케이션 복제본의 적어도 일부를, 상기 활동 엣지노드로 이동하여 할당시켜 재조정을 한다.
즉, 처리부(220)는, 작성된 엔드포인트 개체의 수가 적어, 현재 실제 작업에 관여하지 않는 엣지노드를 비활동 엣지노드로 결정하고, 결정된 비활동 엣지노드에 할당되고 있던 일부의 어플리케이션 복제본을 활동 엣지노드로 이동시켜 할당하도록 할 수 있다.
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 처리부(220)는 Location B에 작성되는 엔드포인트 개체가 한계치 '5'보다 현저히 적은 '1'일 경우, 해당 엣지노드를 비활동 엣지노드로 결정하여, 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 1개로 재조정하고, 잔여되는 2개의 어플리케이션 복제본을, 활동 엣지노드인 Location A로 이동시켜 할당되도록 할 수 있다.
또 다른 실시예에서, 처리부(220)는, 상기 IoT 기기와의 연결 빈도에 따라, 상기 엣지노드 각각으로, 선호규칙비율을 결정한다. 즉, 처리부(220)는 IoT 기기와 접촉되는 횟수에 따라 개별 엣지노드에 대해 우선순위를 부여할 수 있다.
예컨대, IoT 기기와 접촉된 횟수가 많아, 연결 빈도가 가장 많은 Location A에 대해, 처리부(220)는 최우선수위인 '80'의 선호규칙비율을 결정할 수 있고, 다음으로 연결 빈도가 많은 Location C에 대해 선호규칙비율 '15'를 결정할 수 있으며, 가장 작은 연결 빈도의 Location B에 대해 선호규칙비율 '5'를 결정할 수 있다.
이후, 처리부(220)는 결정된 상기 선호규칙비율이 높은 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 상대적으로 증가하여 할당시키는 재조정을 할 수 있다. 즉, 처리부(220)는 결정된 선호규칙비율의 크기에 따라, 엣지노드 각각에 할당되어야 하는 어플리케이션 복제본의 수를 최적하게 재조정할 수 있다.
예컨대, 처리부(220)는 선호규칙비율 '66.66'의 Location A에 어플리케이션 복제본을 6개 할당으로 재조정하고, 선호규칙비율 '22.22'의 Location C에 어플리케이션 복제본을 2개 할당으로 재조정하며, 선호규칙비율 '11.11'의 Location B에 어플리케이션 복제본을 1개 할당으로 재조정할 수 있다.
다른 실시예에서, 동적 자원 분배 장치(200)는 요청 트래픽의 수에 정비례하여, 개별 엣지노드에 할당되는 어플리케이션 복제본의 개수를 재조정할 수 있다.
이를 위해, 카운트부(210)는 선정된 기간 동안, 발생한 상기 IoT 기기로부터의 요청 트래픽의 수를, 엣지노드 별로 카운트 할 수 있다. 즉, 카운트부(210)는 연결되는 IoT 기기에서 사전에 정한 기간에 동시에 발생하는 요청 트래픽의 수를 카운트 할 수 있다.
이후, 처리부(220)는, 상기 기간 동안, 상기 카운트된 요청 트래픽의 수와 일치하도록, 각 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 재조정할 수 있다. 즉, 처리부(220)는 카운트 된 요청 트래픽의 수와 동일하도록, 상기 기간 동안에 각 엣지노드에 할당되는 어플리케이션 복제본의 수를 결정할 수 있다.
이를 통해, 동적 자원 분배 장치(200)는 현재 발생하는 요청 트래픽에 최적하도록, 엣지노드 별 할당되는 어플리케이션 복제본의 수를 적절히 조정할 수 있어, 부족하거나 불필요한 어플리케이션 복제본이 존재하지 않도록 할 수 있다.
다른 실시예에서, 동적 자원 분배 장치(200)는 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정할 수 있다.
이를 위해, 동적 자원 분배 장치(200)는 모니터링부(230)를 추가로 구성할 수 있다. 즉, 모니터링부(230)는 클라이언트인 상기 IoT 기기에 대한 상태를 모니터링하는 역할을 할 수 있다.
여기서 IoT 기기에 대한 상태는, IoT 기기가 이용하는 통신 주파수 대역, 주변 노이즈 현황, 연결 프로토콜의 오류 유무, 요청 트래픽의 전달 중 손실율 등일 수 있다.
이후, 처리부(220)는, 상기 모니터링의 결과를 더 고려하여, 재조정하는 상기 어플리케이션 복제본의 개수를 결정할 수 있다. 즉, 처리부(220)는 모니터링을 통해 확인된 IoT 기기의 상태에 따라, IoT 기기와 연결되는 엣지노드에 할당되는 어플리케이션 복제본의 개수를 증가 또는 감소시킬 수 있다.
예컨대, 모니터링부(230)의 모니터링 결과, IoT 기기의 주변 노이즈 현황이, 요청 트래픽을 정상적으로 전달하는 데에 문제가 많을 정도로 안 좋을 경우, 처리부(220)는 해당 IoT 기기와 연결되는 엣지노드에 할당되는 어플리케이션 복제본의 개수를 감소시키는 재조정을 할 수 있다.
본 발명의 일실시예에 따르면, 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능을 제공하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치를 제공할 수 있다.
또한, 본 발명에 의해서는, 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배할 수 있다.
또한, 본 발명에 의해서는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선할 수 있다.
본 발명에서는 종래의 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능 제공 방법을 제안한다.
동적 자원 분배 장치(200)는 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배한다. 예를 들어 도 1의 조건에서, 본 발명의 동적 자원 분배 장치(200)는 엣지노드 Location A에 6개의 응용 서비스 복제본을 프로비저닝하고, 엣지노드 Location B에 1개의 응용 서비스 복제본을 프로비저닝하며, 엣지노드 Location C에 2개의 응용 서비스 복제본을 프로비저닝 할 수 있다.
또한, 본 발명은, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 응용 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선할 수 있다.
본 발명에서는 사물인터넷 엣지 컴퓨팅 환경에서 컨테이너 기반 자원을 동적으로 분배할 수 있는 기술을 제안한다.
즉, 본 발명은 사물인터넷 응용서비스의 고확장성 및 고가용성을 제공하기 위하여, 동일한 서비스를 제공하는 다수의 컨테이너 기반 복제본을 운영하는 엣지 컴퓨팅 플랫폼에 적용될 수 있다.
또한, 본 발명의 목적은 엣지노드의 클러스터 환경에서 각 엣지노드에 요청되는 트래픽 양을 고려하여 적절한 수의 복제본을 각 엣지노드에 배포할 수 있다.
동적 자원 분배 장치(200)는 각 엣지노드 별 수신 요청 수에 대한 정보를 수집하기 위해, 쿠버네티스 플랫폼 환경에서 해당 정보를 저장하기 위한 Endpoint 개체를 만든다.
동적 자원 분배 장치(200)는 사용자 요청 트래픽의 분배 모듈에 관한 쿠버네티스의 프록시 모드 중 user-space proxy 모드를 사용하여 각 엣지노드의 어플리케이션에 접근하는 요청 수를 주기적으로 카운팅하여 Endpoint 개체를 만든다.
즉, 쿠버네티스를 관장하는 마스터노드는 각 엣지노드 상의 Endpoint 개체를 읽어 네트워크 트래픽 상태를 알 수 있다.
또한, 마스터 노드의 스케쥴러는 nodeAffinity라는 우선순위 규칙을 이용하여, 어플리케이션별 복제본이 배포될 엣지노드를 특정할 수 있으며, nodeAffinity에는 필수(Required) 규칙과 선호(Preffered) 규칙 두 가지가 있다.
필수 규칙에서는 선택된 엣지노드가 각 어플리케이션별 복제본의 요구 사항을 충족해야 함을 의미하며, 선호 규칙에서는 각 엣지노드별 가중치 필드를 1에서 100까지 명시하고 가중치 값이 높은 엣지노드를 선택될 수 있도록 각 어플리케이션에 우선순위를 부여할 수 있다.
쿠버네티스 클러스터에서 각 노드는 키(key)-값(Value) 형태의 라벨을 가진다.
따라서 특정 노드에 복제본을 배치해야 하는 nodeAffinity 규칙의 구성은 노드의 라벨을 기반으로 한다.
동적 자원 분배 장치(200)는 각 어플리케이션의 복제본을 할당하기 위하여 선호 규칙을 활용할 수 있다.
먼저, 각 엣지노드의 레이블(label)은 노드의 위치를 기준으로 정해진다.
엣지노드 A는 키를 위치로 하고, 값을 위치의 이름으로 하여 정해지는 값을 갖는다(예 엣지노드 A의 라벨 : location - location A).
또한, 각 엣지노드의 가중치 필드의 값은, 위치에서 어플리케이션에 접근 요청하는 비율로 정한다.
도 3은 본 발명의 실시예에 따른 스케줄링을 위한 nodeAffinity 설정을 예시하는 도면이다.
도 3에 도시한 바와 같이, 엣지노드 A에서 “IoT-app-1” 어플리케이션에 접근 요청하는 비율은 80%이고, 엣지노드 B에 접근 요청하는 비율은 20%로 분산되어 있다.
이에 따라 도 3에서 가중치 값(weight)은 엣지노드 A에 80(도 3의 도번 310), 엣지노드 B에 20(도 3의 도번 320)으로 설정하게 된다.
도 4는 본 발명에서 제안하는 기술의 구성요소 및 동작을 설명하기 위한 도면이다.
본 발명은 컨테이너 오케스트레이션을 위한 오픈소스 프로젝트인 쿠버네티스 플랫폼 상에서 동작할 수 있다.
도 4에 도시한 바와 같이, 본 발명은 쿠버네티스의 마스터 노드(Master Node) 상의 응용 서비스를 위한 컨트롤 모듈의 형태로 구현될 수 있다.
즉, IoT 엣지 인프라 환경에서 실제 동작하는 워커 노드(Worker Node)는 엣지노드로 동작하게 되며, 각 워커 노드의 kube-proxy에서 각 엣지노드에 배포된 어플리케이션별 수신 요청 수를 카운트할 수 있다.
ElssticFog로 명명된 마스터 노드 상의 컨트롤 모듈에서는, 주기적으로 어플리케이션, 엣지노드 및 네트워크 상태의 최신 정보를 수집할 수 있다.
또한, 마스터 노드는 수집된 정보를 바탕으로 각 엣지노드에서 수신하는 요청량의 비율을 계산하고 nodeAffinity 규칙을 업데이트한다.
마지막으로 쿠버네티스 스케줄러에서는 nodeAffinity 규칙에 따라 어플리케이션 별 복제본의 수를 재분배 할 수 있다.
도 5는 본 발명의 실시예에 따른, ElasticFog에서의 동작 알고리즘을 설명하기 위한 도이다.
도 5의 동작 알고리즘에서는 도 4의 구성 요소 중에 쿠버네티스 마스터 노드 상의 ElasticFog 제어 모듈에서 동작하는 알고리즘을 기술한다.
도 5의 applicationList는 클러스터에서 실행 중인 어플리케이션의 목록이고, nodeList는 클러스터에 있는 엣지노드의 목록일 수 있다.
도 5의 LocationInfo는 각 위치의 노드 목록(예: location A:[node1]. location B: [node2])를 나타내며, applicationRequestInfo는 각 엣지노드에서의 어플리케이션 별 수신 요청 수를 저장할 수 있다(예: node1: 800, node2: 200).
도 5의 weightInfo는 어플리케이션의 각 위치에서 수신받는 요청의 비율을 나타낼 수 있다(예: location A: 80, location B: 20).
쿠버네티스 API에 의해서는 검색기능을 통해 nodeList와 applicationList를 검색할 수 있다.
또한, 도 5의 locationInfo는 엣지노드의 라벨을 기반으로 업데이트 되며, applicationReuestInfo는 어플리케이션에 해당되는 Endpoint 객체를 읽어 수집할 수 있다.
동작 알고리즘은 클러스터 내의 어플리케이션 별로 반복될 수 있다.
즉, 본 발명에서는, 각 어플리케이션 별로 요청량에 비례하도록 복제본의 수를 동적으로 조정할 수 있다.
본 발명은 nodeList, locationInfo 그리고 applicationRequestInfo을 통해, 클러스터 및 각 위치에서 어플리케이션의 수신한 요청의 수를 계산한다.
그리고 나서, 본 발명은 각 위치에서 수신한 요청의 비율을 계산하고 weightInfo에 업데이트한다.
또한, 본 발명은 weightInfo의 값을 토대로 nodeAffinity 규칙에 따라 각 위치의 weight 값을 업데이트 한다.
마지막으로, 본 발명은 어플리케이션 별로 nodeAffinity 규칙이 업데이트되면, 쿠버네티스의 스케쥴러는 각 노드 상의 복제분의 재분배를 수행하게 되며 이 때 nodeAffinity의 우선순위의 비율에 따라 복제본을 우선 배치하게 된다.
본 발명에 의해서는, 사물인터넷을 위한 엣지 컴퓨팅 인프라로 활용될 수 있고, 특히 사용자의 요청량 비율에 따라 연산자원을 동적 분배 함으로써, 엣지 컴퓨팅 인프라의 시스템 처리성능을 개선할 수 있다.
이하, 도 6에서는 본 발명의 실시예들에 따른 동적 자원 분배 장치(200)의 작업 흐름을 상세히 설명한다.
도 6은 본 발명의 일실시예에 따른, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법을 도시한 흐름도이다.
본 실시예에 따른 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법은 동적 자원 분배 장치(200)에 의해 수행될 수 있다.
우선, 동적 자원 분배 장치(200)는 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트한다(610). 단계(610)는 엣지노드에 현재 할당되어 있는 응용 서비스 복제본의 수를 계수하는 과정일 수 있다.
상술한 도 1에서와 같이, 엣지노드 각각에는 초기에 설정된 수(예, 3개)의 어플리케이션 복제본이 할당되어 있을 수 있고, 이 경우, 동적 자원 분배 장치(200)는 각 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 '3'으로 카운트 할 수 있다.
또한, 동적 자원 분배 장치(200)는 IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정한다(620). 단계(620)는 엣지노드에 연결되는 IoT 기기로부터 입력되는 요청의 정도를 감안하여, 개별 엣지노드에 할당되어야 하는 어플리케이션 복제본의 개수를 동적으로 결정하는 과정일 수 있다.
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 동적 자원 분배 장치(200)는 4개의 IoT 기기에서 발생한 요청 트래픽의 양에 따라, 상기 4개의 IoT 기기가 연결되는 엣지노드에서의 필요한 어플리케이션 복제본의 개수를 '6'으로 결정할 수 있다. 이후 동적 자원 분배 장치(200)는 해당 엣지노드에 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 6개로 재조정할 수 있다.
엣지노드에서 필요로 하는 어플리케이션 복제본의 개수의 결정에 있어, 동적 자원 분배 장치(200)는 엣지노드 각각으로, 연결되는 상기 IoT 기기로부터의 요청 트래픽의 수에 상응하여, 엔드포인트 개체를 작성할 수 있다. 상기 엔드포인트(Endpoint) 개체는, IoT 기기에서 입력된 요청 트래픽을 엣지노드에서 처리될 때 일시 보관하는 수단일 수 있다.
본 발명의 기반이 되는 쿠버네티스에서, 동적 자원 분배 장치(200)는, IoT 기기에서 동일 기간에 입력되는 요청 트래픽의 양에 연동되어, 상기 엔드포인트 개체를 실시간으로 작성할 수 있다. 예컨대, 특정의 엣지노드와 연결되는 4개의 IoT 기기 각각에서 동일한 기간 동안에, 요청 트래픽을 발생시킴에 따라, 동적 자원 분배 장치(200)는 이들 4개의 IoT 기기 각각에 대한 엔드포인트 개체를 작성할 수 있다.
이후, 동적 자원 분배 장치(200)는 작성된 상기 엔드포인트 개체의 수가, 설정된 한계치를 초과하는 활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 busy로 판단하여, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 한다.
즉, 동적 자원 분배 장치(200)는 연결되고 있던 IoT 기기로부터 요청 트래픽이 대량으로 입력되고, 그에 따라 다수의 엔드포인트 개체가 한계치를 넘어 작성되는 엣지노드를, 활동 엣지노드로 결정하고, 결정된 활동 엣지노드에 대해 어플리케이션 복제본의 개수를 현재 보다 증가시키는 조정을 할 수 있다.
여기서, 한계치는, 엔드포인트 개체를 기준으로, 엣지노드가, 현재 실제 작업을 처리하는 노드인지를 판별할 수 있게 하는 기준치일 수 있고, 본 발명의 발명자의 경험과 연구 결과에 따른 임의의 값(예컨대, '5')으로 설정할 수 있다.
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 동적 자원 분배 장치(200)는 Location A에 작성되는 엔드포인트 개체가 한계치 '5'보다 많은 '6'일 경우, 해당 엣지노드를 활동 엣지노드로 결정하여, 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 6개로 재조정할 수 있다.
다른 실시예에서, 동적 자원 분배 장치(200)는, 작성된 상기 엔드포인트 개체의 수가, 상기 한계치 이하이거나 '0'인 비활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 free로 판단하여, 상기 비활동 엣지노드에 할당되는 어플리케이션 복제본의 적어도 일부를, 상기 활동 엣지노드로 이동하여 할당시켜 재조정을 한다.
즉, 동적 자원 분배 장치(200)는, 작성된 엔드포인트 개체의 수가 적어, 현재 실제 작업에 관여하지 않는 엣지노드를 비활동 엣지노드로 결정하고, 결정된 비활동 엣지노드에 할당되고 있던 일부의 어플리케이션 복제본을 활동 엣지노드로 이동시켜 할당하도록 할 수 있다.
모든 엣지노드에 할당된 어플리케이션 복제본의 개수를 '3'으로 카운트 한 상술의 예에서, 동적 자원 분배 장치(200)는 Location B에 작성되는 엔드포인트 개체가 한계치 '5'보다 현저히 적은 '1'일 경우, 해당 엣지노드를 비활동 엣지노드로 결정하여, 할당되는 어플리케이션 복제본의 개수를 기존 3개에서 1개로 재조정하고, 잔여되는 2개의 어플리케이션 복제본을, 활동 엣지노드인 Location A로 이동시켜 할당되도록 할 수 있다.
또 다른 실시예에서, 동적 자원 분배 장치(200)는, 상기 IoT 기기와의 연결 빈도에 따라, 상기 엣지노드 각각으로, 선호규칙비율을 결정한다. 즉, 동적 자원 분배 장치(200)는 IoT 기기와 접촉되는 횟수에 따라 개별 엣지노드에 대해 우선순위를 부여할 수 있다.
예컨대, IoT 기기와 접촉된 횟수가 많아, 연결 빈도가 가장 많은 Location A에 대해, 동적 자원 분배 장치(200)는 최우선수위인 '80'의 선호규칙비율을 결정할 수 있고, 다음으로 연결 빈도가 많은 Location C에 대해 선호규칙비율 '15'를 결정할 수 있으며, 가장 작은 연결 빈도의 Location B에 대해 선호규칙비율 '5'를 결정할 수 있다.
이후, 동적 자원 분배 장치(200)는 결정된 상기 선호규칙비율이 높은 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 상대적으로 증가하여 할당시키는 재조정을 할 수 있다. 즉, 동적 자원 분배 장치(200)는 결정된 선호규칙비율의 크기에 따라, 엣지노드 각각에 할당되어야 하는 어플리케이션 복제본의 수를 최적하게 재조정할 수 있다.
예컨대, 동적 자원 분배 장치(200)는 선호규칙비율 '66.66'의 Location A에 어플리케이션 복제본을 6개 할당으로 재조정하고, 선호규칙비율 '22.22'의 Location C에 어플리케이션 복제본을 2개 할당으로 재조정하며, 선호규칙비율 '11.11'의 Location B에 어플리케이션 복제본을 1개 할당으로 재조정할 수 있다.
다른 실시예에서, 동적 자원 분배 장치(200)는 요청 트래픽의 수에 정비례하여, 개별 엣지노드에 할당되는 어플리케이션 복제본의 개수를 재조정할 수 있다.
이를 위해, 동적 자원 분배 장치(200)는 선정된 기간 동안, 발생한 상기 IoT 기기로부터의 요청 트래픽의 수를, 엣지노드 별로 카운트 할 수 있다. 즉, 동적 자원 분배 장치(200)는 연결되는 IoT 기기에서 사전에 정한 기간에 동시에 발생하는 요청 트래픽의 수를 카운트 할 수 있다.
이후, 동적 자원 분배 장치(200)는, 상기 기간 동안, 상기 카운트된 요청 트래픽의 수와 일치하도록, 각 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 재조정할 수 있다. 즉, 동적 자원 분배 장치(200)는 카운트 된 요청 트래픽의 수와 동일하도록, 상기 기간 동안에 각 엣지노드에 할당되는 어플리케이션 복제본의 수를 결정할 수 있다.
이를 통해, 동적 자원 분배 장치(200)는 현재 발생하는 요청 트래픽에 최적하도록, 엣지노드 별 할당되는 어플리케이션 복제본의 수를 적절히 조정할 수 있어, 부족하거나 불필요한 어플리케이션 복제본이 존재하지 않도록 할 수 있다.
다른 실시예에서, 동적 자원 분배 장치(200)는 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정할 수 있다.
즉, 동적 자원 분배 장치(200)는 클라이언트인 상기 IoT 기기에 대한 상태를 모니터링 할 수 있다.
여기서 IoT 기기에 대한 상태는, IoT 기기가 이용하는 통신 주파수 대역, 주변 노이즈 현황, 연결 프로토콜의 오류 유무, 요청 트래픽의 전달 중 손실율 등일 수 있다.
이후, 동적 자원 분배 장치(200)는, 상기 모니터링의 결과를 더 고려하여, 재조정하는 상기 어플리케이션 복제본의 개수를 결정할 수 있다. 즉, 동적 자원 분배 장치(200)는 모니터링을 통해 확인된 IoT 기기의 상태에 따라, IoT 기기와 연결되는 엣지노드에 할당되는 어플리케이션 복제본의 개수를 증가 또는 감소시킬 수 있다.
예컨대, 동적 자원 분배 장치(200)의 모니터링 결과, IoT 기기의 주변 노이즈 현황이, 요청 트래픽을 정상적으로 전달하는 데에 문제가 많을 정도로 안 좋을 경우, 동적 자원 분배 장치(200)는 해당 IoT 기기와 연결되는 엣지노드에 할당되는 어플리케이션 복제본의 개수를 감소시키는 재조정을 할 수 있다.
본 발명의 일실시예에 따르면, 쿠버네티스 자원 배분 문제점을 고려하여, 자원 프로비저닝 기능을 제공하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치를 제공할 수 있다.
또한, 본 발명에 의해서는, 클라이언트의 요청 트래픽 상태를 고려하여 각 엣지노드로의 요청량에 비례하도록 응용 서비스별 복제본을 분배할 수 있다.
또한, 본 발명에 의해서는, 클라이언트의 실시간 상태를 주기적으로 모니터링하여, 각 엣지노드별 요청 자원에 따라 서비스 복제본 수를 동적으로 조정하도록 함으로써, 시스템 전체 처리량을 개선할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
200 : 동적 자원 분배 장치
210 : 카운트부 220 : 처리부
230 : 모니터링부

Claims (13)

  1. 동적 자원 분배 장치에 의해 구현되는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법에 있어서,
    쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여,
    상기 동적 자원 분배 장치의 카운트부에서, 상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트하는 단계; 및
    상기 동적 자원 분배 장치의 처리부에서, IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정하는 단계
    를 포함하고,
    상기 어플리케이션 복제본의 개수를 재조정하는 단계는,
    상기 IoT 기기와 접촉되는 횟수에 관한 IoT 기기와의 연결 빈도에 따라, 상기 엣지노드 각각에 대해 우선순위로서의 선호규칙비율을 결정하는 단계; 및
    상기 엣지노드 각각에 대해, 결정된 상기 선호규칙비율의 크기 순으로, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 하는 단계
    를 포함하는, 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.
  2. 제1항에 있어서,
    상기 어플리케이션 복제본의 개수를 재조정하는 단계는,
    엣지노드 각각으로, 연결되는 상기 IoT 기기로부터의 요청 트래픽의 수에 상응하여, 엔드포인트(Endpoint) 개체를 작성하는 단계; 및
    작성된 상기 엔드포인트 개체의 수가, 설정된 한계치를 초과하는 활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 busy로 판단하여, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 하는 단계
    를 더 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.
  3. 제2항에 있어서,
    상기 어플리케이션 복제본의 개수를 재조정하는 단계는,
    작성된 상기 엔드포인트 개체의 수가, 상기 한계치 이하이거나 '0'인 비활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 free로 판단하여, 상기 비활동 엣지노드에 할당되는 어플리케이션 복제본의 적어도 일부를, 상기 활동 엣지노드로 이동하여 할당시켜 재조정을 하는 단계
    를 더 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법은,
    상기 카운트부에서, 선정된 기간 동안, 발생한 상기 IoT 기기로부터의 요청 트래픽의 수를, 엣지노드 별로 카운트하는 단계
    를 더 포함하고,
    상기 어플리케이션 복제본의 개수를 재조정하는 단계는,
    상기 기간 동안, 상기 카운트된 요청 트래픽의 수와 일치하도록, 각 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 재조정하는 단계
    를 더 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.
  6. 제1항에 있어서,
    상기 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법은,
    상기 동적 자원 분배 장치의 모니터링부에서, 상기 IoT 기기에 대한 상태를 모니터링하는 단계; 및
    상기 처리부에서, 상기 모니터링의 결과를 더 고려하여, 재조정하는 상기 어플리케이션 복제본의 개수를 결정하는 단계
    를 더 포함하는 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법.
  7. 쿠버네티스 기반 엣지 컴퓨팅의 중간 계층을 구성하는 클러스터와 연관하여,
    상기 클러스터에 포함되는 엣지노드에 대해, 할당되는 어플리케이션 복제본의 개수를 카운트하는 카운트부; 및
    IoT 기기에서의 요청 트래픽 상태를 고려하여, 상기 엣지노드 각각에서 필요로 하는 어플리케이션 복제본의 개수를 재조정하는 처리부
    를 포함하고,
    상기 처리부는,
    상기 IoT 기기와 접촉되는 횟수에 관한 IoT 기기와의 연결 빈도에 따라, 상기 엣지노드 각각에 대해 우선순위로서의 선호규칙비율을 결정하고,
    상기 엣지노드 각각에 대해, 결정된 상기 선호규칙비율의 크기 순으로, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 하는
    사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.
  8. 제7항에 있어서,
    상기 처리부는,
    엣지노드 각각으로, 연결되는 상기 IoT 기기로부터의 요청 트래픽의 수에 상응하여, 엔드포인트 개체를 작성하고,
    작성된 상기 엔드포인트 개체의 수가, 설정된 한계치를 초과하는 활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 busy로 판단하여, 상기 어플리케이션 복제본의 개수를 증가하여 할당시키는 재조정을 하는
    사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.
  9. 제8항에 있어서,
    상기 처리부는,
    작성된 상기 엔드포인트 개체의 수가, 상기 한계치 이하이거나 '0'인 비활동 엣지노드에 대해, 상기 IoT 기기에서의 요청 트래픽 상태를 free로 판단하여, 상기 비활동 엣지노드에 할당되는 어플리케이션 복제본의 적어도 일부를, 상기 활동 엣지노드로 이동하여 할당시켜 재조정을 하는
    사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.
  10. 삭제
  11. 제7항에 있어서,
    상기 카운트부는,
    선정된 기간 동안, 발생한 상기 IoT 기기로부터의 요청 트래픽의 수를, 엣지노드 별로 카운트하고,
    상기 처리부는,
    상기 기간 동안, 상기 카운트된 요청 트래픽의 수와 일치하도록, 각 엣지노드에 대해, 상기 어플리케이션 복제본의 개수를 재조정하는
    사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.
  12. 제7항에 있어서,
    상기 IoT 기기에 대한 상태를 모니터링하는 모니터링부
    를 더 포함하고,
    상기 처리부는,
    상기 모니터링의 결과를 더 고려하여, 재조정하는 상기 어플리케이션 복제본의 개수를 결정하는
    사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 장치.
  13. 제1항, 제2항, 제3항, 제5항, 제6항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
KR1020200078413A 2020-06-26 2020-06-26 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치 KR102410586B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200078413A KR102410586B1 (ko) 2020-06-26 2020-06-26 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200078413A KR102410586B1 (ko) 2020-06-26 2020-06-26 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20220000592A KR20220000592A (ko) 2022-01-04
KR102410586B1 true KR102410586B1 (ko) 2022-06-17

Family

ID=79342521

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200078413A KR102410586B1 (ko) 2020-06-26 2020-06-26 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102410586B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240002944A (ko) 2022-06-29 2024-01-08 주식회사 크래프트엑스 스마트공장의 설비 제어 서비스 안정성 보장을 위한컨테이너 관리 방법 및 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230021790A (ko) 2021-08-06 2023-02-14 금오공과대학교 산학협력단 산업용 사물 인터넷 환경에서 데이터 분산 서비스 기반의 엣지 컴퓨팅 시스템
KR102527066B1 (ko) * 2022-11-21 2023-05-03 주식회사 데이터스트림즈 쿠버네티스 환경에서 활용도를 극대화하기 위한 효율적인 동적 리소스 할당 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019207624A (ja) * 2018-05-30 2019-12-05 富士通株式会社 情報処理システム、情報処理システムの制御方法及び管理装置の制御プログラム
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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 (ja) * 2018-05-30 2019-12-05 富士通株式会社 情報処理システム、情報処理システムの制御方法及び管理装置の制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240002944A (ko) 2022-06-29 2024-01-08 주식회사 크래프트엑스 스마트공장의 설비 제어 서비스 안정성 보장을 위한컨테이너 관리 방법 및 시스템

Also Published As

Publication number Publication date
KR20220000592A (ko) 2022-01-04

Similar Documents

Publication Publication Date Title
KR102410586B1 (ko) 사물인터넷 엣지 컴퓨팅 환경을 위한 컨테이너 기반 동적 자원 분배 방법 및 장치
JP6113849B2 (ja) クラウド内に地理的分散型のアプリケーションを自動的に配備する方法および装置
KR102199278B1 (ko) 가속 자원 처리 방법 및 장치, 및 네트워크 기능 가상화 시스템
US7388839B2 (en) Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
US10541901B2 (en) Methods, systems and computer readable media for optimizing placement of virtual network visibility components
US8230438B2 (en) Dynamic application placement under service and memory constraints
Téllez et al. A tabu search method for load balancing in fog computing
JP2018523365A (ja) 事業者ネットワーク間の仮想インフラストラクチャ管理のためのシステムおよび方法
JP2001043199A (ja) 異種サーバにまたがるサービス指向資源管理
US11902108B2 (en) Dynamic adaptive network
JP2018527668A (ja) データトラフィックを制限するための方法及びシステム
JP2023514487A (ja) 分散ストレージシステムにおけるマスターデータ配置
US20220318071A1 (en) Load balancing method and related device
KR20200133478A (ko) 클라우드 시스템에서 자원을 조정하기 위한 장치 및 방법
JPH05216842A (ja) 資源管理装置
US20190042294A1 (en) System and method for implementing virtualized network functions with a shared memory pool
KR102201799B1 (ko) 소프트웨어 정의 네트워크 기반 포그 시스템에서의 동적 로드밸런싱 방법 및 동적 로드밸런싱 장치
CN112655185A (zh) 软件定义网络中的服务分配的设备、方法和存储介质
Hamd et al. Multicellular 4G and load balancing over cloud computing
KR101813165B1 (ko) 소프트웨어 정의 네트워크를 위한 적응적 제어 평면 관리 방법 및 장치
Alghamdi et al. Fog Network Area Management Model for Managing Fog-cloud Resources in IoT Environment
KR20230119937A (ko) 트래픽 지역성을 고려한 컨테이너 기반 자원 자동 확장 방법, 및 자원 자동 확장 장치
Huang et al. A multipath openflow controller for multiple TCP stream applications
KR102400158B1 (ko) 계층적 5g 네트워크 구조에서 서비스 체이닝을 위한 동적 자원 할당 방법 및 장치
WO2024028990A1 (ja) アクセラレータ状態制御装置、アクセラレータ状態制御システム、アクセラレータ状態制御方法およびプログラム

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