KR20200080458A - Cloud multi-cluster apparatus - Google Patents

Cloud multi-cluster apparatus Download PDF

Info

Publication number
KR20200080458A
KR20200080458A KR1020180169256A KR20180169256A KR20200080458A KR 20200080458 A KR20200080458 A KR 20200080458A KR 1020180169256 A KR1020180169256 A KR 1020180169256A KR 20180169256 A KR20180169256 A KR 20180169256A KR 20200080458 A KR20200080458 A KR 20200080458A
Authority
KR
South Korea
Prior art keywords
cluster
work
control module
load
transfer
Prior art date
Application number
KR1020180169256A
Other languages
Korean (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 KR20200080458A publication Critical patent/KR20200080458A/en

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

The present invention relates to a cloud multi-cluster device. The cloud multi-cluster device includes a plurality of cluster parts each including a master node and at least one worker node that are interconnected based on application programming interface (API). The master node includes an API module for providing the API, and the at least one worker node includes a work control module for determining whether load balancing is performed with other cluster parts for specific work based on the load of a corresponding cluster. Therefore, policy sharing and high availability can be provided by forming a plurality of clusters and interworking with other clusters through management controllers inside the clusters.

Description

클라우드 멀티-클러스터 장치{CLOUD MULTI-CLUSTER APPARATUS}Cloud multi-cluster device {CLOUD MULTI-CLUSTER APPARATUS}

본 발명은 클라우드 멀티-클러스터 기술에 관한 것으로, 보다 상세하게는 다수의 멀티 클러스터를 구성하고 클러스터 내부의 관리 컨트롤러를 통해 타 클러스터와 연동함으로써 정책 공유 및 고가용성을 제공할 수 있는 클라우드 멀티-클러스터 장치에 관한 것이다.The present invention relates to a cloud multi-cluster technology, and more specifically, a cloud multi-cluster device capable of providing policy sharing and high availability by configuring multiple multi-clusters and interworking with other clusters through a management controller inside the cluster. It is about.

클라우드 시스템의 발달에 따라, 최근에 멀티 클러스터를 지원하기 위한 다양한 기술들이 개발되고 있다. 컴퓨터 클러스터는 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합에 해당할 수 있다. 클러스터의 구성 요소들은 일반적으로 고속의 근거리 통신망으로 연결될 수 있다. 서버로 사용되는 노드에는 각각의 운영 체제가 실행될 수 있다. With the development of cloud systems, various technologies for supporting multi-clusters have been developed in recent years. A computer cluster may correspond to a set of computers in which several computers are connected to behave like one system. The components of the cluster can generally be connected to a high-speed local area network. Each operating system may be executed on a node used as a server.

컴퓨터 클러스터는 저렴한 마이크로프로세서와 고속의 네트워크, 그리고 고성능 분산 컴퓨팅용 소프트웨어들의 조합 결과로 생성될 수 있다. 클러스터는 일반적으로 단일 컴퓨터보다 더 뛰어난 성능과 안정성을 제공하며, 비슷한 성능과 안정성을 제공하는 단일 컴퓨터보다 비용 면에서 훨씬 더 효율적일 수 있다. 따라서, 열 개 안팎의 중소 규모의 클러스터부터 수천 개로 이루어진 대형 슈퍼컴퓨터에 이르기까지 널리 사용되고 있다.Computer clusters can be created as a result of a combination of low-cost microprocessors, high-speed networks, and high-performance distributed computing software. Clusters generally provide better performance and reliability than a single computer, and can be much more cost effective than a single computer that provides similar performance and reliability. Therefore, it is widely used, from small to medium-sized clusters of ten or so, to large supercomputers of thousands.

한국등록특허 제10-1807806(2017.12.05)호는 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법에 관한 것으로, 격리된 어플리케이션 실행 환경을 제공하고, 독립적인 자원 할당이 가능하며, 동일 호스트 상 다중 어플리케이션 운영이 가능할 뿐만 아니라 OS 수준의 가상화로 빠른 조작이 가능하고, 적은 크기의 컨테이너 이미지로 배포 및 업데이트가 효율적이며, 어디든지 이동이 가능한 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 기술을 개시하고 있다.Korean Registered Patent No. 10-1807806 (2017.12.05) relates to a method of containerizing an application on a cloud platform, providing an isolated application execution environment, independent resource allocation, and multiple application operation on the same host. Not only is it possible, OS-level virtualization enables quick operation, it is efficient to deploy and update with a small-sized container image, and it discloses a technology for containerizing applications on a cloud platform that can be moved anywhere.

한국등록특허 제10-1807806(2017.12.05)호Korean Registered Patent No. 10-1807806 (2017.12.05)

본 발명의 일 실시예는 다수의 멀티 클러스터를 구성하고 클러스터 내부의 관리 컨트롤러를 통해 타 클러스터와 연동함으로써 정책 공유 및 고가용성을 제공할 수 있는 클라우드 멀티-클러스터 장치를 제공하고자 한다.An embodiment of the present invention is to provide a cloud multi-cluster device capable of providing policy sharing and high availability by configuring multiple multi-clusters and interworking with other clusters through a management controller inside the cluster.

본 발명의 일 실시예는 각 클러스터마다 구비된 클러스터 컨트롤러를 통해 다수의 클러스터들 간의 연동을 제어할 수 있는 클라우드 멀티-클러스터 장치를 제공하고자 한다.One embodiment of the present invention is to provide a cloud multi-cluster device capable of controlling interworking between multiple clusters through a cluster controller provided for each cluster.

본 발명의 일 실시예는 스케쥴러, 로드 밸런서 및 모니터링 매니저를 포함하는 클러스터 컨트롤이 각 클러스터의 워커 노드에 배치된 형태로 멀티-클러스터를 구성할 수 있는 클라우드 멀티-클러스터 장치를 제공하고자 한다.One embodiment of the present invention is to provide a cloud multi-cluster device capable of configuring a multi-cluster in a form in which a cluster control including a scheduler, a load balancer, and a monitoring manager is disposed on a worker node of each cluster.

실시예들 중에서, 클라우드 멀티-클러스터 장치는 API (Application Programming Interface) 기반으로 상호 연결된 마스터 노드와 적어도 하나의 워커 노드를 각각 포함하는 복수의 클러스터부들을 포함하고, 상기 마스터 노드는 상기 API를 제공하는 API 모듈을 포함하며, 상기 적어도 하나의 워커 노드 각각은 해당 클러스터의 부하량을 기초로 특정 워크에 관해 다른 클러스터부와 로드 밸런싱(load balancing)의 수행 여부를 결정하는 워크제어 모듈을 포함한다.Among the embodiments, the cloud multi-cluster device includes a plurality of cluster parts each including a master node and at least one worker node interconnected based on an application programming interface (API), and the master node provides the API It includes an API module, and each of the at least one worker node includes a work control module that determines whether to perform load balancing with another cluster unit on a specific work based on the load amount of the corresponding cluster.

상기 워크제어 모듈은 상기 다른 클러스터부에 있는 해당 워커 노드의 워크제어 모듈과 통신하여 상기 로드 밸런싱의 제어를 처리할 수 있다.The work control module may process control of the load balancing by communicating with a work control module of a corresponding worker node in the other cluster unit.

상기 워크제어 모듈은 상기 로드 밸런싱의 제어 과정에서 상기 해당 클러스터부에 공통적으로 존재하는 인그레스 모듈을 통해 해당 로드의 이관 제어와 이관 전송을 수행할 수 있다.In the process of controlling the load balancing, the work control module may perform transfer control and transfer transfer of the corresponding load through an ingress module commonly present in the corresponding cluster unit.

상기 워크제어 모듈은 상기 해당 로드의 이관 전송이 완료되면 상기 API 모듈을 통해 해당 마스터 노드를 통한 스케쥴 제어를 수신할 수 있다.When the transfer of the corresponding load is completed, the work control module may receive schedule control through the corresponding master node through the API module.

상기 워크제어 모듈은 상기 로드 밸런싱의 수행에 필요한 이관 제어와 이관 전송을 수행하는 로드 밸런서를 포함할 수 있다.The work control module may include a load balancer that performs transfer control and transfer transfer necessary for performing the load balancing.

상기 워크제어 모듈은 상기 특정 워크의 스케쥴을 위해 상기 API 모듈을 통해 해당 마스터 노드에 있는 스케쥴 모듈에 의한 제어를 수신하는 스케쥴러를 더 포함할 수 있다.The work control module may further include a scheduler that receives control by the schedule module in the corresponding master node through the API module for scheduling the specific work.

상기 워크제어 모듈은 현재 로드의 과중 여부를 모니터링하는 모니터링 매니저를 더 포함할 수 있다.The work control module may further include a monitoring manager that monitors whether the current load is excessive.

상기 워크제어 모듈은 상기 현재 로드의 과중이 존재할 것으로 예측되면 상기 특정 워크의 이관 요청에 따른 응답이 특정 시간 내에 도착하는 클러스터부 중 하나를 상기 다른 클러스터부로 결정할 수 있다.The work control module may determine, as the other cluster unit, one of the cluster units in which a response according to the transfer request of the specific work arrives within a specific time when it is predicted that an overload of the current load will exist.

상기 워크제어 모듈은 상기 모니터링 매니저를 통해 상기 특정 워크의 이관이 완료된 이후에도 상기 다른 클러스터부와 통신하여 상기 특정 워크의 정상적 수행을 지속적으로 모니터할 수 있다.The work control module may continuously monitor the normal performance of the specific work by communicating with the other cluster unit even after the transfer of the specific work is completed through the monitoring manager.

상기 워크제어 모듈은 상기 특정 워크의 비정상적 수행이 검출되면 상기 특정 워크의 요청 기기에게 상기 특정 워크의 비정상적인 수행을 알릴 수 있다.The work control module may notify the requesting device of the specific work that the specific work is abnormal when the abnormal work of the specific work is detected.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology can have the following effects. However, since a specific embodiment does not mean that all of the following effects should be included or only the following effects are included, the scope of rights of the disclosed technology should not be understood as being limited thereby.

본 발명의 일 실시예에 따른 클라우드 멀티-클러스터 장치는 각 클러스터마다 구비된 클러스터 컨트롤러를 통해 다수의 클러스터들 간의 연동을 제어할 수 있다.The cloud multi-cluster device according to an embodiment of the present invention may control interworking between multiple clusters through a cluster controller provided for each cluster.

본 발명의 일 실시예에 따른 클라우드 멀티-클러스터 장치는 스케쥴러, 로드 밸런서 및 모니터링 매니저를 포함하는 클러스터 컨트롤이 각 클러스터의 워커 노드에 배치된 형태로 멀티-클러스터를 구성할 수 있다.In the cloud multi-cluster device according to an embodiment of the present invention, a cluster control including a scheduler, a load balancer, and a monitoring manager may be configured to form a multi-cluster in a form arranged in a worker node of each cluster.

도 1은 본 발명의 일 실시예에 따른 클라우드 멀티-클러스터 장치의 물리적 구성을 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 클라우드 멀티-클러스터 장치를 설명하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 클러스터부 간의 동작을 설명하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 클라우드 멀티-클러스터 장치에서 수행되는 멀티-클러스터 동작 과정을 설명하는 순서도이다.
1 is a diagram illustrating a physical configuration of a cloud multi-cluster device according to an embodiment of the present invention.
2 is a diagram illustrating a cloud multi-cluster device according to an embodiment of the present invention.
3 is a diagram illustrating an operation between cluster units according to an embodiment of the present invention.
4 is a flowchart illustrating a multi-cluster operation process performed in a cloud multi-cluster device according to an embodiment of the present invention.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is merely an embodiment for structural or functional description, the scope of the present invention should not be interpreted as being limited by the embodiments described in the text. That is, since the embodiments can be variously changed and have various forms, it should be understood that the scope of the present invention includes equivalents capable of realizing technical ideas. In addition, the purpose or effect presented in the present invention does not mean that a specific embodiment should include all of them or only such an effect, and the scope of the present invention should not be understood as being limited thereby.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of terms described in the present application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as “first” and “second” are for distinguishing one component from other components, and the scope of rights should not be limited by these terms. For example, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is said to be "connected" to another component, it may be understood that other components may exist in the middle, although they may be directly connected to other components. On the other hand, when a component is said to be "directly connected" to another component, it should be understood that no other component exists in the middle. On the other hand, other expressions describing the relationship between the components, that is, "between" and "immediately between" or "adjacent to" and "directly neighboring to" should be interpreted similarly.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions are to be understood as including plural expressions unless the context clearly indicates otherwise, and terms such as “comprises” or “have” are used features, numbers, steps, actions, elements, parts or the like. It is to be understood that a combination is intended to indicate the existence, and does not preclude the existence or addition possibility of one or more other features or numbers, steps, operations, components, parts or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (for example, a, b, c, etc.) is used for convenience of explanation. The identification code does not describe the order of each step, and each step clearly identifies a specific order in context. Unless stated, it may occur in a different order than specified. That is, each step may occur in the same order as specified, or may be performed substantially simultaneously, or in the reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer readable code on a computer readable recording medium, and the computer readable recording medium includes all kinds of recording devices in which data readable by a computer system is stored. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disks, and optical data storage devices. In addition, the computer-readable recording medium can be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as generally understood by a person skilled in the art to which the present invention pertains, unless otherwise defined. The terms defined in the commonly used dictionary should be interpreted as being consistent with meanings in the context of the related art, and cannot be interpreted as having ideal or excessively formal meanings unless explicitly defined in the present application.

도 1은 본 발명의 일 실시예에 따른 클라우드 멀티-클러스터 장치의 물리적 구성을 설명하는 도면이다.1 is a diagram illustrating a physical configuration of a cloud multi-cluster device according to an embodiment of the present invention.

도 1을 참조하면, 클라우드 멀티-클러스터 장치(100)는 프로세서(110), 메모리(130), 사용자 입출력부(150) 및 네트워크 입출력부(170)를 포함할 수 있다.Referring to FIG. 1, the cloud multi-cluster device 100 may include a processor 110, a memory 130, a user input/output unit 150, and a network input/output unit 170.

클라우드 멀티-클러스터 장치(100)는 다수의 멀티 클러스터를 구성하고 클러스터 간의 동작을 제어할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 클라우드 멀티-클러스터 장치(100)를 구성하는 기본적인 구성들은 다음과 같이 설명될 수 있으나, 반드시 이에 한정되지 않고, 기본 및 응용 동작을 위하여 별도의 구성요소를 추가로 포함하는 다양한 형태로 구현될 수 있다.The cloud multi-cluster device 100 may be implemented as a server corresponding to a computer or program capable of configuring multiple multi-clusters and controlling operations between clusters. The basic configurations constituting the cloud multi-cluster device 100 may be described as follows, but are not limited thereto, and may be implemented in various forms including additional components for basic and application operations. .

프로세서(110)는 멀티 클러스터를 구성하고 클러스터 간의 동작을 제어하는 과정에서 각 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(130)를 관리할 수 있으며, 메모리(130)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(110)는 클라우드 멀티-클러스터 장치(100)의 동작 전반을 제어할 수 있고, 메모리(130), 사용자 입출력부(150) 및 네트워크 입출력부(170)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(110)는 클라우드 멀티-클러스터 장치(100)의 CPU(Central Processing Unit)로 구현될 수 있다.The processor 110 may execute each procedure in the process of configuring multi-clusters and controlling operations between clusters, and may manage the memory 130 that is read or written throughout the process, and is located in the memory 130. The synchronization time between volatile memory and non-volatile memory can be scheduled. The processor 110 can control the overall operation of the cloud multi-cluster device 100 and is electrically connected to the memory 130, the user input/output unit 150, and the network input/output unit 170 to control data flow therebetween. Can be controlled. The processor 110 may be implemented as a central processing unit (CPU) of the cloud multi-cluster device 100.

메모리(130)는 SSD(Solid State Disk) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 클라우드 멀티-클러스터 장치(100)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.The memory 130 may be implemented as a non-volatile memory such as a solid state disk (SSD) or a hard disk drive (HDD), and may include auxiliary storage devices used to store overall data required for the cloud multi-cluster device 100. And may include a main memory device implemented with volatile memory such as random access memory (RAM).

사용자 입출력부(150)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(150)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(150)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 클라우드 멀티-클러스터 장치(100)는 서버로서 수행될 수 있다.The user input/output unit 150 may include an environment for receiving user input and an environment for outputting specific information to the user. For example, the user input/output unit 150 may include an input device including an adapter such as a touch pad, a touch screen, an image keyboard, or a pointing device, and an output device including an adapter such as a monitor or touch screen. In one embodiment, the user input/output unit 150 may correspond to a computing device connected through a remote connection, and in such a case, the cloud multi-cluster device 100 may be performed as a server.

네트워크 입출력부(170)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.The network input/output unit 170 includes an environment for connecting to an external device or system through a network, for example, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), and a VAN ( Value Added Network).

