KR102496674B1 - 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템 - Google Patents

쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템 Download PDF

Info

Publication number
KR102496674B1
KR102496674B1 KR1020210011162A KR20210011162A KR102496674B1 KR 102496674 B1 KR102496674 B1 KR 102496674B1 KR 1020210011162 A KR1020210011162 A KR 1020210011162A KR 20210011162 A KR20210011162 A KR 20210011162A KR 102496674 B1 KR102496674 B1 KR 102496674B1
Authority
KR
South Korea
Prior art keywords
data analysis
containers
auto
container
replicated
Prior art date
Application number
KR1020210011162A
Other languages
English (en)
Other versions
KR20220054154A (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 숭실대학교 산학협력단
Publication of KR20220054154A publication Critical patent/KR20220054154A/ko
Application granted granted Critical
Publication of KR102496674B1 publication Critical patent/KR102496674B1/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/5083Techniques for rebalancing the load in a distributed system
    • 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
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Automatic Analysis And Handling Materials Therefor (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템에 관한 것이다.
본 발명에 따르면, 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템에 있어서, 쿠버네티스 기반의 데이터 분석 오토 스케일링 시스템에 필요한 파라미터를 설정하고, 현재 동작중인 데이터 분석 컨테이너의 CPU 사용량을 수집하여 복제할 데이터 분석 컨테이너의 개수를 연산하는 마스터 노드, 그리고 상기 마스터 노드로부터 상기 연산된 복제할 데이터 분석 컨테이너의 개수만큼 상기 데이터 분석 컨테이너를 복제하는 복수의 워커 노드를 포함하며, 상기 마스터 노드는, 상기 복수의 워커 노드로부터 수집된 상기 데이터 분석 컨테이너의 각각의 CPU 사용량을 수집하고, 상기 데이터 분석 컨테이너의 각각의 CPU 사용량 중에서 기준 값을 초과한 데이터 분석 컨테이너의 개수를 연산하고, 연산된 결과를 오토 스케일링 알고리즘에 적용하여 복제할 데이터 분석 컨테이너의 개수를 연산하여 상기 복수의 워커 노드에 데이터 분석 컨테이너의 복제를 요청한다.
이와 같이 본 발명에 따르면, 분석 서버의 로드가 증가할 경우 분석서버를 복제하여 복제된 분석 서버로 로드를 분산함으로써, 로드가 감소한 분석 서버는 더 빨리 데이터 분석을 수행할 수 있고 사용자에게 빠른 응답을 제공할 수 있다.

Description

쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템{SYSTEM FOR ANALYSISING DATA AUTO SCALING BASED ON KUBERNETES}
본 발명은 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템에 있어서, 실시간 스트리밍 방식을 이용하는 데이터 분석 시스템에 쿠버네티스를 적용하여 데이터 분석 시스템의 로드를 감소시키기 위한 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템에 관한 것이다.
초고속 인터넷의 보급과 다양한 SNS의 등장으로 인해 인터넷에는 방대한 양의 데이터가 축적되고 있다. 데이터 분석은 방대한 양의 데이터로부터 의미 있는 정보를 추출하기 위하여 다양한 분야에서 시행되고 있다. 기존의 데이터 분석 방식은 배치 방식을 사용한다.
배치 방식의 데이터 분석은 데이터가 일정량 쌓인 후에 분석을 하기 때문에 금융기관, 소셜 미디어, 인터넷 쇼핑몰에서는 적용하는데 어려움이 있다. 실시간으로 축적되는 데이터에 대한 분석의 수요가 증가하면서 실시간 데이터 분석에 대한 연구가 활발히 진행되고 있다. 실시간 데이터 분석에서는 배치 방식 대신 스트리밍 방식을 사용한다.
스트리밍 방식은 실시간으로 생성되는 데이터를 분석 서버로 전송하여 분석을 하고 결과를 수집한다.
그러나 스트리밍 방식은 분석 서버의 로드가 증가하여 응답이 늦어지면 다음 데이터를 분석할 수 없고 전체적인 분석 시간이 증가하게 된다. 기존의 실시간 데이터 분석 기술은 수집, 저장, 분석 과정에서 버퍼링이 발생하거나 구현 기법이 한정적인 단점이 있다.
따라서, 데이터 분석 서버의 로드를 감소시키고 데이터 분석 시간을 단축시키기 위한 방법이 필요하게 되었다.
본 발명의 배경이 되는 기술은 대한민국 등록특허 제10-1533719호(2015.07.03. 공고)에 개시되어 있다.
본 발명이 이루고자 하는 기술적 과제는 실시간 스트리밍 방식을 이용하는 데이터 분석 시스템에 쿠버네티스를 적용하여 데이터 분석 시스템의 로드를 감소시키기 위한 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템에 관한 것이다.
이러한 기술적 과제를 이루기 위한 본 발명의 실시 예에 따르면, 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템에 있어서, 쿠버네티스 기반의 데이터 분석 오토 스케일링 시스템에 필요한 파라미터를 설정하고, 현재 동작중인 데이터 분석 컨테이너의 CPU 사용량을 수집하여 복제할 데이터 분석 컨테이너의 개수를 연산하는 마스터 노드, 그리고 상기 마스터 노드로부터 상기 연산된 복제할 데이터 분석 컨테이너의 개수만큼 상기 데이터 분석 컨테이너를 복제하는 복수의 워커 노드를 포함하며, 상기 마스터 노드는, 상기 복수의 워커 노드로부터 수집된 상기 데이터 분석 컨테이너의 각각의 CPU 사용량을 수집하고, 상기 데이터 분석 컨테이너의 각각의 CPU 사용량 중에서 기준 값을 초과한 데이터 분석 컨테이너의 개수를 연산하고, 연산된 결과를 오토 스케일링 알고리즘에 적용하여 복제할 데이터 분석 컨테이너의 개수를 연산하여 상기 복수의 워커 노드에 데이터 분석 컨테이너의 복제를 요청한다.
상기 마스터 노드는, 상기 워커 노드와 데이터를 송수신하고, 상기 데이터 분석 컨테이너의 생성 또는 삭제 명령을 전달하는 API 서버(Application Programming Interface Server), 오토 스케일링 관련 파라미터를 설정하고 오토 스케일링 알고리즘을 통하여 복제할 컨테이너의 개수를 판단하는 HPA(Horizontal Pod Auto scaler), 상기 워커 노드에 배포된 데이터 분석 컨테이너의 사용량을 수집하는 상기 매트릭스 서버(Matrics Server), 그리고, 상기 데이터 분석 컨테이너의 라이프 사이클과 로드 밸런싱을 수행하고 상기 워커 노드의 동작이 멈추면 상기 데이터 분석 컨테이너를 재시작하도록 제어하는 컨트롤러(Controller)를 포함할 수 있다.
상기 워커 노드는, 데이터 분석을 실행하는 제1 워커 노드, 그리고 상기 HPA에 의해 복제되어 상기 데이터 분석을 실행하는 복수의 제2 워커 노드를 포함할 수 있다.
상기 제1 워커 노드 및 복수의 제2 워커 노드는, 상기 마스터 노드의 명령을 수신하는 큐블랫(Kubelet), 상기 데이터 분석 오토 스케일링 시스템의 런타임 환경을 설정하는 독커(Docker)를 각각 포함할 수 있다.
상기 제1 워크 노드는, 팟 단위로 배포되는 데이터 분석 컨테이너(Data Analysis Container)를 더 포함하며, 상기 복수의 제2 워크 노드는, 팟 단위로 배포되는 상기 HPA에 의해 오토 스케일링된 데이터 분석 컨테이너(Scaled Data Analysis Container)을 더 포함할 수 있다.
상기 HPA는, 아래의 수학식을 이용하여 상기 복제할 데이터 분석 컨테이너의 개수를 연산할 수 있다.
Figure 112021010622019-pat00001
여기서,
Figure 112021010622019-pat00002
는 상기 복제할 데이터 분석 컨테이너의 개수이고,
Figure 112021010622019-pat00003
는 상기 워커 노드에서 현재 동작중인 데이터 분석 컨테이너 및 오토 스케일링된 데이터 분석 컨테이너의 개수이고,
Figure 112021010622019-pat00004
는 현재 작동중인 데이터 분석 컨테이너 CPU의 사용률이고,
Figure 112021010622019-pat00005
은 하나의 데이터 분석 컨테이너가 사용 가능한 CPU의 사용률이다.
상기 HPA는, 상기
Figure 112021010622019-pat00006
이 상기
Figure 112021010622019-pat00007
를 초과하는지 판단하고, 상기
Figure 112021010622019-pat00008
이 상기
Figure 112021010622019-pat00009
를 초과하는 경우, 상기
Figure 112021010622019-pat00010
이 데이터 분석 컨테이너의 최대 복제본의 개수(
Figure 112021010622019-pat00011
) 미만인지 판단할 수 있다.
상기 HPA는, 상기
Figure 112021010622019-pat00012
이 상기
Figure 112021010622019-pat00013
미만이면, 상기
Figure 112021010622019-pat00014
만큼 상기 데이터 분석 컨테이너를 복제할 수 있다
상기 HPA는, 상기
Figure 112021010622019-pat00015
이 상기
Figure 112021010622019-pat00016
이상이면, 상기
Figure 112021010622019-pat00017
만큼 상기 데이터 분석 컨테이너를 복제할 수 있다.
상기 HPA는, 상기
Figure 112021010622019-pat00018
이 상기
Figure 112021010622019-pat00019
를 초과하지 않는 경우, 상기
Figure 112021010622019-pat00020
이 1을 초과하는지 판단하고, 상기
Figure 112021010622019-pat00021
이 1을 초과하면, 상기
Figure 112021010622019-pat00022
에서 상기
Figure 112021010622019-pat00023
의 차이만큼 복제되어 있는 상기 데이터 분석 컨테이너를 삭제할 수 있다.
상기 HPA는, 상기
Figure 112021010622019-pat00024
1이하이면, 상기 데이터 분석 컨테이너를 제외한 나머지 오토 스케일링된 데이터 분석 컨테이너를 제거할 수 있다.
이와 같이 본 발명에 따르면, 분석 서버의 로드가 증가할 경우 분석서버를 복제하여 복제된 분석 서버로 로드를 분산함으로써, 로드가 감소한 분석 서버는 더 빨리 데이터 분석을 수행할 수 있고 사용자에게 빠른 응답을 제공할 수 있다.
또한, 데이터 분석 서버에 람다와 같은 다양한 데이터 분석 기법을 적용할 수 있으며, 데이터 분석 기법을 구현하여 컨테이너로 쿠버네티스 클러스터에 올려서 동작시킬 수 있다.
또한, 사용자와 데이터 분석 서버를 연결하고 분석 서버의 로드가 증가할 경우 복제 되기 때문에 1대 N으로 연결되어 데이터 분석을 수행함으로써, 데이터 분석의 전체적인 시간을 단축할 수 있다.
도 1은 본 발명의 실시예에 따른 데이터 분석 오토 스케일링 시스템을 설명하기 위한 구성도이다.
도 2는 본 발명의 실시예에 따른 데이터 분석 오토 스케일링 시스템을 이용한 데이터 분석 오토 스케일링 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 실시예에 따른 오토 스케일링에 필요한 파라미터를 설명하기 위한 도면이다.
도 4는 도 2의 S250 단계를 설명하기 위한 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시 예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
그러면 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 데이터 분석 오토 스케일링 시스템을 설명하기 위한 구성도이다.
도 1에서 나타낸 것처럼, 본 발명의 실시예에 따른 데이터 분석 오토 스케일링 시스템(100)은 하나의 마스터 노드(110)와 복수의 워커 노드(120)로 구성된다.
먼저, 마스터 노드(110)는 쿠버네티스 기반의 데이터 분석 오토 스케일링 시스템에 필요한 파라미터를 설정하고, 현재 동작중인 데이터 분석 컨테이너의 CPU 사용량을 수집하여 복제할 데이터 분석 컨테이너의 개수를 연산한다.
또한, 마스터 노드(110)는 복수의 워커 노드(120)로부터 수집된 데이터 분석 컨테이너의 각각의 CPU 사용량을 수집하고, 데이터 분석 컨테이너(125)의 각각의 CPU 사용량 중에서 기준 값을 초과한 데이터 분석 컨테이너의 개수를 연산하고, 연산된 결과를 오토 스케일링 알고리즘에 적용하여 복제할 데이터 분석 컨테이너(125)의 개수를 연산하여 복수의 워커 노드(120)에 데이터 분석 컨테이너의 복제를 요청한다.
그리고, 워커 노드(120)는 마스터 노드로부터 연산된 복제할 데이터 분석 컨테이너의 개수만큼 데이터 분석 컨테이너를 복제한다.
이때, 쿠버네티스(Kubernetes)는 애플리케이션 실행시 생성되는 데이터 분석 컨테이너를 자동으로 생성, 삭제, 관리해주는 방법으로, 본 발명에서는 쿠버네티스를 이용하여 워커 노드(120)의 데이터 분석 컨테이너를 복제, 삭제 및 관리하기 위해 사용한다.
도 1에서 나타낸 것처럼, 마스터 노드(110)는 API 서버(111), HPA(112), 매트릭스 서버(113) 및 컨트롤러(114)를 포함한다.
먼저, API 서버(111)는 워커 노드(120)와 데이터를 송수신하고, 데이터 분석 컨테이너의 생성 또는 삭제 명령을 전달한다.
다음으로, HPA(112)는 오토 스케일링 관련 파라미터를 설정하고 오토 스케일링 알고리즘을 통하여 복제할 컨테이너의 개수를 판단한다.
다음으로, 매트릭스 서버(113)는 워커 노드에 배포된 데이터 분석 컨테이너의 사용량을 수집한다.
다음으로, 컨트롤러(114)는 데이터 분석 컨테이너의 라이프 사이클과 로드 밸런싱을 수행하고 워커 노드(120)의 동작이 멈추면 데이터 분석 컨테이너를 재시작하도록 제어한다.
그리고 본 발명의 실시예에 따른 복수의 워커 노드(120)는 하나의 제1 워커 노드(121)와 복수의 제2 워커 노드(122)를 포함한다.
여기서, 제1 워커노드(121)는 데이터 분석을 실행하며, 큐블랫(123), 독커(124) 및 팟 단위로 배포되는 데이터 분석 컨테이너(125)를 포함한다.
그리고, 제2 워커 노드(122)는 큐블랫(123), 독커(124) 및 팟 단위로 배포되는 상기 HPA에 의해 오토 스케일링된 데이터 분석 컨테이너(126)를 포함한다.
여기서, 큐블랫(123)은 마스터 노드(110)의 명령을 수신한다.
즉, 큐블랫(Kubelet)(123)은 API 서버(111)로부터 데이터 분석 컨테이너(125)의 생성, 복제 또는 삭제 명령을 수신한다.
그리고, 독커(Docker)(124)는 데이터 분석 오토 스케일링 시스템(100)의 런타임 환경을 설정한다.
여기서, 런타임 환경은 데이터 분석 컨테이너(125)가 변수에 접근하는 방식, 프로시저 간 매개변수를 전달하는 매커니즘 또는 운영 체제와의 통신방법과 같은 환경을 설정한다.
다음으로, 데이터 분석 컨테이너(125) 및 오토 스케일링된 데이터 분석 컨테이너(126)는 데이터 분석을 실행하기 위한 컨테이너이다.
이때, 오토 스케일링된 데이터 분석 컨테이너(126)는 HPA(112)에 의해 복제된 데이터 분석 컨테이너(125)를 의미한다.
여기서, 데이터 분석 컨테이너(125) 및 오토 스케일링된 데이터 분석 컨테이너(126)는 물리적인 서버 위에서 동작하는 소형의 독립적인 가상 환경이고, 가상화되어 서버에서 독립적으로 실행된다.
이하에서는 도 2 내지 도 4를 이용하여 본 발명의 실시예에 따른 데이터 분석 오토 스케일링 방법을 설명한다.
도 2는 본 발명의 실시예에 따른 데이터 분석 오토 스케일링 시스템을 이용한 데이터 분석 오토 스케일링 방법을 설명하기 위한 순서도이다.
먼저, 본 발명의 실시예에 따른 데이터 분석 오토 스케일링 시스템(100)은 HPA(112)에 오토 스케일링에 필요한 파라미터를 설정한다(S210).
도 3은 본 발명의 실시예에 따른 오토 스케일링에 필요한 파라미터를 설명하기 위한 도면이다.
도 3에서 나타낸 것처럼, 본 발명의 실시예에 따른 HPA(112)는
Figure 112021010622019-pat00025
,
Figure 112021010622019-pat00026
,
Figure 112021010622019-pat00027
,
Figure 112021010622019-pat00028
Figure 112021010622019-pat00029
를 설정한다.
이때,
Figure 112021010622019-pat00030
은 복제할 데이터 분석 컨테이너(125)의 개수이고,
Figure 112021010622019-pat00031
는 워커 노드에서 현재 동작중인 데이터 분석 컨테이너(125) 및 오토 스케일링된 데이터 분석 컨테이너(126)의 개수이고,
Figure 112021010622019-pat00032
는 현재 작동중인 데이터 분석 컨테이너(125) CPU의 사용률이고,
Figure 112021010622019-pat00033
은 하나의 데이터 분석 컨테이너(125)가 사용 가능한 CPU의 사용률이며,
Figure 112021010622019-pat00034
는 데이터 분석 컨테이너(125)의 최대 복제본의 개수이다.
다음으로, HPA(112)는 매트릭스 서버(113)에 복수의 워커 노드(120)의 데이터 분석 컨테이너(125)의 CPU 사용량 모니터링을 요청한다(S220).
즉, HPA(112)는 데이터 분석 오토 스케일링 시스템(100)의 현재 사용중인 CPU의 사용량에 대하여 모니터링을 매트릭스 서버(113)에 요청한다.
다음으로, 매트릭스 서버(113)는 제1 워커 노드(121)와 제2 워커 노드(122)에서 현재시점에서의 CPU 사용량을 수집한다(S230).
다음으로, 매트릭스 서버(113)는 수집된 제1 워커 노드(121)와 제2 워커 노드(122)에서 현재시점에서의 CPU 사용량을 HPA(112)에 제공하고, HPA(112)는 제1 워커 노드(121)와 제2 워커 노드(122)에서 현재시점에서의 CPU 사용량이 설정 값의 초과 여부를 확인한다(S240).
여기서, 설정 값은 데이터 분석 오토 스케일링 시스템(100)의 동작이 원활하게 동작할 수 있는 값이며, 이는 데이터 분석 오토 스케일링 시스템(100)의 구성에 따라 변경되거나 사용자의 선택에 의해 변경될 수 있다.
다음으로, 제1 워커 노드(121)와 제2 워커 노드(122)에서 현재시점에서의 CPU 사용량이 설정 값을 초과하면, HPA(112)는 오토 스케일링 알고리즘을 통해 데이터 분석 컨테이너(125)의 복제본 개수를 선정한다(S250).
즉, HPA(112)는 오토 스케일링된 데이터 분석 컨테이너(126)의 개수를 선정한다.
여기서, 오토 스케일링 알고리즘은 데이터 분석 컨테이너(125)의 CPU 사용량에 따라 복제본 개수를 연산하고, 최종 복제본 개수를 결정하기 위한 알고리즘이다.
도 4는 도 2의 S250 단계를 설명하기 위한 순서도이다.
도 4에서 나타낸 것처럼, HPA(112)는 복제할 데이터 분석 컨테이너(125)의 개수를 연산한다(251).
즉, HPA(112)는 아래의 수학식을 이용하여
Figure 112021010622019-pat00035
을 연산한다.
Figure 112021010622019-pat00036
이때,
Figure 112021010622019-pat00037
는 다수의 컨테이너가 실행 중일 경우 CPU 사용률의 평균을 나타내며,
Figure 112021010622019-pat00038
은 컨테이너가 사용 가능한 CPU 사용률을 의미하며 백분율로 표현된다.
예를 들어,
Figure 112021010622019-pat00039
이 20%,
Figure 112021010622019-pat00040
이 40%,
Figure 112021010622019-pat00041
가 1이면,
Figure 112021010622019-pat00042
은 수학식 1을 통해 2로 연산된다.
다음으로, HPA(112)는
Figure 112021010622019-pat00043
Figure 112021010622019-pat00044
를 초과하는지 판단한다(S252)
다음으로,
Figure 112021010622019-pat00045
Figure 112021010622019-pat00046
를 초과하는 경우, HPA(112)는
Figure 112021010622019-pat00047
Figure 112021010622019-pat00048
미만인지 판단한다(S253).
그리고,
Figure 112021010622019-pat00049
Figure 112021010622019-pat00050
미만이면, HPA(112)는
Figure 112021010622019-pat00051
만큼 데이터 분석 컨테이너(125)를 복제한다(S254).
반면에,
Figure 112021010622019-pat00052
Figure 112021010622019-pat00053
이상이면, HPA(112)는
Figure 112021010622019-pat00054
만큼 데이터 분석 컨테이너(125)를 복제한다(S255).
예를 들어, 수학식 1을 통해 연산된
Figure 112021010622019-pat00055
이 2이고,
Figure 112021010622019-pat00056
의 값이 3인 경우, HPA(112)는 2개의 데이터 분석 컨테이너(125)를 복제한다.
다음으로,
Figure 112021010622019-pat00057
Figure 112021010622019-pat00058
를 초과하지 않는 경우, HPA(112)는
Figure 112021010622019-pat00059
이 1을 초과하는지 판단한다(S256).
이때,
Figure 112021010622019-pat00060
이 1을 초과하면, HPA(112)는
Figure 112021010622019-pat00061
에서
Figure 112021010622019-pat00062
의 차이만큼 복제되어 있는 데이터 분석 컨테이너(125)를 삭제한다(S257).
반면에,
Figure 112021010622019-pat00063
1이하이면, HPA(112)는 데이터 분석 컨테이너(125)를 제외한 나머지 오토 스케일링된 데이터 분석 컨테이너(126)를 제거한다(S258).
그러면, HPA(112)는 데이터 분석 컨테이너(125)의 복제 또는 삭제 명령을 컨트롤러(114)에 제공한다(S260).
그러면, 컨트롤러(114)는 API 서버(111)을 통해 제1 워커 노드(121) 또는 제2 워커노드(122)에 데이터 분석 컨테이너(125)의 복제본 생성 및 로드 밸런싱을 수행하도록 제어한다(S270).
즉, API 서버(111)는 컨트롤러(114)부터 수신한 데이터 분석 컨테이너(125)의 복제 또는 삭제 명령을 제1 워커 노드(121) 또는 제2 워커노드(122)에 제공한다.
여기서, 로드 밸런싱은 병렬로 운용되고 있는 기기 사이에서의 부하가 가능한 한 균등하게 되도록 작업 처리를 분산하여 할당하는 것을 의미하며, 본 발명에서는 데이터 분석 컨테이너(125)와 오토 스케일링된 데이터 분석 컨테이너(126)에 부하를 균등하게 분배되도록 제어한다.
이와 같이 본 발명의 실시예에 따르면, 분석 서버의 로드가 증가할 경우 분석서버를 복제하여 복제된 분석 서버로 로드를 분산함으로써, 로드가 감소한 분석 서버는 더 빨리 데이터 분석을 수행할 수 있고 사용자에게 빠른 응답을 제공할 수 있다.
또한, 데이터 분석 서버에 람다와 같은 다양한 데이터 분석 기법을 적용할 수 있으며, 데이터 분석 기법을 구현하여 컨테이너로 쿠버네티스 클러스터에 올려서 동작시킬 수 있다.
또한, 사용자와 데이터 분석 서버를 연결하고 분석 서버의 로드가 증가할 경우 복제 되기 때문에 1대 N으로 연결되어 데이터 분석을 수행함으로써, 데이터 분석의 전체적인 시간을 단축할 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것이 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
100: 데이터 분석 오토 스케일링 시스템,
110: 마스터 노드, 111: API 서버,
112: HPA, 113: 매트릭스 서버
114: 컨트롤러, 120: 워커 노드,
121: 제1 워커노드, 122: 제2 워커 노드,
123: 큐블랫, 124: 독커,
125: 데이터 분석 컨테이너,
126: 오토 스케일링된 데이터 분석 컨테이너

Claims (11)

  1. 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템에 있어서,
    쿠버네티스 기반의 데이터 분석 오토 스케일링 시스템에 필요한 파라미터를 설정하고, 현재 동작중인 데이터 분석 컨테이너의 CPU 사용량을 수집하여 복제할 데이터 분석 컨테이너의 개수를 연산하는 마스터 노드, 그리고
    상기 마스터 노드로부터 상기 연산된 복제할 데이터 분석 컨테이너의 개수만큼 상기 데이터 분석 컨테이너를 복제하는 복수의 워커 노드를 포함하며,
    상기 마스터 노드는,
    상기 복수의 워커 노드로부터 수집된 상기 데이터 분석 컨테이너의 각각의 CPU 사용량을 수집하고, 상기 데이터 분석 컨테이너의 각각의 CPU 사용량 중에서 기준 값을 초과한 데이터 분석 컨테이너의 개수를 연산하고, 연산된 결과를 오토 스케일링 알고리즘에 적용하여 복제할 데이터 분석 컨테이너의 개수를 연산하여 상기 복수의 워커 노드에 데이터 분석 컨테이너의 복제를 요청하며,
    상기 마스터 노드는,
    오토 스케일링 관련 파라미터를 설정하고 오토 스케일링 알고리즘을 통하여 복제할 컨테이너의 개수를 판단하는 HPA(Horizontal Pod Auto scaler)를 포함하며,
    상기 HPA는,
    아래의 수학식을 이용하여 상기 복제할 데이터 분석 컨테이너의 개수를 연산하는 데이터 분석 오토 스케일링 시스템:
    Figure 112022112916918-pat00092

    여기서,
    Figure 112022112916918-pat00093
    는 상기 복제할 데이터 분석 컨테이너의 개수이고,
    Figure 112022112916918-pat00094
    는 상기 워커 노드에서 현재 동작중인 데이터 분석 컨테이너 및 오토 스케일링된 데이터 분석 컨테이너의 개수이고,
    Figure 112022112916918-pat00095
    는 현재 작동중인 데이터 분석 컨테이너 CPU의 사용률이고,
    Figure 112022112916918-pat00096
    은 하나의 데이터 분석 컨테이너가 사용 가능한 CPU의 사용률이다.
  2. 제1항에 있어서,
    상기 마스터 노드는,
    상기 워커 노드와 데이터를 송수신하고, 상기 데이터 분석 컨테이너의 생성 또는 삭제 명령을 전달하는 API 서버(Application Programming Interface Server),
    상기 워커 노드에 배포된 데이터 분석 컨테이너의 사용량을 수집하는 매트릭스 서버(Matrics Server), 그리고,
    상기 데이터 분석 컨테이너의 라이프 사이클과 로드 밸런싱을 수행하고 상기 워커 노드의 동작이 멈추면 상기 데이터 분석 컨테이너를 재시작하도록 제어하는 컨트롤러(Controller)를 더 포함하는 데이터 분석 오토 스케일링 시스템.
  3. 제2항에 있어서,
    상기 워커 노드는,
    데이터 분석을 실행하는 제1 워커 노드, 그리고
    상기 HPA에 의해 복제되어 상기 데이터 분석을 실행하는 복수의 제2 워커 노드를 포함하는 데이터 분석 오토 스케일링 시스템.
  4. 제3항에 있어서,
    상기 제1 워커 노드 및 복수의 제2 워커 노드는,
    상기 마스터 노드의 명령을 수신하는 큐블랫(Kubelet),
    상기 데이터 분석 오토 스케일링 시스템의 런타임 환경을 설정하는 독커(Docker)를 각각 포함하는 데이터 분석 오토 스케일링 시스템.
  5. 제4항에 있어서,
    상기 제1 워커 노드는,
    팟 단위로 배포되는 데이터 분석 컨테이너(Data Analysis Container)를 더 포함하며,
    상기 복수의 제2 워커 노드는,
    팟 단위로 배포되는 상기 HPA에 의해 오토 스케일링된 데이터 분석 컨테이너(Scaled Data Analysis Container)을 더 포함하는 데이터 분석 오토 스케일링 시스템.
  6. 삭제
  7. 제1항에 있어서,
    상기 HPA는,
    상기
    Figure 112022112916918-pat00069
    이 상기
    Figure 112022112916918-pat00070
    를 초과하는지 판단하고, 상기
    Figure 112022112916918-pat00071
    이 상기
    Figure 112022112916918-pat00072
    를 초과하는 경우, 상기
    Figure 112022112916918-pat00073
    이 데이터 분석 컨테이너의 최대 복제본의 개수(
    Figure 112022112916918-pat00074
    ) 미만인지 판단하는 데이터 분석 오토 스케일링 시스템.
  8. 제7항에 있어서,
    상기 HPA는,
    상기
    Figure 112021010622019-pat00075
    이 상기
    Figure 112021010622019-pat00076
    미만이면, 상기
    Figure 112021010622019-pat00077
    만큼 상기 데이터 분석 컨테이너를 복제하는 데이터 분석 오토 스케일링 시스템.
  9. 제7항에 있어서,
    상기 HPA는,
    상기
    Figure 112021010622019-pat00078
    이 상기
    Figure 112021010622019-pat00079
    이상이면, 상기
    Figure 112021010622019-pat00080
    만큼 상기 데이터 분석 컨테이너를 복제하는 데이터 분석 오토 스케일링 시스템.
  10. 제7항에 있어서,
    상기 HPA는,
    상기
    Figure 112021010622019-pat00081
    이 상기
    Figure 112021010622019-pat00082
    를 초과하지 않는 경우, 상기
    Figure 112021010622019-pat00083
    이 1을 초과하는지 판단하고,
    상기
    Figure 112021010622019-pat00084
    이 1을 초과하면, 상기
    Figure 112021010622019-pat00085
    에서 상기
    Figure 112021010622019-pat00086
    의 차이만큼 복제되어 있는 상기 데이터 분석 컨테이너를 삭제하는 데이터 분석 오토 스케일링 시스템.
  11. 제10항에 있어서,
    상기 HPA는,
    상기
    Figure 112021010622019-pat00087
    1이하이면, 상기 데이터 분석 컨테이너를 제외한 나머지 오토 스케일링된 데이터 분석 컨테이너를 제거하는 데이터 분석 오토 스케일링 시스템.
KR1020210011162A 2020-10-23 2021-01-27 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템 KR102496674B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200137947 2020-10-23
KR20200137947 2020-10-23

Publications (2)

Publication Number Publication Date
KR20220054154A KR20220054154A (ko) 2022-05-02
KR102496674B1 true KR102496674B1 (ko) 2023-02-07

Family

ID=81593476

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210011162A KR102496674B1 (ko) 2020-10-23 2021-01-27 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템

Country Status (1)

Country Link
KR (1) KR102496674B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701126B (zh) * 2023-08-01 2023-12-12 中海石油气电集团有限责任公司 pod容量控制方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101256918B1 (ko) 2011-12-15 2013-04-25 숭실대학교산학협력단 클라우드 서비스의 확장성과 가용성을 향상시키는 방법 및 그 시스템
KR101826498B1 (ko) 2017-05-02 2018-02-07 나무기술 주식회사 클라우드 플랫폼 시스템
US20200250006A1 (en) * 2019-01-31 2020-08-06 Hewlett Packard Enterprise Development Lp Container management

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102125260B1 (ko) * 2018-09-05 2020-06-23 주식회사 나눔기술 분산 지능모듈의 통합관리 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101256918B1 (ko) 2011-12-15 2013-04-25 숭실대학교산학협력단 클라우드 서비스의 확장성과 가용성을 향상시키는 방법 및 그 시스템
KR101826498B1 (ko) 2017-05-02 2018-02-07 나무기술 주식회사 클라우드 플랫폼 시스템
US20200250006A1 (en) * 2019-01-31 2020-08-06 Hewlett Packard Enterprise Development Lp Container management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
민현기. '[K8S] Kubernetes의 HPA를 활용한 오토스케일링(Auto Scaling)'. DT Evangelist 기술 블로그, 2020.05.15.*

Also Published As

Publication number Publication date
KR20220054154A (ko) 2022-05-02

Similar Documents

Publication Publication Date Title
CN110134495B (zh) 一种容器跨主机在线迁移方法、存储介质及终端设备
CN104252393B (zh) 管理分布式计算机系统中资源的方法和应用资源分配模块
US20180367468A1 (en) Remote Service for Executing Resource Allocation Analyses for Distributed Computer Systems
US10037348B2 (en) Database management system with database hibernation and bursting
US11334422B2 (en) System and method for data redistribution in a database
WO2012029259A1 (en) Storage system
US7328213B2 (en) Transaction processing method, transaction control apparatus and program thereof
CN109284220B (zh) 集群故障恢复时长估算方法、装置、设备及存储介质
CN108804465B (zh) 一种分布式缓存数据库数据迁移的方法及系统
JP2020102838A5 (ko)
CN113032102B (zh) 资源重调度方法、装置、设备和介质
CN105491117A (zh) 面向实时数据分析的流式图数据处理系统及方法
KR102496674B1 (ko) 쿠버네티스를 기반으로 하는 데이터 분석 오토 스케일링 시스템
CN109376151A (zh) 数据分库处理方法、系统、装置和存储介质
CN115048254B (zh) 数据分配策略的仿真测试方法、系统、设备和可读介质
Du et al. Hawkeye: Adaptive straggler identification on heterogeneous spark cluster with reinforcement learning
CN114564281A (zh) 容器调度方法、装置、设备及存储介质
CN113946287A (zh) 分布式存储系统及其数据处理方法、相关装置
CN106775942B (zh) 一种云应用导向的固态盘缓存管理系统及方法
CN114546610B (zh) 一种海量数据分布式脱敏装置
CN108243228B (zh) 用于数据调度的方法和智能伺服集群
CN108984271A (zh) 一种均衡负载的方法以及相关设备
CN109617954B (zh) 一种创建云主机的方法和装置
Nair et al. Performance degradation assessment and VM placement policy in cloud
CN116401066B (zh) 用于提高资源利用率的多虚拟服务的动态调度方法和系统

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