KR102016238B1 - System and method for supervising doker container, computer readable medium for performing the method - Google Patents

System and method for supervising doker container, computer readable medium for performing the method Download PDF

Info

Publication number
KR102016238B1
KR102016238B1 KR1020170181930A KR20170181930A KR102016238B1 KR 102016238 B1 KR102016238 B1 KR 102016238B1 KR 1020170181930 A KR1020170181930 A KR 1020170181930A KR 20170181930 A KR20170181930 A KR 20170181930A KR 102016238 B1 KR102016238 B1 KR 102016238B1
Authority
KR
South Korea
Prior art keywords
container
log
information
host
error
Prior art date
Application number
KR1020170181930A
Other languages
Korean (ko)
Other versions
KR20190066516A (en
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 KR20190066516A publication Critical patent/KR20190066516A/en
Application granted granted Critical
Publication of KR102016238B1 publication Critical patent/KR102016238B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Abstract

본 발명에 따른 도커 컨테이너 관리 방법은 도커 기반 컨테이너에 대한 정상 로그 또는 에러 로그를 포함하는 로그정보를 이용하여 작업을 할당하기 위한 호스트를 결정하는 스케줄링 정보 및 상기 에러 로그로 구분된 로그정보를 이용하여 호스트에 할당할 작업인 수행동작의 순서를 결정하는 수행동작 우선순위 정보를 생성하고, 이를 기초로 어느 하나의 호스트에서 상기 작업에 대한 컨테이너가 생성 또는 재생성 되도록 상기 어느 하나의 호스트로 제어 신호를 전송함으로써 로그 정보를 이용하여 컨테이너를 효율적으로 관리할 수 있다.Docker container management method according to the invention using the log information divided into the error log and the scheduling information for determining the host for allocating the task using the log information including the normal log or error log for the docker-based container Generates execution priority information for determining the order of performing actions, which are tasks to be assigned to the host, and transmits a control signal to any one host so that a container for the task is created or regenerated from either host. Thus, the container can be efficiently managed using log information.

Description

도커 컨테이너 관리 시스템 및 방법, 이를 수행하기 위한 기록매체 {SYSTEM AND METHOD FOR SUPERVISING DOKER CONTAINER, COMPUTER READABLE MEDIUM FOR PERFORMING THE METHOD}Docker container management system and method, recording medium for performing the same {SYSTEM AND METHOD FOR SUPERVISING DOKER CONTAINER, COMPUTER READABLE MEDIUM FOR PERFORMING THE METHOD}

본 발명은 도커 컨테이너 관리 시스템 및 방법, 이를 수행하기 위한 기록매체에 관한 것으로서, 더욱 상세하게는 호스트에 생성된 컨테이너들의 로그정보를 이용하여 컨테이너를 관리하는 도커 컨테이너 관리 시스템 및 방법, 이를 수행하기 위한 기록매체에 관한 것이다.The present invention relates to a docker container management system and method, and a recording medium for performing the same. More particularly, the present invention relates to a docker container management system and method for managing a container using log information of containers created on a host, and to perform the same. It relates to a recording medium.

리눅스는 단일 컨트롤 호스트 상에서 여러 리눅스 시스템을 실행하기 위한 운영체제 레벨 가상화 방법으로 LXC(Linux Container)를 지원한다. LXC는 실제 가상화 머신을 시작할 필요 없이 고립된 프로세스와 자원을 할당하여 사용할 수 있다. 이후 LXC를 기반으로 한 도커(Docker)가 공개되었는데, 기존 LXC와 달리 유지보수가 불가능하게 설계가 되었다. 대신, 어느 리눅스 환경에 가져가도 내용 수정 없이 동일한 동작을 보장하며, 포함되는 프로세스와 라이브러리 등을 최소화하여 보다 효율적으로 구성된다.Linux supports LXC (Linux Container) as an operating system level virtualization method for running multiple Linux systems on a single control host. LXC can allocate and use isolated processes and resources without having to start a real virtual machine. Later, Docker based on LXC was released, and unlike the existing LXC, it was designed to be non-maintainable. Instead, it ensures the same operation without any modifications to any Linux environment, and it is configured more efficiently by minimizing included processes and libraries.

도커로 인해 컨테이너 기술의 진입장벽이 낮아지면서 리눅스 컨테이너가 다양한 곳에 활용이 되기 시작했는데, 그 중 대표적인 분야가 클라우드 컴퓨팅이라고 할 수 있다. 도커 컨테이너 기술에 의하면 호스트의 환경이나 개수 등이 동작에 영향을 주지 않기 때문에, 미리 준비한 컨테이너를 실행시키는 것 만으로 원하는 동작을 기대할 수 있다.Docker has lowered the barriers to container technology, and Linux containers have begun to be used in a variety of places, the most common of which is cloud computing. The docker container technology does not affect the operation, the number of hosts, or the like, so that the desired operation can be expected only by executing a container prepared in advance.

이러한 종래의 컨테이너 관리 기술은 도커 컨테이너로부터 로그를 수집하여 중앙 서버에 저장할 수 있으나, 로그 정보를 활용하는 로직이 없어 로그를 단순히 시각적으로 확인하는 것 이상의 동작을 기대할 수 없다는 한계가 있다. 이에, 로그 정보 분석으로 각 호스트간 작업 스케줄링이나 컨테이너의 동작 오류에 따른 대응 방안을 마련할 수 있는 기술의 필요성이 요구되고 있다.This conventional container management technology can collect the log from the Docker container and store it in the central server. However, there is no logic that utilizes log information, so there is a limit that an operation beyond the visual confirmation of the log cannot be expected. Accordingly, there is a need for a technique for preparing a countermeasure according to job scheduling between each host or an operation error of a container by analyzing log information.

한국등록특허 제10-1810762호Korean Patent Registration No. 10-1810762 한국공개특허 제10-2017-0085072호Korean Patent Publication No. 10-2017-0085072

본 발명의 일측면은 다중 호스트에서 동작하는 도커 기반 컨테이너에서 생성되는 로그 정보를 수집한 후 분석하여 효과적인 스케줄링 및 오류 대응 인터페이스를 제공하는 도커 컨테이너 관리 시스템 및 방법, 이를 수행하기 위한 기록매체를 제공한다.An aspect of the present invention provides a docker container management system and method for providing an efficient scheduling and error response interface by collecting and analyzing log information generated in a docker-based container operating in multiple hosts, and a recording medium for performing the same. .

본 발명의 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problem of the present invention is not limited to the technical problem mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

본 발명의 일 실시예에 따른 도커 컨테이너 관리 방법은, 컴퓨터 클러스터를 구성하는 각각의 호스트로부터 상기 호스트에 생성되어 동작하는 도커 기반 컨테이너에 대한 정상 로그 또는 에러 로그를 포함하는 로그정보를 수집하는 단계, 상기 정상 로그로 구분된 로그정보를 이용하여 작업을 할당하기 위한 호스트를 결정하는 스케줄링 정보를 생성하고, 상기 에러 로그로 구분된 로그정보를 이용하여 호스트에 할당할 작업인 수행동작의 순서를 결정하는 수행동작 우선순위 정보를 생성하는 단계 및 상기 스케줄링 정보 및 상기 우선순위 정보를 기초로 상기 수행동작 우선순위에 따른 작업을 수행할 어느 하나의 호스트를 결정하고, 상기 어느 하나의 호스트에서 상기 작업에 대한 컨테이너가 생성 또는 재생성되도록 상기 어느 하나의 호스트로 제어 신호를 전송하는 단계를 포함한다.Docker container management method according to an embodiment of the present invention, collecting log information including the normal log or error log for the docker-based container created and operated in the host from each host constituting a computer cluster, Generating scheduling information for determining a host for allocating a task using the log information divided into the normal log, and determining an order of performing operations, which are tasks to be allocated to the host using the log information divided into the error log. Generating execution operation priority information and determining one host to perform a task according to the execution operation priority based on the scheduling information and the priority information, and for the task at any one host, Control by any one of the hosts so that containers are created or regenerated Transmitting a signal.

상기 수행동작 우선순위 정보를 생성하는 것은, 에러 로그에 따른 컨테이너를 재생성하기 위한 수행동작에 대한 가중치를 새로운 컨테이너를 생성하기 위한 수행동작에 대한 가중치보다 높게 설정하여, 상기 에러 로그에 따른 수행동작을 상기 새로운 컨테이너를 생성하기 위한 수행동작보다 우선순위로 설정하는 것을 특징으로 할 수 있다.The generating of the execution priority information may include setting the weight of the execution operation for regenerating the container according to the error log to be higher than the weight of the execution operation for creating a new container, thereby performing the execution operation according to the error log. It may be characterized by setting the priority over the performing operation for creating the new container.

상기 수행동작 우선순위 정보를 생성하는 것은, 수집되는 복수의 에러 로그를 각각의 컨테이너별로 분류하여 컨테이너별 비정상 작동률을 산출하고, 상기 컨테이너별 비정상 작동률을 서로 비교하여 재생성될 컨테이너의 순서인 수행동작 우선순위를 결정하는 것을 특징으로 할 수 있다.The generating of the operation priority information may be performed by classifying a plurality of collected error logs for each container, calculating an abnormal operation rate for each container, and comparing the abnormal operation rates for each container with each other to perform an order of containers to be regenerated. It may be characterized by determining the operation priority.

상기 수행동작 우선순위 정보를 생성하는 것은, 제1 에러 로그에 따른 제1 컨테이너에 대한 제1 비정상 작동률과, 제2 에러 로그에 따른 제2 컨테이너에 대한 제2 비정상 작동률을 산출하고, 상기 제1 비정상 작동률이 상기 제2 비정상 작동률보다 높은 경우, 제1 에러 로그에 따른 제1 컨테이너를 재생성해야 되는 제1 수행동작을 제2 에러 로그에 따른 제2 컨테이너를 재생성해야 되는 제2 수행동작보다 우선순위로 설정하는 것을 특징으로 할 수 있다.The generating of the operation priority information may include calculating a first abnormal operation rate for the first container according to the first error log and a second abnormal operation rate for the second container according to the second error log. When the first abnormal operation rate is higher than the second abnormal operation rate, the second performing operation of regenerating the second container according to the second error log is performed by the first performing operation of regenerating the first container according to the first error log. It may be characterized by setting the priority over the operation.

상기 수행동작 우선순위 정보를 생성하는 것은, 특정 컨테이너에 대한 비정상 작동률이 미리 정해진 제1 임계값 이하인 경우, 상기 특정 컨테이너를 재생성하기 위한 수행동작을 새로운 컨테이너를 생성하기 위한 수행동작보다 후순위로 설정하는 것을 특징으로 할 수 있다.Generating the execution operation priority information, if an abnormal operation rate for a specific container is less than or equal to a predetermined first threshold, set an execution operation for regenerating the specific container to a lower priority than an execution operation for creating a new container. It can be characterized by.

상기 수행동작 우선순위 정보를 생성하는 것은, 상기 특정 컨테이너에 대한 비정상 작동률이 상기 제1 임계값보다 작은 제2 임계값 이하인 경우, 상기 특정 컨테이너에 대한 에러 로그가 일시적인 에러인 것으로 판단하여 상기 특정 컨테이너를 생성하기 위한 수행동작을 상기 수행동작 우선순위 정보에서 제외시키는 것을 특징으로 할 수 있다.The generating of the operation priority information may include determining that the error log for the specific container is a temporary error when the abnormal operation rate for the specific container is less than or equal to a second threshold smaller than the first threshold value. The execution operation for creating a container may be excluded from the execution operation priority information.

상기 호스트는, 상기 정상 로그를 소정 시간 동안 수집하여 주기적으로 전송하되, 상기 에러 로그는 수신 즉시 전송하고, 상기 수행동작 우선순위 정보를 생성하는 것은, 상기 에러 로그가 수신될 때마다 상기 에러 로그에 대한 컨테이너의 비정상 작동률을 산출하여, 기 생성된 수행동작 우선순위 정보와 비교하여 상기 수행동작 우선순위 정보를 실시간으로 갱신하는 것을 특징으로 할 수 있다.The host collects the normal log for a predetermined time and periodically transmits the error log, and immediately transmits the error log and generates the execution priority information. The host logs are sent to the error log each time the error log is received. The abnormal operation rate of the container may be calculated, and the execution operation priority information may be updated in real time in comparison with the previously generated execution operation priority information.

상기 스케줄링 정보를 생성하는 것은, 소정 시간 간격으로 수집되는 상기 정상 로그를 기초로 상기 스케줄링 정보를 주기적으로 갱신하는 것을 특징으로 할 수 있다.The generating of the scheduling information may be characterized in that the scheduling information is periodically updated based on the normal log collected at predetermined time intervals.

또한, 본 발명에 따른 도커 컨테이너 관리 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체일 수 있다.In addition, it may be a computer-readable recording medium having a computer program recorded thereon for performing the docker container management method according to the present invention.

또한, 본 발명의 일 실시예에 따른 도커 컨테이너 관리 시스템은, 제어신호를 수신하여 도커 기반 컨테이너를 생성하고, 동작되는 컨테이너에 대한 로그정보를 수집하여 정상 로그 또는 에러 로그로 분류하여 전송하는 호스트 및 컴퓨터 클러스터를 구성하는 각각의 호스트로부터 정상 로그 또는 에러 로그로 분류된 상기 로그정보를 수신하되, 상기 정상 로그로 구분된 로그정보를 이용하여 작업을 할당하기 위한 호스트를 결정하는 스케줄링 정보를 생성하고, 상기 에러 로그로 구분된 로그정보를 이용하여 호스트에 할당할 작업인 수행동작의 순서를 결정하는 수행동작 우선순위 정보를 생성하며, 상기 스케줄링 정보 및 상기 우선순위 정보를 기초로 상기 수행동작 우선순위에 따른 작업을 수행할 어느 하나의 호스트를 결정하고, 상기 어느 하나의 호스트에서 상기 작업에 대한 컨테이너가 생성 또는 재생성되도록 상기 어느 하나의 호스트로 제어 신호를 전송하는 관리서버를 포함한다.In addition, the docker container management system according to an embodiment of the present invention, the host receiving the control signal to create a docker-based container, collects log information for the container in operation and classifies it as a normal log or error log and transmits; Receiving the log information classified as a normal log or an error log from each host constituting the computer cluster, and generating scheduling information for determining a host for allocating a job using the log information classified as the normal log, Generate execution operation priority information for determining an order of performing operations, which are tasks to be allocated to a host using log information divided into the error logs, and based on the scheduling information and the priority information, Determine which host to perform the operation according to, In the host and a management server that transmits a control signal to the one of the host so that the container is generated or regenerated on the job.

상술한 본 발명의 일측면에 따르면, 도커 컨테이너의 상태가 동작 정보에 관한 로그 정보를 통합적으로 관리할 수 있고, 로그 정보 분석으로 각 호스트간 작업 스케줄링이나 컨테이너 모듈을 자가 개선할 수 있으며, 에러 로그를 이용하여 컨테이너의 동작 오류에 따른 대응 방안을 동적으로 결정하여 제공함으로써 컨테이너의 부하를 줄일 수 있다.According to one aspect of the present invention, the state of the docker container can collectively manage log information about the operation information, and can improve the job scheduling or container module between each host by analyzing the log information, error log By dynamically determining and providing a countermeasure according to an operation error of the container, the load on the container can be reduced.

도 1은 본 발명에 따른 도커 관리 시스템의 개략적인 구성이 도시된 개념도이다.
도 2는 도 1의 호스트의 구체적인 구성이 도시된 도면이다.
도 3은 도 1의 관리서버의 구체적인 구성이 도시된 도면이다.
도 4는 도 1의 도커 관리 시스템 내에서의 데이터 흐름을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 도커 컨테이너 관리 방법의 개략적인 흐름이 도시된 순서도이다.
1 is a conceptual diagram illustrating a schematic configuration of a docker management system according to the present invention.
FIG. 2 is a diagram illustrating a specific configuration of the host of FIG. 1.
3 is a diagram illustrating a specific configuration of the management server of FIG.
4 is a diagram illustrating a data flow in the docker management system of FIG. 1.
5 is a flowchart illustrating a schematic flow of a docker container management method according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION The following detailed description of the invention refers to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be embodied in other embodiments without departing from the spirit and scope of the invention in connection with one embodiment. In addition, it is to be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention, if properly described, is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled. Like reference numerals in the drawings refer to the same or similar functions throughout the several aspects.

이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 도커 컨테이너 관리 시스템의 개략적인 구성이 도시된 개념도이다.1 is a conceptual diagram illustrating a schematic configuration of a docker container management system according to an embodiment of the present invention.

구체적으로, 본 발명의 일 실시예에 따른 도커 컨테이너 관리 시스템(1000)은 적어도 하나의 호스트(100_1, 100_2, 100_3)와 관리서버(200)를 포함한다. 이하에서는, 설명의 편의를 위해 클러스터를 구성하는 복수의 호스트(100_1, 100_2, 100_3) 중 어느 하나의 호스트를 호스트(100)로 대표 표기하여 설명하기로 한다.Specifically, the docker container management system 1000 according to an embodiment of the present invention includes at least one host (100_1, 100_2, 100_3) and the management server 200. Hereinafter, for convenience of description, any one host among the plurality of hosts 100_1, 100_2, and 100_3 constituting the cluster will be described as a host 100.

호스트(100)는 네트워크에 접속하여 다른 장치들과 통신이 가능하며, 할당된 작업을 처리하는 호스트(100)는 컴퓨터 장치일 수 있다. 하지만, 호스트(100)는 이에 한정되는 것은 아니며 스마트폰, 태블릿 PC, 노트북, 웨어러블 장치 등과 같이 이하에서 설명되는 기능들을 수행할 수 있는 다른 전자장치들을 포함할 수 있다.The host 100 may communicate with other devices by accessing a network, and the host 100 processing an assigned task may be a computer device. However, the host 100 is not limited thereto, and may include other electronic devices capable of performing the functions described below, such as a smartphone, a tablet PC, a notebook, a wearable device, and the like.

호스트(100)는 리눅스 컨테이너(LinuX Container) 기술에 따라 독립된 환경에서 애플리케이션(응용프로그램)을 실행시킬 수 있다. 이를 위해, 호스트(100)는 도커 기반의 컨테이너(110_1 내지 110_6)를 적어도 하나 생성할 수 있다. 이하, 설명의 편의를 위해 어느 하나의 호스트(100)에 생성된 어느 하나의 컨테이너를 컨테이너(110)로 대표 표기하여 설명하기로 한다.The host 100 may execute an application (application) in an independent environment according to the Linux container (LinuX Container) technology. To this end, the host 100 may create at least one docker-based container 110_1 to 110_6. Hereinafter, for convenience of description, any one of the containers generated in one host 100 will be described by representing the container 110 as a representative.

컨테이너(110)에는 애플리케이션과 이를 구동하는데 필요한 모든 종속물, 라이브러리, 기타 바이너리와 구성 파일 등을 하나의 패키지로 묶은 리눅스 모듈(이하, 모듈)이 배치될 수 있다. 이에 따라, 호스트(100)는 생성된 컨테이너(110)별로 독립적으로 애플리케이션을 실행시킬 수 있다. 이 과정에서, 호스트(100)는 각각의 컨테이너들(110)에 대한 로그정보를 수집할 수 있다. 예를 들어, 제1 호스트(100_1)는 제1 컨테이너(110_1) 및 제2 컨테이너(110_2)에 대한 로그정보를 수집하고, 제2 호스트(100_2)는 자체적으로 생성된 제3 컨테이너(110_3) 및 제4 컨테이너(110_4)에 대한 로그정보를 수집 할 수 있다. 로그정보는 컨테이너에 격리된 리눅스 모듈의 상태 정보 및 동작정보를 나타내는 정보일 수 있다. 이하에서는, 설명의 편의를 위해 로그정보는 컨테이너의 상태 및 동작에 대한 정보인 것으로 정의하여 설명하기로 한다.The container 110 may include a Linux module (hereinafter, referred to as a module) that bundles an application and all of its dependencies, libraries, other binaries and configuration files in one package. Accordingly, the host 100 may independently execute the application for each generated container 110. In this process, the host 100 may collect log information about the respective containers 110. For example, the first host 100_1 collects log information about the first container 110_1 and the second container 110_2, and the second host 100_2 collects the third container 110_3 generated by itself and Log information on the fourth container 110_4 may be collected. The log information may be information representing status information and operation information of the Linux module isolated in the container. Hereinafter, for convenience of description, the log information will be described as being defined as information on the state and operation of the container.

관리서버(200)는 복수의 호스트(100)를 클러스터링하여 관리할 수 있다. 즉, 관리서버(200)는 복수의 호스트(100)를 하나처럼 사용하는 클러스터링 기법을 이용하여 작업을 처리할 수 있다. 관리서버(200)는 입력받은 트래픽을 로드밸런싱 기법에 따라 자동으로 분산하여 각각의 호스트(100)에 할당할 수 있다.The management server 200 may manage a plurality of hosts 100 by clustering. That is, the management server 200 may process a job using a clustering technique using the plurality of hosts 100 as one. The management server 200 may automatically distribute the received traffic according to the load balancing technique and allocate the traffic to each host 100.

관리서버(200)는 클러스터 내의 호스트(100)들로부터 로그정보를 수집할 수 있다. 관리서버(200)는 수집된 로그정보를 이용하여 호스트(100)에 작업을 할당하는 순서를 결정하기 위한 스케줄링을 수행할 수 있으며, 특정 호스트(100)에 대한 컨테이너의 오류 시 이에 대한 대처 방안을 제공할 수 있다. The management server 200 may collect log information from the hosts 100 in the cluster. The management server 200 may perform scheduling to determine the order of allocating a task to the host 100 by using the collected log information, and cope with a failure of the container for a specific host 100. Can provide.

이러한 관리서버(200)는 가상화된 클라우드 서버의 형태일 수 있으나, 물리적 서버의 형태로도 마련될 수 있다.The management server 200 may be in the form of a virtualized cloud server, but may also be provided in the form of a physical server.

이하에서는, 도 2 내지 도 4를 참조하여 도 1에 도시된 각각의 구성요소들에 대하여 상세히 설명하기로 한다.Hereinafter, each component shown in FIG. 1 will be described in detail with reference to FIGS. 2 to 4.

도 2는 도 1의 호스트(100)의 구체적인 기능이 도시된 블록도이다.FIG. 2 is a block diagram illustrating specific functions of the host 100 of FIG. 1.

호스트(100)는 관리서버(200)의 요청에 의해 컨테이너(110)를 생성할 수 있다. 호스트(100)는 도커 기반의 컨테이너(110)를 생성하고, 컨테이너(110)에 대한 로그정보를 수집하여 관리서버(200)로 전송할 수 있다. 이때, 호스트(100)에 생성된 컨테이너(110)는 일반 컨테이너(111_1, 111_2)와 로그 컨테이너(112) 중 어느 하나이며, 호스트(100)는 복수의 일반 컨테이너(111_1, 111_2)와 하나의 로그 컨테이너(112)를 생성하여 관리할 수 있다. 이하에서는, 설명의 편의를 위해 호스트(100)에서 생성된 복수의 일반 컨테이너(111_1, 111_2)들 중 어느 하나의 컨테이너를 일반 컨테이너(111)로 대표 표기하여 설명하기로 한다.The host 100 may generate the container 110 at the request of the management server 200. The host 100 may create a docker-based container 110, collect log information about the container 110, and transmit the collected log information to the management server 200. In this case, the container 110 created in the host 100 is any one of the general containers 111_1 and 111_2 and the log container 112, and the host 100 includes a plurality of general containers 111_1 and 111_2 and one log. The container 112 may be created and managed. Hereinafter, for convenience of description, any one of the plurality of general containers 111_1 and 111_2 generated in the host 100 will be described as a representative container 111.

일반 컨테이너(111)는 애플리케이션의 동작 상태에 관한 로그정보를 생성하며, 원격 시스템 로그(syslog)를 통해 로그정보를 호스트(100)에 전송할 수 있다. 구체적으로, 일반 컨테이너(111)는 원격 syslog를 통하여 애플리케이션 실행 결과를 표준 스트림의 표준 출력(stdout) 또는 표준 오류(stderr)를 통해 전송할 수 있다. 여기서, 표준 출력은 애플리케이션이 정상적으로 작동되면서 생성되는 로그정보들이 전송되는 출력 통로이고, 표준 오류는 애플리케이션의 실행 중 오류가 발생되었을 때 생성되는 로그정보들이 전송되는 출력 통로일 수 있다.The general container 111 may generate log information about an operation state of an application and transmit log information to the host 100 through a remote system log (syslog). In detail, the general container 111 may transmit an application execution result through a standard stlog or a standard error stderr through a remote syslog. Here, the standard output may be an output path through which log information generated while the application is normally operated is transmitted, and the standard error may be an output path through which log information generated when an error occurs during the execution of the application.

로그 컨테이너(112)는 호스트(100)에 존재하는 복수의 일반 컨테이너(111)에 의해 생성된 로그정보가 저장된 데이터베이스 또는 저장된 경로에 마운트하여 저장된 로그정보들을 수집할 수 있다. 로그 컨테이너(112)는 정상 로그 또는 에러 로그로 구분할 수 있다. 정상 로그는 표준 출력을 전송되는 로그정보로, 상술한 바와 같이 컨테이너(110)가 정상적으로 실행되면서 생성되는 정보들일 수 있다. 반면, 에러 로그는 표준 오류를 통해 전송된 로그정보로, 컨테이너(110)가 잘못된 요청이나 자체 결함 등으로 이상 동작을 일으키거나 작동이 중지된 경우 발생되는 정보들일 수 있다. 로그 컨테이너(112)는 로그정보가 어떠한 경로로 전송되었는지를 확인하여 로그정보를 정상 로그 또는 에러 로그로 구분할 수 있다. 로그 컨테이너(112)는 구분된 로그정보를 관리서버(200)로 전송할 수 있다.The log container 112 may collect log information stored by mounting the log information generated by the plurality of general containers 111 existing in the host 100 in a database or a stored path. The log container 112 may be divided into a normal log or an error log. The normal log is log information transmitted through standard output, and may be information generated while the container 110 is normally executed as described above. On the other hand, the error log is log information transmitted through a standard error, and may be information generated when the container 110 causes abnormal operation or stops due to an invalid request or a defect thereof. The log container 112 may identify which path the log information is transmitted to and divide the log information into a normal log or an error log. The log container 112 may transmit the divided log information to the management server 200.

한편, 도시된 실시예에서, 각각의 호스트(100)는 두 개의 일반 컨테이너(111_1, 111_2)와 하나의 로그 컨테이너(112)를 생성하는 것으로 도시되어 있으나, 생성되는 컨테이너(110)의 수에는 제한을 두지 않는다.Meanwhile, in the illustrated embodiment, each host 100 is illustrated as creating two general containers 111_1 and 111_2 and one log container 112, but the number of containers 110 generated is limited. Do not put

도 3은 도 1의 관리서버(200)의 구체적인 기능이 도시된 도면이다.3 is a diagram illustrating a specific function of the management server 200 of FIG.

관리서버(200)는 통신부(210), 제어부(220) 및 데이터베이스부(230)를 포함한다. 통신부(210), 제어부(220) 및 데이터베이스부(230)의 구성요소는 설명의 편의를 위해 임의적으로 구분한 것으로, 상술한 구성요소들 중 적어도 두 개의 구성요소가 하나의 구성요소로 통합되어 하나의 구성요소가 복합적인 기능을 수행할 수도 있다. 이하, 상술한 구성요소들에 대해 구체적으로 설명하기로 한다.The management server 200 includes a communication unit 210, a control unit 220 and a database unit 230. The components of the communication unit 210, the control unit 220, and the database unit 230 are arbitrarily divided for convenience of description, and at least two of the above-described elements are integrated into one component. The components of may perform complex functions. Hereinafter, the above-described components will be described in detail.

통신부(210)는 로그 컨테이너(112)로부터 수신되는 로그정보를 수신할 수 있다. 통신부(210)는 수신된 정상 로그 및 에러 로그를 데이터베이스부(230)에 전송하여 저장될 수 있도록 하고, 로그정보를 제어부(220)로 전달하여 호스트(100)를 관리하는데 참조가 되는 정보를 제공할 수 있다. 또한, 통신부(210)는 관리서버(200)에 의해 할당되는 작업 또는 컨테이너(110) 관리를 위한 제어신호를 제어부(200)에 의해 설정된 호스트(100)로 전달할 수 있다. The communication unit 210 may receive log information received from the log container 112. The communication unit 210 transmits the received normal log and error log to the database unit 230 to be stored, and transmits log information to the control unit 220 to provide information for reference in managing the host 100. can do. In addition, the communication unit 210 may transmit a control signal for managing a job or the container 110 assigned by the management server 200 to the host 100 set by the control unit 200.

제어부(220)는 통신부(210)를 통해 동일한 클러스터를 구성하는 호스트(100)들로부터 수신된 로그정보를 분석하여 그 결과에 따라 클러스터를 구성하는 특정 호스트(100)에게 전송할 제어 신호를 생성할 수 있다. 이를 위해, 제어부(220)는 분석부(221) 및 컨테이너 관리부(222)를 포함한다. 이와 관련하여, 도 4를 함께 참조하여 설명하기로 한다.The control unit 220 may analyze the log information received from the hosts 100 constituting the same cluster through the communication unit 210 and generate a control signal to be transmitted to the specific host 100 constituting the cluster according to the result. have. To this end, the controller 220 includes an analyzer 221 and a container manager 222. In this regard, it will be described with reference to FIG.

도 4는 도 1의 도커 컨테이너 관리 시스템(1000)에서 발생되는 데이터의 이동을 나타내는 개념도이다.4 is a conceptual diagram illustrating movement of data generated in the docker container management system 1000 of FIG. 1.

분석부(221)는 로그정보를 분석하여 관리서버(200)가 호스트(100) 및 컨테이너(110) 관리를 위한 다양한 분석정보를 생성할 수 있다. 여기서, 분석정보는 컨테이너(110)별 수행시간 및 점유율에 대한 정보와, 비정상 작동률에 대한 정보와, 수행동작 우선순위에 대한 정보를 포함한다.The analyzing unit 221 may analyze the log information and the management server 200 may generate various analysis information for managing the host 100 and the container 110. Here, the analysis information includes information on execution time and occupancy rate of each container 110, information on abnormal operation rate, and information on execution operation priority.

분석부(221)는 수집된 로그정보들 중 정상 로그로 분류된 로그정보를 이용하여 컨테이너(110)별 수행시간 및 점유율에 대한 정보를 생성할 수 있다. 이때, 도커 기반의 컨테이너는 이미지 형태로 생성되므로, 분석부(221)는 컨테이너 이미지별 수행시간 및 점유율에 대한 정보를 생성할 수 있다. 즉, 분석부(221)는 컨테이너(110)가 정상적으로 작동되는 로그정보를 분석하여 클러스터를 구성하는 각각의 호스트(100)가 어떠한 애플리케이션을 얼마동안 실행 중인지를 판단할 수 있으며, 해당 애플리케이션의 실행 시 호스트(100)에서 차지하는 점유율 및 클러스터 전체의 점유율에 대한 정보를 확인할 수 있다. 관리서버(200)는 특정 작업을 수행하기 위한 리소스가 많이 필요한 것으로 판단되는 경우, 동일한 애플리케이션에 대한 컨테이너(110)를 클러스터 내의 복수의 호스트(100)에 생성하도록 제어할 수 있다.The analyzing unit 221 may generate information on the execution time and the occupancy rate of each container 110 by using the log information classified as a normal log among the collected log information. In this case, since the docker-based container is generated in the form of an image, the analysis unit 221 may generate information about execution time and occupancy rate of each container image. That is, the analysis unit 221 may analyze the log information in which the container 110 operates normally to determine which applications are running for which hosts each of the clusters 100 constituting the cluster. Information on the share of the host 100 and the share of the entire cluster can be checked. If it is determined that a large amount of resources for performing a specific task is required, the management server 200 may control to create a container 110 for the same application to the plurality of hosts 100 in the cluster.

또한, 분석부(221)는 수집된 로그정보들 중 에러 로그로 분류된 로그정보를 이용하여 비정상 작동률에 대한 정보를 생성할 수 있다. 구체적으로, 분석부(221)는 수집되는 에러 로그를 각각의 컨테이너별로 분류하여 컨테이너 이미지별, 다시 말해 애플리케이션별 비정상 작동률에 대한 정보를 산출할 수 있다. 비정상 작동률에 대한 정보는 컨테이너(110)가 잘못된 요청이나 자체 결함 등으로 이상동작을 하거나 중지할 확률에 대한 정보일 수 있다. 분석부(221)는 에러 로그가 수신되면 해당 에러 로그가 어떤 컨테이너(110)에 대한 에러인지를 확인하고, 데이터베이스부(230)에 기 저장된 에러 로그들 중 해당 컨테이너(110)에 대한 정상 로그 및 에러 로그를 참조하여 에러 로그가 발생된 컨테이너에 대한 에러 재발 확률인 비정상 작동률에 대한 정보를 산출할 수 있다.In addition, the analyzer 221 may generate information on an abnormal operation rate by using log information classified as an error log among the collected log information. In detail, the analysis unit 221 may classify the collected error logs for each container and calculate information on abnormal operation rates for each container image, that is, for each application. The information on the abnormal operation rate may be information about a probability that the container 110 malfunctions or stops due to a bad request or a defect thereof. When the error log is received, the analysis unit 221 checks which container 110 the error log corresponds to, and checks the normal log for the container 110 among the error logs previously stored in the database unit 230. By referring to the error log, information about an abnormal operation rate, which is an error recurrence probability for the container in which the error log is generated, may be calculated.

분석부(221)는 비정상 작동률에 대한 정보를 이용하여 수행동작 우선순위에 대한 정보를 생성할 수 있다. 수행동작 우선순위는 관리서버(200)가 호스트(100)에 작업을 할당하는 과정에 있어 어떠한 작업을 우선순위로 처리할 것인지를 결정하는 과정에서 참조되는 정보일 수 있다. 예를 들어, 관리서버(200)는 제1 컨테이너를 재생성해야 되는 제1 작업과, 제2 컨테이너를 새롭게 생성해야 되는 제2 작업과, 제3 컨테이너를 재생성해야 되는 제3 작업을 처리해야되는 경우, 분석부(221)에 의해 생성된 수행동작 우선순위에 대한 정보에 따라 먼저 처리할 작업을 결정할 수 있다. The analysis unit 221 may generate information on the execution operation priority using the information on the abnormal operation rate. The performing operation priority may be information referred to in the process of determining which task to process in the process of allocating a task to the host 100 by the management server 200. For example, the management server 200 is required to process a first job to regenerate the first container, a second job to create a new second container, and a third job to regenerate the third container According to the information on the priority of the execution operation generated by the analysis unit 221, it is possible to determine a job to be processed first.

이를 위해, 분석부(221)는 작업의 종류 및 비정상 작동률에 따라 수행동작 우선순위를 결정할 수 있다. 구체적으로, 분석부(221)는 컨테이너를 컨테이너를 새롭게 생성하는 작업에 비해 재생생해야 되는 작업에 높은 가중치를 부여할 수 있다. 상술한 실시예에 따르면, 분석부(221)는 수행동작 우선순위에 대한 정보에서 제1 작업 및 제3 작업을 제2 작업보다 높은 순위에 배치시킬 수 있다. 또한, 분석부(221)는 제1 작업의 비정상 작동률과 제3 작업의 비정상 작동률을 비교하여 비정상 작동률이 높은 작업을 우선순위로 설정할 수 있다. 즉, 제1 작업의 에러 재발 확률이 제3 작업의 에러 재발 확률보다 높은 경우, 제1 작업을 제3 작업보다 먼저 처리하도록 결정할 수 있다. 최종적으로, 분석부(221)는 제1 작업-제3 작업-제2 작업 순으로 작업을 할당하는 수행동작 우선순위에 대한 정보를 생성할 수 있다. 또한, 분석부(221)는 컨테이너를 새롭게 생성하는 작업이 복수 개인 경우, 컨테이너의 중요도에 따라 우선순위를 설정할 수 있다.To this end, the analysis unit 221 may determine the execution operation priority according to the type of work and the abnormal operation rate. In detail, the analyzer 221 may give a weight to a job that needs to be reproduced as compared to a job of newly creating a container. According to the above-described embodiment, the analyzer 221 may place the first task and the third task in a higher priority than the second task in the information on the priority of the execution operations. In addition, the analyzer 221 may compare the abnormal operation rate of the first job and the abnormal operation rate of the third job and set the priority of the job having the high abnormal operation rate as a priority. That is, when the error recurrence probability of the first task is higher than the error recurrence probability of the third task, it may be determined to process the first task before the third task. Finally, the analysis unit 221 may generate information on the execution operation priority for allocating a task in the order of the first task, the third task, and the second task. In addition, when there are a plurality of jobs for newly creating a container, the analyzer 221 may set priorities according to the importance of the containers.

이 과정에서, 분석부(221)는 에러 로그가 수신되면 수행동작 우선순위를 실시간으로 갱신할 수 있다. 상술한 바와 같이, 로그 컨테이너(112)는 구분된 로그정보를 관리서버(200)로 전송할 수 있다. 이때, 로그 컨테이너(112)는 정상 로그로 구분된 로그정보들은 소정 시간동안 수집 후 주기적으로 관리서버(200)에 전송할 수 있다. 반면, 로그 컨테이너(112)는 에러 로그로 구분된 로그정보가 수신되면, 수신되는 즉시 관리서버(200)로 전송할 수 있다. 분석부(221)는 에러 로그가 수신되면 해당 에러 로그에 대한 컨테이너의 비정상 작동률을 산출하여 기 생성된 수행동작 우선순위에 대한 정보와 비교할 수 있다. 예를 들어, 분석부(221)는 제4 컨테이너에 대한 에러 로그를 수신하면, 제4 컨테이너의 비정상 작동률을 산출한 뒤, 앞서 생성된 제1 내지 제3 작업간 처리 순서가 반영된 수행동작 우선순위에 대한 정보와 비교할 수 있다. 이때, 제4 컨테이너에 대한 재생성 작업인 제4 작업의 비정상 작동률이 제1 작업의 비정상 작동률보다 높은 경우, 제4 작업을 최우선순위로 처리하도록 수행동작 우선순위에 대한 정보를 갱신할 수 있다. 이와 같이, 분석부(221)는 에러 로그가 수신 될 때마다 수행동작 우선순위에 대한 정보를 실시간으로 갱신할 수 있다.In this process, when the error log is received, the analysis unit 221 may update the execution operation priority in real time. As described above, the log container 112 may transmit the divided log information to the management server 200. In this case, the log container 112 may periodically transmit log information divided into normal logs to the management server 200 after collecting for a predetermined time. On the other hand, when the log container 112 receives log information divided into error logs, the log container 112 may immediately transmit the received log information to the management server 200. When the error log is received, the analyzer 221 may calculate an abnormal operation rate of the container with respect to the corresponding error log and compare the information with the previously generated execution priority. For example, when the analysis unit 221 receives the error log for the fourth container, after calculating the abnormal operation rate of the fourth container, the analysis operation priority that reflects the processing order between the first to third jobs generated earlier You can compare the information with ranking. In this case, when the abnormal operation rate of the fourth job, which is a regeneration job for the fourth container, is higher than the abnormal operation rate of the first job, information about the execution operation priority may be updated to process the fourth job as the highest priority. . As such, each time the error log is received, the analysis unit 221 may update the information on the priority of the execution operation in real time.

몇몇 다른 실시예에서, 분석부(221)는 비정상 작동률을 미리 정해진 임계값과 비교하는 과정을 추가적으로 수행한 후 수행동작 우선순위에 대한 정보를 생성할 수 있다. 구체적으로, 분석부(221)는 제1 작업의 비정상 작동률 및 제3 작업의 비정상 작동률을 미리 설정된 임계값과 비교할 수 있다. 이때, 제1 작업의 비정상 작동률이 임계값 이상인 것으로 확인되면, 이전 단계에서 결정된 수행동작 우선순위를 유지시킬 수 있다. 반면, 분석부(221)는 제3 작업의 비정상 작동률이 임계값 미만인 것으로 확인되면, 제3 작업의 순위를 제2 작업보다 후순위로 설정할 수 있다. 즉, 분석부(221)는 컨테이너(110)를 재생성해야 되는 작업을 컨테이너(110)를 새롭게 생성해야 되는 작업보다 선순위로 설정하되, 컨테이너(110)를 재생성해야 되는 작업들에 대한 비정상 작동률을 임계값과 비교하여 그 결과에 따라 컨테이너(110)를 재생성해야 되는 특정 작업을 컨테이너(110)를 새롭게 생성해야 되는 작업보다 후순위로 설정할 수 있다.In some other embodiments, the analyzer 221 may additionally perform a process of comparing the abnormal operation rate with a predetermined threshold value and then generate information on the execution operation priority. In detail, the analyzer 221 may compare the abnormal operation rate of the first task and the abnormal operation rate of the third task with a preset threshold. At this time, if it is determined that the abnormal operation rate of the first job is greater than or equal to the threshold value, the execution operation priority determined in the previous step may be maintained. On the other hand, if it is determined that the abnormal operation rate of the third task is less than the threshold value, the analyzer 221 may set the rank of the third task to be lower than the second task. In other words, the analysis unit 221 sets the job to be regenerated to the priority of the job to be regenerated from the container 110, the abnormal operation rate for the job to be regenerated the container 110, In comparison with the threshold value, a specific task that needs to be regenerated according to the result of the container 110 may be set as a lower priority than a task that needs to be newly created.

몇몇 또 다른 실시예에서, 분석부(221)는 비정상 작동률을 다른 임계값과 비교한 결과에 따라 처리 작업 대상에서 제외시킬 수도 있다. 상술한 실시예에 따른 임계값을 제1 임계값으로 가정하면, 분석부(221)는 비정상 작동률을 제1 임계값과 비교하는 과정에서, 제1 임계값보다 작은 제2 임계값과 함께 비교할 수 있다. 분석부(221)는 상술한 실시예의 제3 작업에 대한 비정상 작동률이 제2 임계값 또한 미만인 것으로 확인되면, 수행동작 우선순위에 대한 정보에서 제3 작업을 제외시킬 수 있다. 즉, 일시적인 잘못된 요청으로 인해 컨테이너가 오동작할 경우는 비정상 작동률이 극소하기 때문에, 1회성 에러 로그가 발생한 경우 해당 컨테이너를 재생성 하지 않아도 정상적으로 작동할 가능성이 매우 크며, 이에 따라 컨테이너를 재생성하는 추가적인 리소스를 절약함으로써 전체 시스템의 성능을 향상시키는 효과를 기대할 수 있다. In some other exemplary embodiments, the analyzer 221 may exclude the abnormal operation rate from the processing work object based on a result of comparing the abnormal operation rate with another threshold value. If the threshold value according to the above-described embodiment is assumed as the first threshold value, the analyzer 221 may compare the abnormal operation rate with the second threshold value smaller than the first threshold value in the process of comparing the first threshold value. Can be. If it is confirmed that the abnormal operation rate for the third job of the above-described embodiment is less than the second threshold value, the analyzer 221 may exclude the third job from the information on the priority of the execution operation. In other words, if a container malfunctions due to a temporary bad request, the abnormal operation rate is minimal. Therefore, if a one-time error log occurs, it is very likely that the container will operate normally without recreating the container. The cost savings can be expected to improve the overall system performance.

컨테이너 관리부(222)는 로드밸런싱 기법을 이용하여 클러스터 내의 호스트(100)들의 작업의 부하를 분산시키도록 컨테이너(110)의 스케줄링을 담당할 수 있다. 컨테이너 관리부(222)는 분석부(221)에 의해 생성된 수행시간 및 점유율에 대한 정보 및 수행동작 우선순위에 대한 정보를 이용하여 작업을 할당하기 위한 호스트를 결정하는 스케줄링 정보를 생성할 수 있다. The container manager 222 may be responsible for scheduling the container 110 to distribute the load of the work of the hosts 100 in the cluster by using a load balancing technique. The container manager 222 may generate scheduling information for determining a host for allocating a task using information on execution time and occupancy generated by the analyzer 221 and information on execution priority.

구체적으로, 컨테이너 관리부(222)는 수행동작 우선순위에 대한 정보를 참조하여 현재 처리할 작업의 종류(기존 컨테이너를 재생성할지 또는 새로운 컨테이너를 생성할지)를 결정하고, 수행시간 및 점유율에 대한 정보를 참조하여 클러스터 내의 어떤 호스트(100)로 해당 작업을 할당할지를 결정하는 스케줄링 정보를 생성할 수 있다. 컨테이너 관리부(222)는 생성된 스케줄링 정보에 따라 특정 호스트(100)로 컨테이너의 생성 또는 재생성을 명령하는 제어신호를 전송할 수 있다. In detail, the container manager 222 determines the type of a task to be currently processed (whether to regenerate an existing container or create a new container) by referring to the information on the execution priority, and provides information on the execution time and the occupancy rate. With reference to this, scheduling information for determining which host 100 in the cluster to allocate the task may be generated. The container manager 222 may transmit a control signal for commanding creation or regeneration of the container to the specific host 100 according to the generated scheduling information.

데이터베이스부(230)는 통신부(210)를 통해 호스트(100)로부터 수신된 로그 정보와, 제어부(220)에 의해 생성된 분석정보를 저장할 수 있다.The database unit 230 may store log information received from the host 100 through the communication unit 210 and analysis information generated by the control unit 220.

이와 같이, 본 발명에 따른 도커 컨테이너 관리 시스템(1000)을 이용하면 도커 기반의 컨테이너의 상태나 동작 정보를 담은 로그정보를 중앙 호스트의 개념인 관리서버(200)에서 통합 관리할 수 있으며, 로그정보를 기반으로 하는 새로운 서비스를 용이하게 확장할 수 있다. 또한, 관리서버(200)는 로그정보를 분석하여 로드밸런싱 기반의 스케줄링이나 컨테이너 모듈을 자가 개선할 수 있으며, 상술한 바와 같이 에러 로그로 분류된 로그 정보를 이용하여 컨테이너(110)의 오류 및 고장을 감내하는 알고리즘을 적용하여 지능형 컨테이너 관리 서비스를 제공할 수 있다.As described above, when the docker container management system 1000 according to the present invention is used, the log information containing the state or operation information of the docker-based container may be integrated and managed by the management server 200 which is a concept of a central host. It is easy to extend new services based on. In addition, the management server 200 may improve the load balancing based scheduling or container module by analyzing the log information, and the error and failure of the container 110 using the log information classified as the error log as described above. It can provide intelligent container management service by applying the algorithm to tolerate.

도 5는 본 발명의 일 실시예에 따른 도커 컨테이너 관리 방법의 개략적인 흐름이 도시된 순서도이다.5 is a flowchart illustrating a schematic flow of a docker container management method according to an embodiment of the present invention.

관리서버(200)는 클러스터를 구성하는 호스트(100)들로부터 로그정보를 수집할 수 있다(510). 호스트(100)에는 일반 컨테이너(111)와 로그 컨테이너(112)를 포함하는 복수 개의 컨테이너(110)들이 생성되어 있으며, 호스트(100)는 각각의 일반 컨테이너(111)들로부터 수집된 로그정보를 정상 로그와 비정상 로그로 구분하여 관리서버(200)에 전송할 수 있다. 이때, 호스트(100)는 에러 로그는 관리서버(200)로 즉시 전송하되, 정상 로그는 보관되었다가 일정 시간이 지날 때 마다 정기적으로 전송할 수 있다.The management server 200 may collect log information from the hosts 100 configuring the cluster (510). In the host 100, a plurality of containers 110 including a general container 111 and a log container 112 are generated, and the host 100 normalizes log information collected from each general container 111. The log may be classified into an abnormal log and transmitted to the management server 200. In this case, the host 100 immediately transmits the error log to the management server 200, but the normal log is kept and may be periodically transmitted whenever a certain time passes.

관리서버(200)는 수집된 로그정보를 이용하여 분석 정보를 생성할 수 있다(520). 구체적으로, 관리서버(200)는 정상 로그를 이용하여 컨테이너(110)별 수행시간 및 점유율에 대한 정보를 생성하고, 이를 기초로 스케줄링 정보를 생성할 수 있다. 그리고, 관리서버(200)는 에러 로그를 이용하여 비정상 작동률에 대한 정보를 생성하고, 비정상 작동률에 따라 수행동작 우선순위 정보를 생성할 수 있다.The management server 200 may generate analysis information using the collected log information (520). In detail, the management server 200 may generate information on execution time and occupancy rate of each container 110 by using the normal log, and generate scheduling information based on the information. The management server 200 may generate information on an abnormal operation rate by using an error log, and generate priority operation priority information according to the abnormal operation rate.

관리서버(200)는 스케줄링 정보 및 처리대상 우선순위 정보에 따라 어느 하나의 호스트(100)로 제어 신호를 전송할 수 있다(530). 제어 신호를 수신한 특정 호스트(100)는 제어 신호의 종류에 따라 특정 컨테이너를 생성 또는 재생성할 수 있다.The management server 200 may transmit a control signal to any one host 100 according to scheduling information and processing target priority information (530). The specific host 100 receiving the control signal may generate or regenerate the specific container according to the type of the control signal.

이와 같은, 도커 컨테이너 관리 방법을 제공하는 기술은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.Such a technology for providing a docker container management method may be implemented in the form of program instructions that may be implemented as an application or executed through various computer components, and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.

상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.The program instructions recorded on the computer-readable recording medium are those specially designed and configured for the present invention, and may be known and available to those skilled in the computer software arts.

컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.

프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the process according to the invention, and vice versa.

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

본 발명에 따른 도커 컨테이너 관리 시스템 및 방법을 도커 컨테이너 통합 관리 시스템에 적용함으로써, 클라우드 서버를 고도화하기 위한 클라우드와 AI간 융합 기술의 원천 기술 확보와 더불어 4차 산업 기반 국가 SW 산업 경쟁력을 향상시킬 수 있다.By applying the docker container management system and method according to the present invention to the docker container integrated management system, it is possible to secure the source technology of the convergence technology between cloud and AI to advance the cloud server and improve the national SW industry competitiveness of the 4th industry. have.

100: 호스트
200: 관리서버
100: host
200: management server

Claims (10)

컴퓨터 클러스터를 구성하는 각각의 호스트로부터 상기 호스트에 생성되어 동작하는 도커 기반 컨테이너에 대한 정상 로그 또는 에러 로그를 포함하는 로그정보를 수집하는 단계;
상기 정상 로그로 구분된 로그정보를 이용하여 작업을 할당하기 위한 호스트를 결정하는 스케줄링 정보를 생성하고, 상기 에러 로그로 구분된 로그정보를 이용하여 호스트에 할당할 작업인 수행동작의 순서를 결정하는 수행동작 우선순위 정보를 생성하는 단계; 및
상기 스케줄링 정보 및 상기 우선순위 정보를 기초로 상기 수행동작 우선순위에 따른 작업을 수행할 어느 하나의 호스트를 결정하고, 상기 어느 하나의 호스트에서 상기 작업에 대한 컨테이너가 생성 또는 재생성되도록 상기 어느 하나의 호스트로 제어 신호를 전송하는 단계를 포함하며,
상기 수행동작 우선순위 정보를 생성하는 것은,
수집되는 복수의 에러 로그를 각각의 컨테이너별로 분류하여 컨테이너별 비정상 작동률을 산출하고, 상기 컨테이너별 비정상 작동률을 서로 비교하여 재생성될 컨테이너의 순서인 수행동작 우선순위를 결정하는 것을 특징으로 하는, 도커 컨테이너 관리 방법.
Collecting log information including a normal log or an error log of a docker-based container generated and operated on the host from each host constituting the computer cluster;
Generating scheduling information for determining a host for allocating a task using the log information divided into the normal log, and determining an order of performing operations, which are tasks to be allocated to the host using the log information divided into the error log. Generating performing operation priority information; And
Determine one host to perform a task according to the execution priority based on the scheduling information and the priority information, and the one of the ones to generate or regenerate a container for the task on the one host. Transmitting a control signal to a host,
Generating the performing operation priority information,
Characterizing the plurality of error logs collected by each container to calculate the abnormal operation rate for each container, and comparing the abnormal operation rate for each container with each other to determine the priority of the operation operation which is the order of the container to be regenerated, How to manage Docker containers.
제1항에 있어서,
상기 수행동작 우선순위 정보를 생성하는 것은,
에러 로그에 따른 컨테이너를 재생성하기 위한 수행동작에 대한 가중치를 새로운 컨테이너를 생성하기 위한 수행동작에 대한 가중치보다 높게 설정하여, 상기 에러 로그에 따른 수행동작을 상기 새로운 컨테이너를 생성하기 위한 수행동작보다 우선순위로 설정하는 것을 특징으로 하는, 도커 컨테이너 관리 방법.
The method of claim 1,
Generating the performing operation priority information,
By setting the weight of the performing operation for regenerating the container according to the error log higher than the weighting of the performing operation for creating a new container, the performing operation according to the error log takes precedence over the performing operation for creating the new container. A docker container management method, characterized in that the ranking is set.
삭제delete 제1항에 있어서,
상기 수행동작 우선순위 정보를 생성하는 것은,
제1 에러 로그에 따른 제1 컨테이너에 대한 제1 비정상 작동률과, 제2 에러 로그에 따른 제2 컨테이너에 대한 제2 비정상 작동률을 산출하고, 상기 제1 비정상 작동률이 상기 제2 비정상 작동률보다 높은 경우, 제1 에러 로그에 따른 제1 컨테이너를 재생성해야 되는 제1 수행동작을 제2 에러 로그에 따른 제2 컨테이너를 재생성해야 되는 제2 수행동작보다 우선순위로 설정하는 것을 특징으로 하는, 도커 컨테이너 관리 방법.
The method of claim 1,
Generating the performing operation priority information,
Calculate a first abnormal operation rate for the first container according to the first error log and a second abnormal operation rate for the second container according to the second error log, wherein the first abnormal operation rate is the second abnormal operation rate; If the ratio is higher than the ratio, the first performing operation to regenerate the first container according to the first error log is set to have a higher priority than the second performing operation to regenerate the second container according to the second error log. How to manage Docker containers.
제1항에 있어서,
상기 수행동작 우선순위 정보를 생성하는 것은,
특정 컨테이너에 대한 비정상 작동률이 미리 정해진 제1 임계값 이하인 경우, 상기 특정 컨테이너를 재생성하기 위한 수행동작을 새로운 컨테이너를 생성하기 위한 수행동작보다 후순위로 설정하는 것을 특징으로 하는, 도커 컨테이너 관리 방법.
The method of claim 1,
Generating the performing operation priority information,
And when an abnormal operation rate for a specific container is equal to or less than a predetermined first threshold value, setting an execution operation for regenerating the specific container to a lower priority than an operation operation for creating a new container.
제5항에 있어서,
상기 수행동작 우선순위 정보를 생성하는 것은,
상기 특정 컨테이너에 대한 비정상 작동률이 상기 제1 임계값보다 작은 제2 임계값 이하인 경우, 상기 특정 컨테이너에 대한 에러 로그가 일시적인 에러인 것으로 판단하여 상기 특정 컨테이너를 생성하기 위한 수행동작을 상기 수행동작 우선순위 정보에서 제외시키는 것을 특징으로 하는, 도커 컨테이너 관리 방법.
The method of claim 5,
Generating the performing operation priority information,
If the abnormal operation rate for the specific container is less than or equal to the second threshold value smaller than the first threshold value, the execution operation for generating the specific container is determined by determining that the error log for the specific container is a temporary error. Docker container management method, characterized in that excluded from the priority information.
제1항에 있어서,
상기 호스트는, 상기 정상 로그를 소정 시간 동안 수집하여 주기적으로 전송하되, 상기 에러 로그는 수신 즉시 전송하고,
상기 수행동작 우선순위 정보를 생성하는 것은, 상기 에러 로그가 수신될 때마다 상기 에러 로그에 대한 컨테이너의 비정상 작동률을 산출하여, 기 생성된 수행동작 우선순위 정보와 비교하여 상기 수행동작 우선순위 정보를 실시간으로 갱신하는 것을 특징으로 하는, 도커 컨테이너 관리 방법.
The method of claim 1,
The host collects the normal log for a predetermined time and periodically transmits the error log, and immediately transmits the error log.
The generating of the execution operation priority information may include calculating an abnormal operation rate of the container for the error log each time the error log is received, and comparing the execution operation priority information with previously generated execution operation priority information. Docker container management method, characterized in that for updating in real time.
제7항에 있어서,
상기 스케줄링 정보를 생성하는 것은,
소정 시간 간격으로 수집되는 상기 정상 로그를 기초로 상기 스케줄링 정보를 주기적으로 갱신하는 것을 특징으로 하는, 도커 컨테이너 관리 방법.
The method of claim 7, wherein
Generating the scheduling information,
And periodically updating the scheduling information based on the normal log collected at predetermined time intervals.
제1항에 따른 도커 컨테이너 관리 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체.
A computer-readable recording medium having a computer program recorded thereon for performing the docker container management method of claim 1.
제어신호를 수신하여 도커 기반 컨테이너를 생성하고, 동작되는 컨테이너에 대한 로그정보를 수집하여 정상 로그 또는 에러 로그로 분류하여 전송하는 호스트; 및
컴퓨터 클러스터를 구성하는 각각의 호스트로부터 정상 로그 또는 에러 로그로 분류된 상기 로그정보를 수신하되, 상기 정상 로그로 구분된 로그정보를 이용하여 작업을 할당하기 위한 호스트를 결정하는 스케줄링 정보를 생성하고, 상기 에러 로그로 구분된 로그정보를 이용하여 호스트에 할당할 작업인 수행동작의 순서를 결정하는 수행동작 우선순위 정보를 생성하며, 상기 스케줄링 정보 및 상기 우선순위 정보를 기초로 상기 수행동작 우선순위에 따른 작업을 수행할 어느 하나의 호스트를 결정하고, 상기 어느 하나의 호스트에서 상기 작업에 대한 컨테이너가 생성 또는 재생성되도록 상기 어느 하나의 호스트로 제어 신호를 전송하는 관리서버를 포함하며,
상기 관리서버는,
수집되는 복수의 에러 로그를 각각의 컨테이너별로 분류하여 컨테이너별 비정상 작동률을 산출하고, 상기 컨테이너별 비정상 작동률을 서로 비교하여 재생성될 컨테이너의 순서인 상기 수행동작 우선순위를 결정하는, 도커 컨테이너 관리 시스템.
A host configured to receive a control signal, generate a docker-based container, collect log information on the operated container, and classify it into a normal log or an error log; And
Receiving the log information classified as a normal log or an error log from each host constituting the computer cluster, and generating scheduling information for determining a host for allocating a job using the log information classified as the normal log, Generate execution operation priority information for determining an order of performing operations, which are tasks to be allocated to a host using log information divided into the error logs, and based on the scheduling information and the priority information, And a management server which determines one host to perform a task according to the above, and transmits a control signal to the one host so that a container for the task is created or regenerated from the one host.
The management server,
Docker container management to classify the plurality of error logs collected for each container to calculate the abnormal operation rate for each container, and to determine the priority of the execution operation which is the order of containers to be regenerated by comparing the abnormal operation rate for each container with each other system.
KR1020170181930A 2017-12-05 2017-12-28 System and method for supervising doker container, computer readable medium for performing the method KR102016238B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170165909 2017-12-05
KR20170165909 2017-12-05

Publications (2)

Publication Number Publication Date
KR20190066516A KR20190066516A (en) 2019-06-13
KR102016238B1 true KR102016238B1 (en) 2019-08-29

Family

ID=66847496

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170181930A KR102016238B1 (en) 2017-12-05 2017-12-28 System and method for supervising doker container, computer readable medium for performing the method

Country Status (1)

Country Link
KR (1) KR102016238B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230100902A (en) 2021-12-29 2023-07-06 스트라토 주식회사 Management system for data included in a container and control method thereof
KR20240025233A (en) 2022-08-18 2024-02-27 강릉원주대학교산학협력단 System and method for constructing the bigdata processing environment based on docker

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102160119B1 (en) * 2018-11-07 2020-09-25 숭실대학교산학협력단 Log analysis framework device of docker container
CN112449750A (en) * 2019-06-28 2021-03-05 京东方科技集团股份有限公司 Log data collection method, log data collection device, storage medium, and log data collection system
CN110311817B (en) * 2019-06-28 2021-09-28 四川长虹电器股份有限公司 Container log processing system for Kubernetes cluster
KR20210059229A (en) * 2019-11-15 2021-05-25 한국전자기술연구원 Method for Provide Real-Time Service in Cloud based Serverless Platform
CN111274003A (en) * 2020-03-04 2020-06-12 山东超越数控电子股份有限公司 Cluster building method for Docker
KR102282755B1 (en) * 2020-11-27 2021-07-29 주식회사 비아이티 Method, device and system for providing solution to analyze genome based on container

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101810762B1 (en) 2015-12-07 2017-12-19 한양대학교 에리카산학협력단 Docker container security log analysis method and system based on hadoop distributed file system in cloud environment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100770851B1 (en) * 2001-02-28 2007-10-26 삼성전자주식회사 Method and apparatus for scheduling packet data in mobile commuication system
KR100487230B1 (en) * 2002-10-28 2005-05-03 삼성전자주식회사 Apparatus for controlling store of log information in set-top box and method thereof
KR100936601B1 (en) * 2008-05-15 2010-01-13 재단법인서울대학교산학협력재단 Multi-processor system
US9256467B1 (en) 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
KR102261910B1 (en) * 2014-12-08 2021-06-08 에스케이플래닛 주식회사 Service error detection apparatus for cloud streaming service, end to end service monitoring system and method thereof
KR20160136489A (en) * 2015-05-19 2016-11-30 (주)나누미넷 Method for Resource Management base of Virtualization for cloud service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101810762B1 (en) 2015-12-07 2017-12-19 한양대학교 에리카산학협력단 Docker container security log analysis method and system based on hadoop distributed file system in cloud environment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230100902A (en) 2021-12-29 2023-07-06 스트라토 주식회사 Management system for data included in a container and control method thereof
KR102618274B1 (en) 2021-12-29 2023-12-28 스트라토 주식회사 Management system for data included in a container and control method thereof
KR20240025233A (en) 2022-08-18 2024-02-27 강릉원주대학교산학협력단 System and method for constructing the bigdata processing environment based on docker

Also Published As

Publication number Publication date
KR20190066516A (en) 2019-06-13

Similar Documents

Publication Publication Date Title
KR102016238B1 (en) System and method for supervising doker container, computer readable medium for performing the method
US9027017B2 (en) Methods and apparatus for movement of virtual resources within a data center environment
US11455193B2 (en) Method for deploying virtual machines in cloud computing systems based on predicted lifetime
US10963285B2 (en) Resource management for virtual machines in cloud computing systems
US8756310B2 (en) Comprehensive bottleneck detection in a multi-tier enterprise storage system
US8862833B2 (en) Selection of storage containers for thin-partitioned data storage based on criteria
US10979505B1 (en) Distributed storage system and data migration method
US11632416B2 (en) Method and system for distributing application for edge computing devices
US8990372B2 (en) Operation managing device and operation management method
US11924117B2 (en) Automated local scaling of compute instances
CN111399970B (en) Reserved resource management method, device and storage medium
CN113886089B (en) Task processing method, device, system, equipment and medium
KR102460416B1 (en) System and method for managing container-based distributed application
CN111343219A (en) Computing service cloud platform
US11726684B1 (en) Cluster rebalance using user defined rules
US20230155958A1 (en) Method for optimal resource selection based on available gpu resource analysis in large-scale container platform
US11836365B2 (en) Automatically adjusting storage system configurations in a storage-as-a-service environment using machine learning techniques
US20240111755A1 (en) Two-phase commit using reserved log sequence values
WO2018173300A1 (en) I/o control method and i/o control system
US11632299B1 (en) Cell management for services implemented at cloud computing environments
US20240028387A1 (en) Device health driven migration of applications and its dependencies
US20240028388A1 (en) Application usage and auto maintenance driven migration of applications and their dependencies
US20200104187A1 (en) Dynamic logical partition provisioning

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right