도 2는 본 발명의 일 실시예에 따른 클라우드 멀티-클러스터 장치를 설명하는 도면이다.2 is a diagram illustrating a cloud multi-cluster device according to an embodiment of the present invention.

도 2를 참조하면, 클라우드 멀티-클러스터 장치(100)는 API(Application Programming Interface) 기반으로 상호 연결된 마스터 노드와 적어도 하나의 워커 노드를 각각 포함하는 복수의 클러스터부(210)들을 포함할 수 있다. 여기에서, 클러스터부(210)는 둘 이상의 시스템이나 노드가 지속적으로 사용 가능한 단일 시스템으로 동작하면서 사용자에게 응용 프로그램, 시스템 자원 및 데이터를 중단없이 제공할 수 있는 역할을 수행하는 단위 시스템에 해당할 수 있다. 클러스터부(210)는 마스터 노드(Master Node)(211)와 적어도 하나의 워커 노드(Worker Node)(213)로 구성된 가상/물리 머신(machine)의 집합에 해당할 수 있고, 내부의 각 노드는 완전한 기능을 갖춘 독립형 시스템으로서 동작할 수 있다. Referring to FIG. 2, the cloud multi-cluster device 100 may include a plurality of cluster units 210 each including an interconnected master node and at least one worker node based on an API (Application Programming Interface). Here, the cluster unit 210 may correspond to a unit system that serves to provide applications, system resources, and data to users without interruption while operating as a single system in which two or more systems or nodes are continuously available. have. The cluster unit 210 may correspond to a set of virtual/physical machines composed of a master node 211 and at least one worker node 213, and each node therein It can operate as a full-featured standalone system.

또한, 클러스터부(210) 내부의 마스터 노드(211)와 적어도 하나의 워커 노드(213)는 상호 연결되어 하나의 엔티티(entity)처럼 동작하면서 고가용성(High Availability)을 제공할 수 있다. 즉, 클러스터부(210)는 단일 서버 시스템을 다운시키는 오류가 발생하더라도 해당 클러스터가 계속 실행되도록 제어함으로써 데이터 및 응용 프로그램에 대해 거의 중단없이 액세스를 제공할 수 있다. 이러한 오류에는 하드웨어, 소프트웨어 또는 네트워크 등에 대한 오류를 포함할 수 있다.In addition, the master node 211 inside the cluster unit 210 and at least one worker node 213 may be interconnected to provide high availability while operating as one entity. That is, the cluster unit 210 can provide almost uninterrupted access to data and applications by controlling the cluster to continue to run even if an error occurs that causes a single server system to crash. Such errors may include errors in hardware, software, or networks.

마스터 노드(211)는 워커 노드(213)를 관리하는 역할을 수행할 수 있고, 워커 노드(213)의 관리 모듈(예를 들어, 도 2의 agent)를 통해 각 워커 노드(213)의 부하량 등 상태를 파악할 수 있으며, 워크 노드(213)들 간의 최적 포드(pod) 배치를 통해 해당 클러스터부(210)에 대한 로드 밸런싱을 수행할 수 있다. 일 실시예에서, 마스터 노드(211)는 API를 관리하는 API 모듈(215)을 포함하여 구현될 수 있고, 예를 들어, API 모듈(215)은 API 서버(API server)에 해당할 수 있다. 다른 실시예에서, 마스터 노드(211)는 스케쥴러(scheduler), 컨트롤러 매니저(Controller Manager), 데이터베이스(etcd)를 포함할 수 있다. The master node 211 may perform a role of managing the worker node 213, and the load amount of each worker node 213, etc. through the management module (for example, the agent of FIG. 2) of the worker node 213 The state can be grasped, and load balancing for the corresponding cluster unit 210 can be performed through the optimal pod arrangement between the work nodes 213. In one embodiment, the master node 211 may be implemented by including an API module 215 that manages an API, for example, the API module 215 may correspond to an API server. In another embodiment, the master node 211 may include a scheduler, a controller manager, and a database etcd.

여기에서, 스케쥴러(scheduler)는 새로 생긴 포드를 관리하고 해당 포드를 배치시킬 노드를 결정하는 역할을 수행할 수 있고, 컨트롤러 매니저(Controller Manager)는 컨트롤러를 관리하는 역할을 수행할 수 있으며, 데이터베이스(etcd)는 머신의 분산 클러스터 전체에 걸쳐 데이터를 저장 및 공유할 수 있게 해주는 분산 키 값 스토어에 해당할 수 있다. API 모듈(215)은 스케쥴러, 컨트롤러 매니저 및 데이터베이스(etcd)를 제어할 수 있다.Here, the scheduler (scheduler) can manage the newly created pod and serve to determine the node to deploy the pod, and the controller manager (Controller Manager) can perform the role of managing the controller, and the database ( etcd) may correspond to a distributed key value store that allows data to be stored and shared across a distributed cluster of machines. The API module 215 may control the scheduler, controller manager, and database (etcd).

워커 노드(213)는 다수의 서비스 포드(service pods)들을 실행할 수 있고, 하나의 포드는 다수의 컨테이너(container)들을 포함할 수 있다. 즉, 서비스 포드는 하나 혹은 그 이상의 연관된 컨테이너로 구성될 수 있다. 일 실시예에서, 포드는 최소 배포/전개(deployment) 단위에 해당할 수 있다. 또한, 워커 노드(213)는 마스터 노드(211)와 통신을 위해 관리 에이전트(agent)와 복수의 서비스 포드들 및 멀티 클러스터 관리를 위한 클러스터 컨트롤러(cluster controller)를 포함할 수 있다. 관리 에이전트(agent)는 클러스터 컨트롤러와 서비스 포드를 제어할 수 있다.The worker node 213 can run multiple service pods, and one pod can contain multiple containers. In other words, a service pod may consist of one or more associated containers. In one embodiment, the pod may correspond to a minimum deployment/deployment unit. In addition, the worker node 213 may include a management agent for communicating with the master node 211, a plurality of service pods, and a cluster controller for multi-cluster management. The management agent can control the cluster controller and service pod.

일 실시예에서, 워커 노드(213)는 클러스터부(210)의 부하량을 기초로 특정 워커에 관해 다른 클러스터부(210)와 로드 밸런싱의 수행 여부를 결정하는 워크제어 모듈(217)을 포함할 수 있다. 여기에서, 워크제어 모듈(217)은 멀티 클러스터를 구성하기 위한 목적으로 클러스터부(210)들 간의 연동을 제어하는 역할을 수행할 수 있고, 워커 노드(213)에 포함된 복수의 포드(pod)들 중 하나로 구현될 수 있으며, 예를 들어, 도 2의 클러스터 컨트롤러(cluster controller)에 해당할 수 있다. 워크제어 모듈(217)은 해당 클러스터부(210)와 다른 클러스터부(210)들 간의 연동을 통해 정책 공유 및 고가용성을 제공할 수 있다.In one embodiment, the worker node 213 may include a work control module 217 that determines whether to perform load balancing with another cluster unit 210 for a specific worker based on the load amount of the cluster unit 210. have. Here, the work control module 217 may serve to control interworking between the cluster units 210 for the purpose of configuring a multi-cluster, and a plurality of pods included in the worker node 213 It may be implemented as one of them, for example, may correspond to the cluster controller (cluster controller) of FIG. 2. The work control module 217 may provide policy sharing and high availability through interworking between the corresponding cluster unit 210 and other cluster units 210.

일 실시예에서, 워크제어 모듈(217)은 다른 클러스터부(210)에 있는 해당 워커 노드(213)의 워크제어 모듈(217)과 통신하여 로드 밸런싱의 제어를 처리할 수 있다. 여기에서, 로드 밸런싱(load balancing)은 서비스에 의해 발생되는 트래픽이 많을 때 여러 대의 서버가 서버의 로드율 증가, 부하량, 속도저하 등을 고려하여 적절히 분산처리함으로써 이를 해결하는 동작에 해당할 수 있다. 워크제어 모듈(217)은 클러스터부(210)가 복수인 경우 클러스터부(210) 간의 로드 밸런싱을 제어하는 역할을 수행할 수 있다. In one embodiment, the work control module 217 communicates with the work control module 217 of the corresponding worker node 213 in the other cluster unit 210 to handle control of load balancing. Here, load balancing may correspond to an operation of resolving this by appropriately distributing and processing multiple servers considering load increase, load, and speed reduction of the servers when the traffic generated by the service is high. . The work control module 217 may serve to control load balancing between the cluster units 210 when there are multiple cluster units 210.

보다 구체적으로, 워크제어 모듈(217)은 해당 클러스터부(210)의 로드가 많은 경우 다른 클러스터부(210)로의 로드 이관을 수행할 수 있고, 이 경우 클러스터부(210)에 있어서 로드는 워커 노드(213)의 서비스 포드에서 수행되는 워크(work)의 필요 연산량으로 측정될 수 있고, 로드 이관은 특정 워크의 전송에 해당할 수 있다.More specifically, the work control module 217 may perform load transfer to another cluster unit 210 when the load of the corresponding cluster unit 210 is high, and in this case, the load in the cluster unit 210 is a worker node. It may be measured by the required computation amount of the work (work) performed in the service pod of (213), the load transfer may correspond to the transmission of a specific work.

일 실시예에서, 워크제어 모듈(217)은 로드 밸런싱의 제어 과정에서 해당 클러스터부(210)에 공통적으로 존재하는 인그레스(ingress) 모듈(219)을 통해 해당 로드의 이관 제어와 이관 전송을 수행할 수 있다. 인그레스(ingress) 모듈(219)은 HTTP(s) 기반의 단일 클러스터에 대한 로드 밸런싱을 제공하는 컴포넌트에 해당할 수 있다. 예를 들어, 도 2에서, 인그레스 모듈(219)은 단일의 클러스터부(210)에 대해 외부 네트워크(External N/W)로부터의 서비스 요청을 수신하여 워커 노드(213) 내부의 서비스 포드로 연결시켜주는 역할을 수행할 수 있다. 만약 멀티 클러스터부(210)가 동작하는 경우 서로 다른 클러스터부(210)들을 중개할 수 있고, 예를 들어, 로드에 관한 이관 제어와 이관 전송을 수행할 수 있다.In one embodiment, the work control module 217 performs transfer control and transfer transfer of the corresponding load through an ingress module 219 commonly present in the corresponding cluster unit 210 in the process of controlling load balancing. can do. The ingress module 219 may correspond to a component that provides load balancing for a single cluster based on HTTP(s). For example, in FIG. 2, the ingress module 219 receives a service request from an external network (External N/W) to a single cluster unit 210 and connects to a service pod inside the worker node 213 It can play a role. If the multi-cluster unit 210 operates, different cluster units 210 may be intermediary, and for example, transfer control and transfer of load may be performed.

일 실시예에서, 워크제어 모듈(217)은 해당 로드의 이관 전송이 완료되면 API 모듈(215)을 통해 해당 마스터 노드(211)를 통한 스케쥴 제어를 수신할 수 있다. 마스터 노드(211)는 스케쥴러를 통해 해당 클러스터부(210)의 각 리소스들을 적절한 노드에 할당하는 역할을 수행할 수 있고, 워크제어 모듈(217)에 의한 로드의 이관 전송이 완료된 경우 이관 전송 결과를 반영한 전체 스케쥴링을 갱신할 수 있다. 따라서, 워크제어 모듈(217)은 로드의 이관 전송이 완료되면 갱신된 스케쥴링 정보를 API 모듈(215)을 통해 수신할 수 있다. In one embodiment, the work control module 217 may receive the schedule control through the master node 211 through the API module 215 when the transfer of the transfer of the load is completed. The master node 211 may serve to allocate each resource of the corresponding cluster unit 210 to an appropriate node through the scheduler, and when the transfer transfer of the load by the work control module 217 is completed, transfer the transfer result. You can update the entire scheduling that you have reflected. Therefore, the work control module 217 may receive the updated scheduling information through the API module 215 when the transfer of the load is completed.

일 실시예에서, 워크제어 모듈(217)은 현재 로드의 과중이 존재할 것으로 예측되면 특정 워크의 이관 요청에 따른 응답이 특정 시간 내에 도착하는 클러스터부 중 하나를 다른 클러스터부로 결정할 수 있다. 예를 들어, 워크제어 모듈(217)은 특정 시간 내에 응답이 도착한 클러스터부(210)가 복수인 경우 미리 설정된 우선순위를 기초로 이관 전송 대상이 되는 클러스터부(210)를 결정하거나 또는 응답 도착 시간이 가장 빠른 클러스터부(210)를 이관 전송 대상으로 결정할 수 있으며, 현재 처리 중인 서비스 또는 워크의 개수가 가장 적은 클러스터부(210)를 이관 전송 대상으로 결정할 수 있다.In one embodiment, the work control module 217 may determine that one of the cluster units, in which a response according to a request to transfer a specific work arrives within a specific time, is determined as another cluster unit if it is predicted that an overload of the current load is expected. For example, the work control module 217 determines the cluster unit 210 that is the target for transfer of transfer based on a preset priority when the plurality of cluster units 210 having a response arrive within a specific time or the response arrival time The fastest cluster unit 210 may be determined as the transfer target, and the cluster unit 210 having the smallest number of services or work currently being processed may be determined as the transfer target.

일 실시예에서, 워크제어 모듈(217)은 특정 워크의 이관 요청에 따른 응답 대기시간을 다음의 수학식을 통해 산출할 수 있다. 따라서, 워크제어 모듈(217)은 응답 대기시간 내에 도착하는 클러스터부 중 하나를 다른 클러스터부(210)로 결정할 수 있다In one embodiment, the work control module 217 may calculate a response waiting time according to a request to transfer a specific work through the following equation. Accordingly, the work control module 217 may determine one of the cluster units arriving within the response waiting time as the other cluster unit 210.

[수학식][Mathematics]

Figure pat00001
Figure pat00001

여기에서, D는 응답 대기시간을, D0는 기본 대기시간을, k는 비례 상수를, Nc는 현재 동작중인 클러스터부의 개수를, Naw는 클러스터부 당 워커 노드의 평균 개수를, W는 특정 클러스터부에서 동작중인 워크의 전체 로드를 의미할 수 있다. 여기에서, W는 동작중인 워크를 처리하기 위해 필요한 연산량에 해당할 수 있고, 워크 처리를 위해 필요한 자원이나 시간의 총량으로 표현될 수 있다. 전체 시스템 내에서 동작하는 클러스터부(210)의 개수가 많을수록, 각 클러스터부(210)에서 동작하는 워커 노드(213)의 개수가 많을수록 응답 대기시간은 줄어들 수 있고, 현재 동작중인 워크로 인한 시스템 전체의 로드 총 합이 클수록 응답 대기시간은 증가할 수 있다.Here, D is the response waiting time, D 0 is the basic waiting time, k is the proportional constant, N c is the number of currently active cluster units, N aw is the average number of worker nodes per cluster unit, W is It may mean the entire load of the work running in a specific cluster part. Here, W may correspond to a computational amount required to process the work in operation, and may be expressed as a total amount of resources or time required for processing the work. The greater the number of cluster units 210 operating in the entire system, and the greater the number of worker nodes 213 operating in each cluster unit 210, the shorter the response waiting time may be, and the entire system due to the currently operating work. The response wait time may increase as the sum of the loads increases.

도 3은 본 발명의 일 실시예에 따른 클러스터부 간의 동작을 설명하는 도면이다.3 is a diagram illustrating an operation between cluster units according to an embodiment of the present invention.

도 3을 참조하면, 클라우드 멀티-클러스터 장치(100)는 복수의 클러스터부(210)들을 구성하여 관리할 수 있다. 클러스터부(210)는 마스터 노드(211)와 적어도 하나의 워커 노드(213)를 포함할 수 있고, 클러스터부(210)는 외부의 다른 클러스터부(210)와 워크제어 모듈(217)을 통해 통신할 수 있다. 여기에서, 워크제어 모듈(217)은 클러스터 컨트롤러에 해당할 수 있다. 도 3에서, 워크제어 모듈(217)은 마스터 노드(211)의 API 모듈(215)과 통신하기 위한 인터페이스(Interface)를 포함하여 구현될 수 있다.Referring to FIG. 3, the cloud multi-cluster device 100 may configure and manage a plurality of cluster units 210. The cluster unit 210 may include a master node 211 and at least one worker node 213, and the cluster unit 210 communicates with other external cluster units 210 through the work control module 217. can do. Here, the work control module 217 may correspond to a cluster controller. In FIG. 3, the work control module 217 may be implemented by including an interface for communicating with the API module 215 of the master node 211.

일 실시예에서, 워크제어 모듈(217)은 로드 밸런싱의 수행에 필요한 이관 제어와 이관 전송을 수행하는 로드 밸런서(313)를 포함할 수 있다. 로드 밸런서(313)은 다른 클러스터부(210)에게 특정 워크의 이관 전송을 수행하거나 다른 클러스터부(210)로부터의 이관된 특정 워크를 수신할 수 있다. 또한, 로드 밸런서(313)는 인그레스 모듈(219)과 연동하여 외부의 로드 밸런서(313)와 통신을 수행할 수 있다.In one embodiment, the work control module 217 may include a load balancer 313 that performs transfer control and transfer transfer necessary for performing load balancing. The load balancer 313 may perform transfer of a specific work to another cluster unit 210 or receive a specific work transferred from the other cluster unit 210. In addition, the load balancer 313 may communicate with the external load balancer 313 in conjunction with the ingress module 219.

일 실시예에서, 워크제어 모듈(217)은 특정 워크의 스케쥴을 위해 API 모듈을 통해 해당 마스터 노드(211)에 있는 스케쥴 모듈에 의한 제어를 수신하는 스케쥴러(311)를 더 포함할 수 있다. 스케쥴러(311)는 인터페이스(Interface)를 통해 마스터 노드(211)로부터의 스케쥴 제어를 수신할 수 있고 이를 기초로 해당 워크의 스케쥴을 수행할 수 있으며, 예를 들어, 해당 워크를 실행시킬 서비스 포드를 할당하거나 서비스 포드 간의 워크를 재배치시킬 수 있다.In one embodiment, the work control module 217 may further include a scheduler 311 that receives control by the schedule module in the corresponding master node 211 through the API module for scheduling a specific work. The scheduler 311 may receive the schedule control from the master node 211 through an interface, and based on this, the scheduler 311 may schedule the work, for example, a service pod to execute the work. You can assign or redeploy work between service pods.

일 실시예에서, 워크제어 모듈(217)은 현재 로드의 과중 여부를 모니터링하는 모니터링 매니저(315)를 더 포함할 수 있다. 모니터링 매니저(315)는 Pod 형상 관리, Monitor 관리, Service 관리 및 Node 형상 관리를 포함할 수 있다. 모니터링 매니저(315)는 로드 밸런서(313)와의 연동을 통해 해당 워커 노드(213)에서 처리되는 다양한 자원(resource)들을 모니터링하고 관리할 수 있으며, 클러스터부(210) 간의 로드 밸런싱을 위한 정보를 제공할 수 있다.In one embodiment, the work control module 217 may further include a monitoring manager 315 that monitors whether the current load is excessive. The monitoring manager 315 may include Pod configuration management, Monitor management, Service management, and Node configuration management. The monitoring manager 315 may monitor and manage various resources processed by the worker node 213 through interworking with the load balancer 313, and provide information for load balancing between the clusters 210 can do.

일 실시예에서, 워크제어 모듈(217)은 모니터링 매니저(315)를 통해 특정 워크의 이관이 완료된 이후에도 다른 클러스터부(210)와 통신하여 특정 워크의 정상적 수행을 지속적으로 모니터할 수 있다. 모니터링 매니저(315)는 해당 클러스터부(210)의 자원 모니터링 외에 다른 클러스터부(210)로 이관된 특정 워크에 관한 정보를 다른 클러스터부(210)의 모니터링 매니저(315)를 통해 주기적으로 수신할 수 있다. 이를 위하여 모니터링 매니저(315)는 해당 클러스터부(210)에 존재하지 않는 워크에 관한 정보를 별도로 관리할 수 있고, 각 워크에 대한 상태 정보를 주기적으로 갱신할 수 있다. In one embodiment, the work control module 217 may continuously monitor the normal performance of a specific work by communicating with another cluster unit 210 even after the transfer of the specific work is completed through the monitoring manager 315. The monitoring manager 315 may periodically receive information related to a specific work transferred to another cluster unit 210 in addition to resource monitoring of the corresponding cluster unit 210 through the monitoring manager 315 of the other cluster unit 210. have. To this end, the monitoring manager 315 may separately manage information regarding a work that does not exist in the corresponding cluster unit 210, and periodically update status information for each work.

일 실시예에서, 워크제어 모듈(217)은 특정 워크의 비정상적 수행이 검출되면 해당 특정 워크의 요청 기기에게 해당 특정 워크의 비정상적인 수행을 알릴 수 있다. 이관 전송에 의해 특정 클러스터부(210)에서 다른 클러스터부(210)로 실행 위치가 변경되더라도 워크제어 모듈(217)은 모니터링 매니저(315)를 통해 특정 워크의 실행 상태를 추적하여 관리할 수 있고, 만약 다른 클러스터부(210)로의 이관 후 비정상적 수행이 검출된 경우 해당 워크의 실행을 요청한 요청 기기에게 해당 정보를 제공할 수 있다. 이 경우 요청 기기에 제공되는 정보에는 해당 워크에 대한 정보와, 해당 워크를 할당한 클러스터부(210)에 관한 정보, 해당 워크가 배치된 워커 노드 및 서비스 포드에 대한 정보를 포함할 수 있다.In one embodiment, the work control module 217 may notify the requesting device of the specific work when the abnormal performance of the specific work is detected. Even if the execution location is changed from a specific cluster unit 210 to another cluster unit 210 by transfer, the work control module 217 can track and manage the execution state of a specific work through the monitoring manager 315, If an abnormal performance is detected after the transfer to the other cluster unit 210, the corresponding information may be provided to the requesting device requesting execution of the corresponding work. In this case, the information provided to the requesting device may include information on the corresponding work, information on the cluster unit 210 to which the corresponding work is assigned, and information on a worker node and a service pod in which the corresponding work is disposed.

도 4는 본 발명의 일 실시예에 따른 클라우드 멀티-클러스터 장치에서 수행되는 멀티-클러스터 동작 과정을 설명하는 순서도이다.4 is a flowchart illustrating a multi-cluster operation process performed in a cloud multi-cluster device according to an embodiment of the present invention.

도 4를 참조하면, 클라우드 멀티-클러스터 장치(100)는 복수의 클러스터부(210)를 생성하여 멀티-클러스터를 구성할 수 있고, 클러스터부(210)의 로드 과중 여부를 모니터링할 수 있다(단계 S410). 클라우드 멀티-클러스터 장치(100)는 특정 클러스터부(210)의 로드 과중이 예측된 경우 다른 클러스터부(210)에 특정 워크의 이관을 요청할 수 있다(단계 S430).Referring to FIG. 4, the cloud multi-cluster device 100 may configure a multi-cluster by generating a plurality of cluster units 210 and monitor whether the cluster unit 210 is overloaded (step). S410). The cloud multi-cluster device 100 may request the transfer of a specific work to the other cluster unit 210 when the load overload of the specific cluster unit 210 is predicted (step S430).

클라우드 멀티-클러스터 장치(100)는 이관 요청에 따른 응답이 특정 시간 내에 도착하는 클러스터부(210) 중 하나를 이관 대상으로 결정할 수 있다(단계 S450). 클라우드 멀티-클러스터 장치(100)는 특정 워크의 이관이 완료된 후 다른 클러스터부(210)와 통신하여 특정 워크의 정상적 수행을 모니터링할 수 있다(단계 S470). 일 실시예에서, 클라우드 멀티-클러스터 장치(100)는 워크제어 모듈(217)를 통해 특정 워크의 비정상적 수행이 검출되면 특정 워크의 요청 기기에게 특정 워크의 비정상적인 수행을 알릴 수 있다.The cloud multi-cluster device 100 may determine one of the cluster units 210 to which the response according to the transfer request arrives within a specific time as a transfer target (step S450). The cloud multi-cluster device 100 may monitor the normal performance of a specific work by communicating with another cluster unit 210 after the transfer of the specific work is completed (step S470). In one embodiment, the cloud multi-cluster device 100 may notify the requesting device of the specific work that the specific work is abnormal when the abnormal performance of the specific work is detected through the work control module 217.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to preferred embodiments of the present invention, those skilled in the art variously modify and change the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. You can understand that you can.

100: 클라우드 멀티-클러스터 장치
110: 프로세서 130: 메모리
150: 사용자 입출력부 170: 네트워크 입출력부
210: 클러스터부 211: 마스터 노드
213: 워커 노드 215: API 모듈
217: 워크제어 모듈 219: 인그레스 모듈
311: 스케쥴러 313: 로드 밸런서
315: 모니터링 매니저
100: cloud multi-cluster device
110: processor 130: memory
150: user input/output unit 170: network input/output unit
210: cluster unit 211: master node
213: worker node 215: API module
217: Work control module 219: Ingress module
311: Scheduler 313: Load Balancer
315: monitoring manager

Claims (10)

API (Application Programming Interface) 기반으로 상호 연결된 마스터 노드와 적어도 하나의 워커 노드를 각각 포함하는 복수의 클러스터부들을 포함하고,
상기 마스터 노드는 상기 API를 제공하는 API 모듈을 포함하며,
상기 적어도 하나의 워커 노드 각각은 해당 클러스터의 부하량을 기초로 특정 워크에 관해 다른 클러스터부와 로드 밸런싱(load balancing)의 수행 여부를 결정하는 워크제어 모듈을 포함하는 클라우드 멀티-클러스터 장치.
Based on the API (Application Programming Interface), and includes a plurality of clusters each comprising a master node and at least one worker node interconnected,
The master node includes an API module that provides the API,
Each of the at least one worker node is a cloud multi-cluster device including a work control module for determining whether to perform load balancing with another cluster unit on a specific work based on the load amount of the corresponding cluster.
제1항에 있어서, 상기 워크제어 모듈은
상기 다른 클러스터부에 있는 해당 워커 노드의 워크제어 모듈과 통신하여 상기 로드 밸런싱의 제어를 처리하는 것을 특징으로 하는 클라우드 멀티-클러스터 장치.
According to claim 1, The work control module
Cloud multi-cluster device, characterized in that for processing the control of the load balancing by communicating with the work control module of the worker node in the other cluster unit.
제2항에 있어서, 상기 워크제어 모듈은
상기 로드 밸런싱의 제어 과정에서 상기 해당 클러스터부에 공통적으로 존재하는 인그레스(ingress) 모듈을 통해 해당 로드의 이관 제어와 이관 전송을 수행하는 것을 특징으로 하는 클라우드 멀티-클러스터 장치.
According to claim 2, The work control module
Cloud multi-cluster device, characterized in that during the load balancing control process, transfer control and transfer of the load are performed through an ingress module commonly present in the corresponding cluster.
제3항에 있어서, 상기 워크제어 모듈은
상기 해당 로드의 이관 전송이 완료되면 상기 API 모듈을 통해 해당 마스터 노드를 통한 스케쥴 제어를 수신하는 것을 특징으로 하는 클라우드 멀티-클러스터 장치.
According to claim 3, The work control module
The cloud multi-cluster device, characterized in that when the transfer of the corresponding load is completed, the schedule control through the corresponding master node is received through the API module.
제1항에 있어서, 상기 워크제어 모듈은
상기 로드 밸런싱의 수행에 필요한 이관 제어와 이관 전송을 수행하는 로드 밸런서(load balancer)를 포함하는 것을 특징으로 하는 클라우드 멀티-클러스터 장치.
According to claim 1, The work control module
Cloud load multi-cluster device, characterized in that it comprises a load balancer (load balancer) for performing the transfer control and transfer transfer required to perform the load balancing.
제5항에 있어서, 상기 워크제어 모듈은
상기 특정 워크의 스케쥴을 위해 상기 API 모듈을 통해 해당 마스터 노드에 있는 스케쥴 모듈에 의한 제어를 수신하는 스케쥴러를 더 포함하는 것을 특징으로 하는 클라우드 멀티-클러스터 장치.
According to claim 5, The work control module
And a scheduler receiving control by the schedule module in the corresponding master node through the API module for scheduling the specific work.
제6항에 있어서, 상기 워크제어 모듈은
현재 로드의 과중 여부를 모니터링하는 모니터링 매니저(monitoring manager)를 더 포함하는 것을 특징으로 하는 클라우드 멀티-클러스터 장치.
According to claim 6, The work control module
Cloud multi-cluster device further comprising a monitoring manager (monitoring manager) for monitoring whether the current load.
제7항에 있어서, 상기 워크제어 모듈은
상기 현재 로드의 과중이 존재할 것으로 예측되면 상기 특정 워크의 이관 요청에 따른 응답이 특정 시간 내에 도착하는 클러스터부 중 하나를 상기 다른 클러스터부로 결정하는 것을 특징으로 하는 클라우드 멀티-클러스터 장치.
The work control module of claim 7, wherein the work control module
Cloud multi-cluster device, characterized in that when it is predicted that an overload of the current load will exist, one of the cluster units to which the response according to the transfer request of the specific work arrives within a certain time is determined as the other cluster unit.
제7항에 있어서, 상기 워크제어 모듈은
상기 모니터링 매니저를 통해 상기 특정 워크의 이관이 완료된 이후에도 상기 다른 클러스터부와 통신하여 상기 특정 워크의 정상적 수행을 지속적으로 모니터하는 것을 특징으로 하는 클라우드 멀티-클러스터 장치.
The work control module of claim 7, wherein the work control module
The cloud multi-cluster device, characterized in that, after the migration of the specific work is completed through the monitoring manager, the normal performance of the specific work is continuously monitored by communicating with the other cluster unit.
제9항에 있어서, 상기 워크제어 모듈은
상기 특정 워크의 비정상적 수행이 검출되면 상기 특정 워크의 요청 기기에게 상기 특정 워크의 비정상적인 수행을 알리는 것을 특징으로 하는 클라우드 멀티-클러스터 장치.

10. The method of claim 9, The work control module
The cloud multi-cluster device, characterized in that when the abnormal performance of the specific work is detected, the requesting device of the specific work is notified of the abnormal performance of the specific work.

KR1020180169256A 2018-12-18 2018-12-26 Cloud multi-cluster apparatus KR20200080458A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180163833 2018-12-18
KR20180163833 2018-12-18

Publications (1)

Publication Number Publication Date
KR20200080458A true KR20200080458A (en) 2020-07-07

Family

ID=71602843

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180169256A KR20200080458A (en) 2018-12-18 2018-12-26 Cloud multi-cluster apparatus

Country Status (1)

Country Link
KR (1) KR20200080458A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102245340B1 (en) * 2020-09-11 2021-04-28 한국전자기술연구원 Method for live migration processing based on container memory within cloud edge environment
KR102260549B1 (en) * 2020-09-10 2021-06-04 한국전자기술연구원 Load balancing method based on resource utilization and geographic location in a associative container environment
CN115022209A (en) * 2022-06-24 2022-09-06 中国电信股份有限公司 Monitoring method, monitoring device and computer-readable storage medium
WO2023214855A1 (en) * 2022-05-06 2023-11-09 삼성전자 주식회사 Method and apparatus for controlling container application in container-based multi-cluster environment
US11916998B2 (en) 2021-11-12 2024-02-27 Electronics And Telecommunications Research Institute Multi-cloud edge system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101807806B1 (en) 2017-05-02 2017-12-11 나무기술 주식회사 Application containerization method on cloud platform

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101807806B1 (en) 2017-05-02 2017-12-11 나무기술 주식회사 Application containerization method on cloud platform

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102260549B1 (en) * 2020-09-10 2021-06-04 한국전자기술연구원 Load balancing method based on resource utilization and geographic location in a associative container environment
US11575740B2 (en) 2020-09-10 2023-02-07 Korea Electronics Technology Institute Load balancing method based on resource utilization and geographic location in associative container environment
KR102245340B1 (en) * 2020-09-11 2021-04-28 한국전자기술연구원 Method for live migration processing based on container memory within cloud edge environment
US11916998B2 (en) 2021-11-12 2024-02-27 Electronics And Telecommunications Research Institute Multi-cloud edge system
WO2023214855A1 (en) * 2022-05-06 2023-11-09 삼성전자 주식회사 Method and apparatus for controlling container application in container-based multi-cluster environment
CN115022209A (en) * 2022-06-24 2022-09-06 中国电信股份有限公司 Monitoring method, monitoring device and computer-readable storage medium

Similar Documents

Publication Publication Date Title
JP6199514B2 (en) Scheduling fabric distributed resources
KR20200080458A (en) Cloud multi-cluster apparatus
EP3140734B1 (en) Mechanism for providing external access to a secured networked virtualization environment
US8909698B2 (en) Grid-enabled, service-oriented architecture for enabling high-speed computing applications
US8782657B2 (en) Dynamic creation and destruction of IO resources based on actual load and resource availability
JP2020064676A (en) Opportunistic resource migration to optimize resource placement
US20060069761A1 (en) System and method for load balancing virtual machines in a computer network
US9501325B2 (en) System and method for shared utilization of virtualized computing resources
US10715587B2 (en) System and method for load balancing computer resources
CN104937584A (en) Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources
US20120011254A1 (en) Network-aware virtual machine migration in datacenters
US20080229320A1 (en) Method, an apparatus and a system for controlling of parallel execution of services
US20130227585A1 (en) Computer system and processing control method
JP2005056391A (en) Method and system for balancing workload of computing environment
JP2006048680A (en) System and method for operating load balancers for multiple instance applications
JP2001331333A (en) Computer system and method for controlling computer system
JP2005216151A (en) Resource operation management system and resource operation management method
CN106681839B (en) Elastic calculation dynamic allocation method
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
CN114174993A (en) Optimizing cluster applications in a cluster infrastructure
CN111913670A (en) Load balancing processing method and device, electronic equipment and storage medium
CN107566466A (en) Load-balancing method and device
US11726684B1 (en) Cluster rebalance using user defined rules
EP2930620A2 (en) Dynamic provisioning of processing resources in a virtualised computational architecture
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device

Legal Events

Date Code Title Description
E601 Decision to refuse application