KR20230024744A - Method, apparatus, system and computer program for container distribution in multi-cluster environment - Google Patents

Method, apparatus, system and computer program for container distribution in multi-cluster environment Download PDF

Info

Publication number
KR20230024744A
KR20230024744A KR1020210106857A KR20210106857A KR20230024744A KR 20230024744 A KR20230024744 A KR 20230024744A KR 1020210106857 A KR1020210106857 A KR 1020210106857A KR 20210106857 A KR20210106857 A KR 20210106857A KR 20230024744 A KR20230024744 A KR 20230024744A
Authority
KR
South Korea
Prior art keywords
cluster
container
distribution
candidate
machine
Prior art date
Application number
KR1020210106857A
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 주식회사 케이티
Priority to KR1020210106857A priority Critical patent/KR20230024744A/en
Publication of KR20230024744A publication Critical patent/KR20230024744A/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

The present invention relates to a method, device, system, and computer program for distributing a container in a multi-cluster environment and, more specifically, to a method, device, system, and computer program for distributing a container in a multi-cluster environment capable of effectively preventing performance degradation and abnormal termination of the container by considering a computing resource of each cluster and distributing the container in the multi-cluster environment. The method for distributing a container in a multi-cluster environment having a plurality of clusters according to the present invention comprises: a candidate cluster filtering step of allowing a container distributing server to filter a candidate cluster which is distributed among a plurality of clusters by considering a computing resource condition required in a first container to be distributed; a distribution cluster selecting step of selecting a first cluster to which the first container is distributed among the candidate cluster by considering a computing resource requiring amount of the first container and a computing resource amount of each machine included in the candidate cluster; and a machine selecting step of selecting a machine in which the first container is operated from machines included in the first cluster.

Description

다중 클러스터 환경에서의 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램{Method, apparatus, system and computer program for container distribution in multi-cluster environment}Method, apparatus, system and computer program for container distribution in multi-cluster environment}

본 발명은 다중 클러스터 환경에서의 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 다중 클러스터 환경에서 각 클러스터의 전산 자원을 고려하여 컨테이너를 배포함으로써, 컨테이너의 성능 저하 및 비정상 종료를 효과적으로 방지할 수 있는 다중 클러스터 환경에서의 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램에 관한 것이다.The present invention relates to a container distribution method, apparatus, system, and computer program in a multi-cluster environment, and more particularly, to a container distribution method in consideration of computing resources of each cluster in a multi-cluster environment, thereby reducing container performance and abnormal termination. It relates to a container deployment method, device, system, and computer program in a multi-cluster environment that can effectively prevent

최근 클라우드 환경 등에서 어플리케이션을 모듈화하여 구동하는 컨테이너(container) 기법이 널리 활용되고 있다. 컨테이너 기법은 커널과 분리되어 어플리케이션 레벨에서 사용자 공간 인스턴스를 패키징하여 이루어지는 가상화의 일종으로, 가상 머신보다 가벼울 뿐만 아니라 이동성(portability), 다양한 운용 환경 등의 장점을 가진다.Recently, a container technique for modularizing and running applications in a cloud environment has been widely used. The container technique is a type of virtualization achieved by packaging a user space instance at the application level, separated from the kernel, and has advantages such as lighter weight than a virtual machine, portability, and various operating environments.

그런데, 다양한 서비스 및 시스템의 증가로 구동되는 어플리케이션의 숫자는 지속적으로 늘어나고 있고, 이에 따라 컨테이너의 통합, 스케줄링 및 성능 관리는 여전히 어려운 과제로 남아 있다. 특히, IoT 등 다수 장치에 대한 운용 및 데이터 처리량 폭증 등으로 인하여 컨테이너를 안정적으로 관리하기 위한 기술적 요구가 증대하고 있는 상황이다.However, the number of applications driven by the increase of various services and systems is continuously increasing, and accordingly, container integration, scheduling, and performance management remain difficult tasks. In particular, due to the operation of multiple devices such as IoT and the explosive increase in data throughput, there is an increasing technical demand for managing containers stably.

이와 관련하여, 도 1과 같이, 컨테이너화된 어플리케이션을 효율적으로 배포하고 관리하는 기술을 컨테이너 오케스트레이션(Container Orchestration)이라고 하며, 이를 위한 오픈 플랫폼 등(예를 들어, Kubernetes 등)이 시도되고 있으나 아직 다양한 컨테이너 활용 서비스를 효율적이고 안정적으로 처리할 수 있는 수준에 이르렀다고 하기에는 부족한 실정이다.In this regard, as shown in FIG. 1, a technology for efficiently distributing and managing containerized applications is called container orchestration, and open platforms for this purpose (eg, Kubernetes, etc.) have been attempted, but various containers are still being tried. It is insufficient to say that it has reached a level that can efficiently and stably handle utilization services.

특히, 위와 같은 종래 플랫폼의 경우 다수의 클러스터가 구비되는 다중 클러스터 환경에서 개별 컨테이너의 QoS(Quality of Service)를 고려하지 못하고 단순히 워크 로드 밸런싱(work load balancing)에 초점을 두어 컨테이너를 배포하면서, 일부 컨테이너에서 CPU(Central Processing Unit), 메모리, 저장 공간(storage), 네트워크(network) 등 전산 자원(computing resource)의 제약으로 인해 성능이 저하되거나, 경우에 따라서는 특정한 컨테이너가 비정상 종료되는 문제까지 나타날 수 있었다.In particular, in the case of the above conventional platform, in a multi-cluster environment with multiple clusters, QoS (Quality of Service) of individual containers is not considered, and containers are deployed by simply focusing on work load balancing, while some Due to the limitations of computing resources such as CPU (Central Processing Unit), memory, storage, and network in containers, performance may deteriorate or, in some cases, a specific container may abnormally terminate. could

이에 따라, 다양한 컨테이너 활용 서비스를 안정적이고 효율적으로 처리할 수 있으며, 특히 다중 클러스터 환경에서도 컨테이너가 전산 자원의 제약으로 인하여 성능이 저하되거나 비정상 종료되는 것을 방지할 수 있는 방안이 요구되고 있으나, 아직 이에 대한 적절한 해법이 제시되지 못하고 있다.Accordingly, it is possible to stably and efficiently process various container-using services, and in particular, there is a need for a method to prevent performance degradation or abnormal termination of containers due to limitations of computing resources even in a multi-cluster environment. No suitable solution has been presented.

대한민국 공개특허공보 제10-2018-0138123호(2018년 12월 28일 공개)Republic of Korea Patent Publication No. 10-2018-0138123 (published on December 28, 2018)

본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 창안된 것으로, 다양한 컨테이너 활용 서비스를 안정적이고 효율적으로 처리할 수 있는 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a container distribution method, apparatus, system, and computer program that can stably and efficiently process various container utilization services.

또한, 본 발명에서는 다중 클러스터 환경에서 각 클러스터의 전산 자원 현황을 모니터링하여 컨테이너를 배포할 최적의 클러스터를 선정해 배포할 수 있는 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.In addition, an object of the present invention is to provide a container distribution method, device, system, and computer program capable of selecting and distributing an optimal cluster to deploy a container by monitoring the state of computing resources of each cluster in a multi-cluster environment.

특히, 본 발명에서는 다중 클러스터 환경에서도 컨테이너가 전산 자원의 제약으로 인하여 성능이 저하되거나 비정상 종료되는 문제를 방지할 수 있는 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.In particular, it is an object of the present invention to provide a method, apparatus, system, and computer program for distributing containers that can prevent performance degradation or abnormal termination of containers due to limitations in computational resources even in a multi-cluster environment.

나아가, 본 발명에서는 다중 클러스터 환경에서 각 컨테이너의 QoS(Quality of Service)가 적절히 보장되지 못하는 문제를 개선할 수 있는 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.Furthermore, an object of the present invention is to provide a container distribution method, apparatus, system, and computer program that can improve the problem that QoS (Quality of Service) of each container is not properly guaranteed in a multi-cluster environment.

그 외 본 발명의 세부적인 목적은 아래에 기재되는 구체적인 내용을 통하여 이 기술 분야의 전문가나 연구자에게 자명하게 파악되고 이해될 수 있을 것이다.Other detailed objects of the present invention will be clearly identified and understood by experts or researchers in the art through the specific details described below.

상기 과제를 해결하기 위한 본 발명의 한 측면에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법은, 복수의 클러스터가 구비되는 다중 클러스터 환경에서 컨테이너를 배포하는 방법에 있어서, 컨테이너 배포 서버가, 배포 예정인 제1 컨테이너에서 요구되는 전산 자원 조건을 고려하여 복수의 클러스터 중 배포 가능한 후보 클러스터를 필터링하는 후보 클러스터 필터링 단계; 상기 제1 컨테이너의 전산 자원 요구량과 상기 후보 클러스터에 포함되는 각 머신의 전산 자원량을 고려하여 상기 후보 클러스터 중 상기 제1 컨테이너가 배포될 제1 클러스터를 선정하는 배포 클러스터 선정 단계; 및 상기 제1 클러스터에 포함되는 머신 중 상기 제1 컨테이너가 구동될 머신을 선택하는 머신 선택 단계;를 포함하는 것을 특징으로 한다.A method for deploying containers in a multi-cluster environment according to an aspect of the present invention for solving the above problems is a method for distributing containers in a multi-cluster environment in which a plurality of clusters are provided, wherein a container deployment server is configured to deploy a first container to be deployed. a candidate cluster filtering step of filtering distributable candidate clusters among a plurality of clusters in consideration of computing resource conditions required by the container; a distribution cluster selecting step of selecting a first cluster to which the first container is to be distributed from among the candidate clusters in consideration of a computational resource requirement of the first container and a computational resource quantity of each machine included in the candidate cluster; and a machine selection step of selecting a machine on which the first container will run from among the machines included in the first cluster.

이때, 상기 후보 클러스터 필터링 단계에서는, 상기 복수의 클러스터에 포함되는 각 머신 중 상기 제1 컨테이너에서 요구되는 CPU(Central Processing Unit), 메모리(memory), 저장 공간(storage), 네트워크(network)를 포함하는 전산 자원 중 하나 이상에 대한 전산 자원 조건을 모두 충족할 수 있는 머신을 포함하는 클러스터를 후보 클러스터로 선별할 수 있다.At this time, in the candidate cluster filtering step, a CPU (Central Processing Unit), memory, storage space, and network required by the first container among the machines included in the plurality of clusters are included. A cluster including a machine that can satisfy all of the computing resource conditions for one or more of the computing resources to be selected may be selected as a candidate cluster.

또한, 상기 후보 클러스터 필터링 단계는, 상기 복수의 클러스터에 포함되는 각 머신 중 상기 제1 컨테이너에서 요구되는 하나 이상의 포트를 모두 할당 가능한 머신을 포함하는 클러스터를 후보 클러스터로 선별하는 단계;를 더 포함할 수 있다.The filtering of candidate clusters may further include selecting, as a candidate cluster, a cluster including a machine capable of allocating one or more ports required by the first container among machines included in the plurality of clusters. can

또한, 상기 후보 클러스터 필터링 단계는, 상기 복수의 클러스터에 포함되는 각 머신 중 상기 제1 컨테이너에서 요구되는 하나 이상의 저장 장치를 할당 가능한 머신을 포함하는 클러스터를 후보 클러스터로 선별하는 단계;를 더 포함할 수 있다.The filtering of candidate clusters may further include selecting, as a candidate cluster, a cluster including a machine capable of allocating one or more storage devices required by the first container among the machines included in the plurality of clusters. can

나아가, 상기 배포 클러스터 선정 단계에서는, 상기 후보 클러스터에 대한 가용 자원 대비 요구 자원 우선도, 핵심 자원 우선도, 총자원 대비 사용/요구 자원 우선도, 네트워크 자원 우선도 중 하나 이상의 우선도를 고려하여 상기 배포 클러스터를 선정할 수 있다.Furthermore, in the step of selecting the distribution cluster, the priority of one or more of the priority of required resources versus available resources for the candidate cluster, priority of core resources, priority of used/requested resources versus total resources, and priority of network resources is considered. You can select a deployment cluster.

이때, 상기 배포 클러스터 선정 단계에서는, 상기 후보 클러스터에 포함되는 각 머신에 대하여, 상기 머신에서의 각 전산 자원 가용량에 대한 상기 제1 컨테이너에서의 전산 자원 요구량의 비율의 합계치로부터 상기 가용 자원 대비 요구 자원 우선도를 산출하고, 상기 가용 자원 대비 요구 자원 우선도의 크기를 고려하여 상기 배포 클러스터를 선정할 수 있다.At this time, in the step of selecting the distribution cluster, for each machine included in the candidate cluster, the available resource versus demand is determined from the sum of the ratios of the computational resource requirements in the first container to the available computational resources in each machine. A resource priority may be calculated, and the distribution cluster may be selected in consideration of the size of the priority of the required resource compared to the available resource.

또한, 상기 배포 클러스터 선정 단계에서는, 상기 후보 클러스터에 포함되는 각 머신에 대하여, 상기 머신에서의 총 전산 자원량에 대한 전산 자원 사용량의 제1 비율이 가장 큰 전산 자원을 핵심 자원으로 선별하고, 상기 핵심 자원의 제1 비율(=핵심 자원 우선도)을 고려하여 상기 배포 클러스터를 선정할 수 있다.In addition, in the distribution cluster selection step, for each machine included in the candidate cluster, a computational resource having the largest first ratio of computational resource usage to the total computational resource quantity in the machine is selected as a core resource, and the core resource The distribution cluster may be selected in consideration of a first ratio of resources (=core resource priority).

또한, 상기 배포 클러스터 선정 단계에서는, 상기 후보 클러스터에 포함되는 각 머신에 대하여, 상기 머신에서의 총 전산 자원량에 대한, 이미 배포된 컨테이너의 전산 자원 사용량과 상기 제1 컨테이너의 전산 자원 요구량의 합계치의 비율로부터 총자원 대비 사용/요구 자원 우선도를 산출하고, 상기 총자원 대비 사용/요구 자원 우선도를 고려하여 상기 배포 클러스터를 선정할 수 있다.In addition, in the step of selecting the deployment cluster, for each machine included in the candidate cluster, the sum of the computational resource usage of already deployed containers and the computational resource requirement of the first container with respect to the total computational resource quantity in the machine The distribution cluster may be selected by calculating the priority of resources used/requested against the total resources from the ratio, and considering the priority of the resources used/requested against the total resources.

또한, 상기 배포 클러스터 선정 단계에서는, 상기 후보 클러스터에 포함되는 각 머신에 대하여, 상기 머신에서의 실시간 네트워크 사용량을 고려하여 네트워크 자원 우선도를 산출하고, 상기 네트워크 자원 우선도를 고려하여 상기 제1 컨테이너를 배포할 배포 클러스터를 선정할 수 있다.In addition, in the step of selecting the distribution cluster, for each machine included in the candidate cluster, a network resource priority is calculated in consideration of real-time network usage in the machine, and the first container is calculated in consideration of the network resource priority. You can select a distribution cluster to deploy.

또한, 상기 배포 클러스터 선정 단계에서는, 상기 후보 클러스터에 포함되는 각 머신에 대한 상기 우선도의 합계치를 산출하고, 상기 후보 클러스터 각각에 대한 상기 우선도의 합계치 크기를 고려하여 배포 클러스터를 선정할 수 있다.In addition, in the distribution cluster selection step, the distribution cluster may be selected by calculating the sum of the priorities of each machine included in the candidate cluster and considering the size of the sum of the priorities of each of the candidate clusters. .

또한, 상기 배포 클러스터 선정 단계에서는, 상기 후보 클러스터에 포함되는 각 머신의 우선도 중 가장 큰 우선도를 고려하여 상기 배포 클러스터를 선정할 수 있다.In addition, in the distribution cluster selection step, the distribution cluster may be selected by considering the highest priority among the priorities of each machine included in the candidate cluster.

나아가, 상기 제1 클러스터에는 단일 클러스터 모니터링부가 구비되어, 상기 제1 클러스터에 포함되는 각 머신에 대한 전산 자원 데이터를 수집하여 상기 제1 클러스터에 대한 전산 자원 데이터를 생성하고, 상기 컨테이너 배포 서버에는 상기 제1 클러스터를 포함하는 복수의 클러스터에 대한 전산 자원 데이터를 수집하는 다중 클러스터 모니터링부가 구비되어, 상기 복수의 클러스터에 구비되는 각 단일 클러스터 모니터링부로부터 각 클러스터에 대한 전산 자원 데이터를 수집하여 상기 복수의 클러스터에 대한 전산 자원 데이터를 생성할 수 있다.Furthermore, the first cluster is provided with a single cluster monitoring unit to collect computing resource data for each machine included in the first cluster to generate computing resource data for the first cluster, and to the container distribution server. A multi-cluster monitoring unit is provided that collects computational resource data for a plurality of clusters including a first cluster, and collects computational resource data for each cluster from each single cluster monitoring unit provided in the plurality of clusters to obtain the plurality of clusters. Computational resource data can be created for the cluster.

또한, 상기 컨테이너 배포 서버가, 제1 컨테이너를 배포하였으나 정상 구동되지 못한 횟수 또는 상기 제1 컨테이너가 구동 후 비정상 종료된 횟수 중 하나 이상을 파악하고, 이를 고려하여 서비스 품질 지수(QoS)를 산출하여 관리하는 서비스 품질 지수 관리 단계;를 더 포함할 수 있다.In addition, the container distribution server determines one or more of the number of times the first container is distributed but not normally run or the number of times the first container is abnormally terminated after running, and calculates a quality of service (QoS) in consideration of this A service quality index management step to manage; may be further included.

또한, 본 발명의 다른 측면에 따른 컴퓨터 프로그램은, 컴퓨터에서 상기 기재된 다중 클러스터 환경에서의 컨테이너 배포 방법의 각 단계를 실행시키기 위한 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램인 것을 특징으로 한다.In addition, a computer program according to another aspect of the present invention is characterized in that it is a computer program stored in a computer readable medium for executing each step of the above-described container distribution method in a multi-cluster environment on a computer.

또한, 본 발명의 또 다른 측면에 따른 컨테이너 배포 시스템은, 복수의 클러스터가 구비되는 다중 클러스터 환경에서 컨테이너를 배포하는 컨테이너 배포 시스템에 있어서, 배포 예정인 제1 컨테이너에서 요구되는 전산 자원 조건을 고려하여 복수의 클러스터 중 배포 가능한 후보 클러스터를 필터링하고, 상기 제1 컨테이너에서 요구되는 전산 자원량과 상기 후보 클러스터에 포함되는 각 머신의 전산 자원량을 고려하여 상기 후보 클러스터 중 상기 제1 컨테이너가 배포될 제1 클러스터를 선정하여 배포하는 컨테이너 배포 서버; 및 복수의 클러스터가 구비되어 다중 클러스터를 구성하는 하나 이상의 클러스터 서버;를 포함하는 것을 특징으로 한다.In addition, a container distribution system according to another aspect of the present invention is a container distribution system for distributing containers in a multi-cluster environment having a plurality of clusters, in consideration of computing resource conditions required for a first container to be deployed. filtering candidate clusters that can be deployed among clusters of , and considering the amount of computational resources required by the first container and the amount of computational resources of each machine included in the candidate cluster, a first cluster to which the first container is to be distributed is selected from among the candidate clusters. Container distribution server that selects and distributes; and one or more cluster servers having a plurality of clusters and constituting multiple clusters.

이에 따라, 본 발명의 일 실시예에 따른 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램에서는, 다양한 컨테이너 활용 서비스를 안정적이고 효율적으로 처리할 수 있게 된다.Accordingly, in the container distribution method, apparatus, system, and computer program according to an embodiment of the present invention, various container utilization services can be stably and efficiently processed.

또한, 본 발명의 일 실시예에 따른 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램에서는, 다중 클러스터 환경에서 각 클러스터의 전산 자원 현황을 모니터링하여 컨테이너를 배포할 최적의 클러스터를 선정해 배포할 수 있게 된다.In addition, in the container distribution method, apparatus, system, and computer program according to an embodiment of the present invention, it is possible to select and distribute an optimal cluster to distribute a container by monitoring the state of computing resources of each cluster in a multi-cluster environment. .

특히, 본 발명의 일 실시예에 따른 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램에서는, 다중 클러스터 환경에서도 컨테이너가 전산 자원의 제약으로 인하여 성능이 저하되거나 비정상 종료되는 문제를 방지할 수 있게 된다.In particular, in the container distribution method, apparatus, system, and computer program according to an embodiment of the present invention, it is possible to prevent a problem in which performance of a container is degraded or abnormally terminated due to limitations of computing resources even in a multi-cluster environment.

또한, 본 발명의 일 실시예에 따른 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램에서는, 다중 클러스터 환경에서 각 컨테이너의 QoS(Quality of Service)가 보장되도록 하고, 나아가 이와 관련된 시스템 관리자의 작업량도 효과적으로 줄여 줄 수 있다.In addition, in the container distribution method, apparatus, system, and computer program according to an embodiment of the present invention, QoS (Quality of Service) of each container is guaranteed in a multi-cluster environment, and furthermore, the workload of a system manager related thereto is effectively reduced. can give

또한, 본 발명의 일 실시예에 따른 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램은 클라우드 시스템, SaaS, DaaS, 데이터 센터 등의 다양한 시스템에도 적용 가능하며, 이를 통해 시스템의 안정성 및 효율성을 개선할 수 있게 된다.In addition, the container deployment method, device, system, and computer program according to an embodiment of the present invention can be applied to various systems such as cloud systems, SaaS, DaaS, and data centers, and through this, the stability and efficiency of the system can be improved. there will be

본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 종래 기술에 따른 쿠버네티스에서 클러스터의 노드에 컨테이너 배포된 구조를 예시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 컨테이너 배포 시스템의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 컨테이너 배포 방법의 순서도이다.
도 4는 본 발명의 일 실시예에 따른 컨테이너 배포 시스템의 구체적인 구성 및 동작을 설명하는 도면이다.
도 5는 본 발명의 다른 실시예에 따른 컨테이너 배포 방법의 순서도이다.
도 6은 본 발명의 다른 실시예에 따른 컨테이너 배포 방법의 구체적인 동작을 예시하는 순서도이다.
도 7은 본 발명의 다른 실시예에 따른 컨테이너 배포 시스템의 구성 및 동작을 설명하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 컨테이너 배포 서버의 구성도이다.
The accompanying drawings, which are included as part of the detailed description to aid understanding of the present invention, provide examples of the present invention and explain the technical idea of the present invention together with the detailed description.
1 is a diagram illustrating a structure in which containers are deployed to nodes of a cluster in Kubernetes according to the prior art.
2 is a configuration diagram of a container distribution system according to an embodiment of the present invention.
3 is a flowchart of a container deployment method according to an embodiment of the present invention.
4 is a diagram illustrating a specific configuration and operation of a container distribution system according to an embodiment of the present invention.
5 is a flowchart of a container deployment method according to another embodiment of the present invention.
6 is a flowchart illustrating specific operations of a container deployment method according to another embodiment of the present invention.
7 is a diagram illustrating the configuration and operation of a container distribution system according to another embodiment of the present invention.
8 is a configuration diagram of a container distribution server according to an embodiment of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 이하에서는 특정 실시예들을 첨부된 도면을 기초로 상세히 설명하고자 한다.The present invention can apply various transformations and can have various embodiments. Hereinafter, specific embodiments will be described in detail based on the accompanying drawings.

이하의 실시예는 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.The following examples are provided to facilitate a comprehensive understanding of the methods, apparatus and/or systems described herein. However, this is only an example and the present invention is not limited thereto.

본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시 예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다. In describing the embodiments of the present invention, if it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to the intention or custom of a user or operator. Therefore, the definition should be made based on the contents throughout this specification. Terms used in the detailed description are only for describing the embodiments of the present invention, and should not be limiting. Unless expressly used otherwise, singular forms of expression include plural forms. In this description, expressions such as "comprising" or "comprising" are intended to indicate any characteristic, number, step, operation, element, portion or combination thereof, one or more other than those described. It should not be construed to exclude the existence or possibility of any other feature, number, step, operation, element, part or combination thereof.

또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되는 것은 아니며, 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.In addition, terms such as first and second may be used to describe various components, but the components are not limited by the terms, and the terms are used for the purpose of distinguishing one component from another. used only as

이하, 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램에 대한 예시적인 실시 형태들을 첨부된 도면을 참조하여 차례로 설명한다.Hereinafter, exemplary embodiments of a container distribution method, apparatus, system, and computer program in a multi-cluster environment according to an embodiment of the present invention will be sequentially described with reference to the accompanying drawings.

먼저, 도 2에서는 본 발명의 일 실시예에 따른 컨테이너 배포 시스템(100)의 구성도가 예시되어 있다. 도 2에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 컨테이너 배포 시스템(100)은 컨테이너 배포 서버(110)와 하나 이상의 클러스터 서버(120)를 포함하여 구성될 수 있으며, 상기 컨테이너 배포 서버(110)와 상기 클러스터 서버(120)는 통신 네트워크(140)를 통해 서로 데이터를 송수신하면서 연동하여 동작할 수 있다.First, in FIG. 2, a configuration diagram of the container distribution system 100 according to an embodiment of the present invention is illustrated. As can be seen in FIG. 2, the container distribution system 100 according to an embodiment of the present invention may include a container distribution server 110 and one or more cluster servers 120, and the container distribution server 110 and the cluster server 120 may operate in conjunction with each other while transmitting and receiving data through the communication network 140 .

이때, 본 발명의 일 실시예에 따른 컨테이너 배포 시스템(100)은, 복수의 클러스터가 구비되는 다중 클러스터 환경에서 컨테이너를 배포하는 컨테이너 배포 시스템(100)으로서, 배포 예정인 제1 컨테이너에서 요구되는 전산 자원 조건을 고려하여 복수의 클러스터 중 배포 가능한 후보 클러스터를 필터링하고, 상기 제1 컨테이너에서 요구되는 전산 자원량과 상기 후보 클러스터에 포함되는 각 머신의 전산 자원량을 고려하여 상기 후보 클러스터 중 상기 제1 컨테이너가 배포될 제1 클러스터를 선정하여 배포하는 컨테이너 배포 서버(110) 및 복수의 클러스터가 구비되어 다중 클러스터를 구성하는 하나 이상의 클러스터 서버(120)를 포함하여 구성될 수 있다.At this time, the container distribution system 100 according to an embodiment of the present invention is a container distribution system 100 that distributes containers in a multi-cluster environment in which a plurality of clusters are provided, and computational resources required for the first container to be distributed. Distributable candidate clusters among a plurality of clusters are filtered in consideration of conditions, and the first container is distributed among the candidate clusters in consideration of the amount of computing resources required by the first container and the amount of computing resources of each machine included in the candidate cluster. It may include a container distribution server 110 for selecting and distributing a first cluster to be selected and one or more cluster servers 120 having a plurality of clusters and constituting multiple clusters.

이때, 상기 전산 자원 조건은 배포 예정인 제1 컨테이너의 구동을 위하여 필요한 하나 이상의 전산 자원(computing resource)의 종류 및 그에 대한 요구 규격을 의미한다.In this case, the computing resource condition means a type of one or more computing resources required for driving the first container to be distributed and a standard required for the computing resource.

본 발명에서 CPU(Central Processing Unit), 메모리(memory), 저장 공간(storage) 또는 네트워크(network) 등은 전산 자원의 일례가 될 수 있다. In the present invention, a CPU (Central Processing Unit), a memory, a storage space, a network, and the like may be examples of computing resources.

여기서, 상기 컨테이너 배포 서버(110)는 사용자의 PC나 노트북, 스마트폰, 태블릿, PDA, 휴대전화 등의 단말(130)로부터 요청을 받아 애플리케이션을 컨테이너로 패키징하여 상기 클러스터(120)로 배포할 수 있다. Here, the container distribution server 110 receives a request from the terminal 130 such as a user's PC, laptop, smartphone, tablet, PDA, mobile phone, etc., packages an application into a container, and distributes the application to the cluster 120. there is.

보다 구체적인 예를 들어, 사용자의 단말(130) 등에서 배포하고자 하는 어플리케이션에서 패키징되는 제1 컨테이너에서 CPU, 메모리 및 저장 장치 자원이 필요할 수 있고, 이때 각 전산 자원에 대한 요구 규격으로서 CPU 자원은 0.5, 메모리 자원은 1GB, 저장 장치 자원은 2GB가 필요할 때, 아래 [표 1]의 예시와 같은 형식으로 전산 자원의 종류 및 그에 대한 요구 규격을 지정하여 상기 제1 컨테이너의 배포를 요구할 수 있으며, 나아가 상기 각 전산 자원에 대한 한계치(limits)를 함께 지정하는 것도 가능하다.For a more specific example, the first container packaged in the application to be distributed on the user's terminal 130 may require CPU, memory, and storage device resources. When 1 GB of memory resources and 2 GB of storage resources are required, distribution of the first container may be requested by specifying the type of computing resource and its required standard in the form shown in the example of [Table 1] below, and furthermore, the distribution of the first container may be requested. It is also possible to specify limits for each computing resource together.

resource:
requests:
cpu: "0.5"
memory: "1Gi"
storate: "2Gi"
limits:
cpu: "1"
memory: "2Gi"
storate: "4Gi"
resource:
requests:
cpu: "0.5"
memory: "1Gi"
store: "2Gi"
limits:
cpu: "1"
memory: "2Gi"
store: "4Gi"

그러나, 본 발명이 반드시 이에 한정되는 것은 아니며, 상기 컨테이너 배포 서버(110)는 다른 서버(미도시)로부터 요청을 받거나, IoT(Internet of Things) 장치 등 다양한 종류의 장치로부터 요청을 받거나, 기타 여러 종류의 디바이스로부터 요청을 받아 컨테이너를 배포할 수도 있다.However, the present invention is not necessarily limited to this, and the container distribution server 110 receives requests from other servers (not shown), receives requests from various types of devices such as IoT (Internet of Things) devices, and other various Containers can also be deployed by receiving requests from different types of devices.

이때, 상기 컨테이너 배포 서버(110)는 하나 이상의 서버, PC 등의 전산 장치로 구성될 수 있으며, 또는 클라우드 시스템 등에서 구동되는 가상 서버 등 다양한 형태로 구현하는 것이 가능하다.At this time, the container distribution server 110 may be composed of one or more servers, computer devices such as PCs, or may be implemented in various forms such as a virtual server running in a cloud system or the like.

또한, 상기 컨테이너 배포 서버(110)는 통신 네트워크(140)를 통해 상기 클러스터 서버(120)와 데이터를 송수신하면서 동작할 수 있다.In addition, the container distribution server 110 may operate while transmitting and receiving data to and from the cluster server 120 through the communication network 140 .

보다 구체적으로, 상기 통신 네트워크(140)로서는 유선 네트워크와 무선 네트워크를 포함할 수 있으며, 보다 구체적인 예를 들어 근거리 통신망 (LAN: Local Area Network), 도시권 통신망 (MAN: Metropolitan Area Network), 광역 통신망 (WAN: Wide Area Network) 등의 다양한 통신망을 포함할 수 있다. 또한, 상기 네트워크(140)는 공지의 월드 와이드 웹(WWW: World Wide Web) 등을 포함할 수도 있다. 그러나, 본 발명에 따른 통신 네트워크(140)는 상기 열거된 네트워크에 국한되지 않고, 공지의 전화 네트워크 또는 공지의 유무선 텔레비전 네트워크 등 다양한 종류의 유무선 데이터 네트워크를 포함하여 구성될 수도 있다.More specifically, the communication network 140 may include a wired network and a wireless network, and more specific examples include a local area network (LAN), a metropolitan area network (MAN), and a wide area network ( It may include various communication networks such as a wide area network (WAN). In addition, the network 140 may include the well-known World Wide Web (WWW) or the like. However, the communication network 140 according to the present invention is not limited to the above-listed networks, and may include various types of wired/wireless data networks, such as a known telephone network or a known wired/wireless television network.

또한, 도 2에서는 상기 클러스터 서버(120)가 복수개의 클러스터 서버(120-1, 120-2, ??, 120-m)를 포함하여 구성되는 것으로 도시되어 있으나, 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명에서 클러스터 서버(120)는 하나의 서버 장치로 구성하는 것도 가능하며 도 2와 같이 복수의 서버 장치로 구성하는 것도 가능하다. 나아가, 본 발명에서 상기 클러스터 서버(120)는 복수개의 서버 장치가 클라우드 시스템을 구성하여, 상기 클라우드 시스템에서 구동되는 가상 서버 등 다양한 형태로 구현 가능하다.In addition, although the cluster server 120 is shown in FIG. 2 as being configured to include a plurality of cluster servers 120-1, 120-2, ??, 120-m, the present invention is not necessarily limited thereto. No, in the present invention, the cluster server 120 can be configured with a single server device, or configured with a plurality of server devices as shown in FIG. 2 . Furthermore, in the present invention, the cluster server 120 can be implemented in various forms such as a virtual server running in the cloud system by configuring a cloud system with a plurality of server devices.

이에 따라, 본 발명의 일 실시예에 따른 컨테이너 배포 시스템(100)에서는, 다양한 컨테이너 활용 서비스를 안정적이고 효율적으로 처리할 수 있으며, 나아가 다중 클러스터 환경에서도 컨테이너가 전산 자원의 제약으로 인하여 성능이 저하되거나 비정상 종료되는 문제를 방지할 수 있게 된다.Accordingly, in the container deployment system 100 according to an embodiment of the present invention, various container utilization services can be stably and efficiently processed, and even in a multi-cluster environment, performance of containers may deteriorate due to limitations in computing resources or It is possible to prevent the problem of abnormal termination.

이하, 도면을 참조하여 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램에 대하여 보다 자세하게 살핀다.Hereinafter, a container distribution method, apparatus, system, and computer program in a multi-cluster environment according to an embodiment of the present invention will be described in more detail with reference to the drawings.

도 3에서는 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법의 순서도를 예시하고 있다.3 illustrates a flow chart of a container distribution method in a multi-cluster environment according to an embodiment of the present invention.

도 3에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법은, 복수의 클러스터(120a, 120b, ?? , 120m)가 구비되는 다중 클러스터 환경에서 컨테이너를 배포하는 방법에 있어서, 컨테이너 배포 서버(110)가 배포 예정인 제1 컨테이너에서 요구되는 전산 자원 조건을 고려하여 복수의 클러스터 중 배포 가능한 후보 클러스터를 필터링하는 후보 클러스터 필터링 단계(S110), 상기 제1 컨테이너의 전산 자원 요구량과 상기 후보 클러스터에 포함되는 각 머신의 전산 자원량을 고려하여 상기 후보 클러스터 중 상기 제1 컨테이너가 배포될 제1 클러스터를 선정하는 배포 클러스터 선정 단계(S120) 및 상기 제1 클러스터에 포함되는 머신 중 상기 제1 컨테이너가 구동될 머신을 선택하는 머신 선택 단계(S130)를 포함할 수 있다.As can be seen in FIG. 3, the container deployment method in a multi-cluster environment according to an embodiment of the present invention deploys containers in a multi-cluster environment in which a plurality of clusters 120a, 120b, ??, 120m are provided. In the method, a candidate cluster filtering step (S110) of filtering deployable candidate clusters among a plurality of clusters in consideration of computational resource conditions required for a first container to be deployed by the container distribution server 110, A distribution cluster selection step (S120) of selecting a first cluster to which the first container is to be distributed among the candidate clusters in consideration of the computational resource requirements and the computational resource amount of each machine included in the candidate cluster; A machine selection step ( S130 ) of selecting a machine in which the first container is to be driven from among the machines may be included.

또한, 도 4에서는 본 발명의 일 실시예에 따른 컨테이너 배포 시스템(100)의 구체적인 구성 및 동작을 설명하는 도면을 도시하고 있다. In addition, FIG. 4 shows a diagram for explaining the specific configuration and operation of the container distribution system 100 according to an embodiment of the present invention.

도 4에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 컨테이너 배포 시스템(100)에는, 컨테이너 배포 서버(110)와 복수의 클러스터(120a, ?? , 120m)가 구비될 수 있다.As can be seen in FIG. 4 , the container distribution system 100 according to an embodiment of the present invention may include a container distribution server 110 and a plurality of clusters 120a, ??, and 120m.

이때, 상기 컨테이너 배포 서버(110)에는 스케줄러(111)가 구비되어 복수의 클러스터(120a, ?? , 120m) 중 제1 컨테이너가 배포될 제1 클러스터를 선정하여 배포하게 된다.At this time, the scheduler 111 is provided in the container distribution server 110 to select and distribute a first cluster among a plurality of clusters 120a, ??, and 120m where the first container is to be distributed.

이에 따라, 상기 제1 컨테이너는 상기 제1 클러스터에 구비되는 하나 이상의 머신 중 선택된 제1 머신에서 구동될 수 있다.Accordingly, the first container may be driven on a first machine selected from among one or more machines included in the first cluster.

이때, 상기 제1 컨테이너가 구동되는 제1 머신은 상기 컨테이너 배포 서버(110)에서 선택할 수도 있으나, 본 발명이 반드시 이에 한정되는 것은 아니며, 상기 제1 클러스터에서 스스로 상기 제1 머신을 선택하거나 외부의 별도 서버 등에서 상기 제1 머신을 선택하도록 하는 것도 가능하다.At this time, the first machine on which the first container runs may be selected from the container distribution server 110, but the present invention is not necessarily limited thereto, and the first machine is selected by itself in the first cluster or by an external server. It is also possible to select the first machine in a separate server or the like.

이하, 도 3 및 도 4를 참조하여, 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법, 장치, 및 시스템(100)을 각 구성 요소 별로 나누어 보다 자세하게 설명한다.Hereinafter, with reference to FIGS. 3 and 4 , a container distribution method, apparatus, and system 100 in a multi-cluster environment according to an embodiment of the present invention will be described in more detail by dividing each component.

먼저, 상기 후보 클러스터 필터링 단계(S110)에서는, 상기 컨테이너 배포 서버(110)가 배포 예정인 제1 컨테이너에서 요구되는 전산 자원(computing resource) 조건을 고려하여 복수의 클러스터 중 배포 가능한 후보 클러스터를 필터링하여 선별하게 된다.First, in the candidate cluster filtering step (S110), the container distribution server 110 filters and selects distributable candidate clusters among a plurality of clusters in consideration of the computing resource condition required for the first container to be distributed. will do

보다 구체적으로, 상기 후보 클러스터 필터링 단계(S110)에서는, 상기 복수의 클러스터에 포함되는 각 머신 중 상기 제1 컨테이너에서 요구되는 CPU(Central Processing Unit), 메모리(memory), 저장 공간(storage), 네트워크(network)를 포함하는 전산 자원 중 하나 이상에 대한 전산 자원 조건을 모두 충족할 수 있는 머신을 포함하는 클러스터를 후보 클러스터로 선별할 수 있다. More specifically, in the candidate cluster filtering step (S110), CPU (Central Processing Unit), memory, storage space, and network required by the first container among the machines included in the plurality of clusters A cluster including a machine that can satisfy all computing resource conditions for one or more of computing resources including a network may be selected as a candidate cluster.

예를 들어, 전산 자원으로서 CPU 자원과 메모리(memory) 자원 및 저장 공간(storage) 자원이 요구되는 경우, 상기 후보 클러스터 필터링 단계(S110)에서는 아래 [수학식 1]에 따라 필터링을 수행할 수 있다.For example, when CPU resources, memory resources, and storage resources are required as computational resources, in the candidate cluster filtering step (S110), filtering may be performed according to Equation 1 below. .

[수학식 1][Equation 1]

Figure pat00001
Figure pat00001

보다 구체적인 예를 들어, 사용자의 단말(130)에서 요청하는 제1 컨테이너에서 요구되는 CPU 자원이 5이고, 메모리 자원 자원이 3이고, 저장 공간(storage) 자원이 7인 경우, 상기 컨테이너 배포 서버(110)에서는 복수의 클러스터(120a, ?? , 120m)에 포함되는 각 머신(121a, ?? ,121n, 12ma, ?? , 12mn) 중 상기 각 전산 자원에 대하여 요구되는 조건을 모두 충족시킬 수 있는 머신을 포함하는 클러스터를 후보 클러스터로 선별하게 된다.For a more specific example, when the CPU resource required by the first container requested by the user terminal 130 is 5, the memory resource resource is 3, and the storage space resource is 7, the container distribution server ( 110), among the machines 121a, ??, 121n, 12ma, ??, 12mn included in the plurality of clusters 120a, ??, 120m, all of the conditions required for each of the computing resources are satisfied. Clusters including machines are selected as candidate clusters.

이때, 도 4에서 볼 수 있는 바와 같이, 상기 머신(machine)은 실물 머신(Physical Machine, PM)일 수 있으나, 가상 머신(Virtual Machine, VM)일 수도 있다.At this time, as can be seen in FIG. 4 , the machine may be a physical machine (PM), but may also be a virtual machine (VM).

또한, 도 4에서 볼 수 있는 바와 같이, 각 클러스터(120a, ?? , 120m)는 각각 실물 머신(PM)과 가상 머신(VM)을 포함할 수 있으나, 또한 상기 각 클러스터(120a, ?? , 120m)에 상기 실물 머신(PM)과 가상 머신(VM)이 혼합하여 포함될 수도 있다.In addition, as can be seen in FIG. 4, each cluster 120a, ??, 120m may include a real machine (PM) and a virtual machine (VM), but also each of the clusters 120a, ??, 120 m) may include a mixture of the real machine (PM) and the virtual machine (VM).

이에 따라, 도 4에서 클러스터 #1(120a)의 PM #1(121a)이 상기 제1 컨테이너에서 요구되는 전산 자원 조건을 모두 충족할 수 있다면, 상기 클러스터 #1(120a)은 후보 클러스터에 포함될 수 있게 된다.Accordingly, if PM #1 (121a) of cluster #1 (120a) in FIG. 4 can satisfy all computing resource conditions required by the first container, cluster #1 (120a) can be included in the candidate cluster. there will be

또한, 본 발명에서 상기 후보 클러스터 필터링 단계(S110)는, 상기 복수의 클러스터(120a, ?? , 120m)에 포함되는 각 머신 중 상기 제1 컨테이너에서 요구되는 하나 이상의 포트(port)를 모두 할당 가능한 머신을 포함하는 클러스터를 후보 클러스터로 선별하는 단계(미도시)를 더 포함할 수도 있다(예를 들어, TCP 통신용 포트와 UDP 통신용 포트를 모두 요구하는 경우).In addition, in the present invention, the candidate cluster filtering step (S110) is capable of allocating one or more ports required by the first container among machines included in the plurality of clusters 120a, ??, and 120m. A step (not shown) of selecting a cluster including the machine as a candidate cluster may be further included (eg, when both a port for TCP communication and a port for UDP communication are required).

또한, 본 발명에서 상기 후보 클러스터 필터링 단계(S110)는, 상기 복수의 클러스터(120a, ?? , 120m)에 포함되는 각 머신 중 상기 제1 컨테이너에서 요구되는 하나 이상의 저장 장치를 할당 가능한 머신을 포함하는 클러스터를 후보 클러스터로 선별하는 단계(미도시)를 더 포함할 수도 있다(예를 들어, 특정한 데이터베이스에 접속하여 데이터를 저장하거나 읽어오는 경우).In the present invention, the filtering of candidate clusters (S110) includes a machine capable of allocating one or more storage devices required by the first container among the machines included in the plurality of clusters 120a, ??, and 120m. A step (not shown) of selecting a cluster to be selected as a candidate cluster may be further included (eg, when accessing a specific database to save or read data).

이에 따라, 본 발명에서 상기 후보 클러스터 필터링 단계(S110)에서는, CPU, 메모리, 저장 공간(storage), 네트워크(network) 등의 전산 자원에 대하여 요구되는 전산 자원 조건을 모두 충족할 수 있는 머신을 포함하는 클러스터를 필터링하거나, 나아가 요구되는 포트 또는 저장 장치를 할당 가능한 머신을 포함하는 클러스터를 필터링하여 후보 클러스터로 산출할 수 있다.Accordingly, in the step of filtering candidate clusters (S110) in the present invention, a machine capable of satisfying all computing resource conditions required for computing resources such as CPU, memory, storage space, and network is included. Candidate clusters may be calculated by filtering out clusters that require a desired port or by filtering out clusters including machines capable of allocating a required port or storage device.

이어서, 상기 배포 클러스터 선정 단계(S120)에서는, 상기 컨테이너 배포 서버(110)가 상기 제1 컨테이너의 전산 자원 요구량과 상기 후보 클러스터에 포함되는 각 머신의 전산 자원량을 고려하여 상기 후보 클러스터 중 상기 제1 컨테이너가 배포될 제1 클러스터를 선정하게 된다.Subsequently, in the distribution cluster selection step (S120), the container distribution server 110 considers the computational resource requirements of the first container and the computational resources of each machine included in the candidate cluster, and selects the first one of the candidate clusters. The first cluster where the container will be deployed is selected.

보다 구체적으로, 본 발명에서 상기 배포 클러스터 선정 단계(S120)에서는, 상기 후보 클러스터에 대한 가용 자원 대비 요구 자원 우선도, 핵심 자원 우선도, 총자원 대비 사용/요구 자원 우선도, 네트워크 자원 우선도 중 하나 이상의 우선도를 고려하여 상기 배포 클러스터를 선정할 수 있다.More specifically, in the step of selecting the distribution cluster (S120) in the present invention, the priority of the available resources versus the required resources for the candidate cluster, the priority of the core resources, the priority of the used/requested resources versus the total resources, and the priority of the network resources The distribution cluster may be selected by considering one or more priorities.

이때, 상기 가용 자원 대비 요구 자원 우선도는, 상기 후보 클러스터에 포함되는 각 머신에서의 각 전산 자원 가용량에 대한 상기 제1 컨테이너에서의 전산 자원 요구량의 비율의 합계치로부터 산출될 수 있다.In this case, the priority of the required resource to the available resource may be calculated from the sum of the ratios of the computational resource requirement in the first container to the available computational resource capacity in each machine included in the candidate cluster.

보다 구체적인 예를 들어, 상기 머신에 N개의 전산 자원이 있는 경우, 상기 가용 자원 대비 요구 자원 우선도는 아래의 [수학식 2]를 이용하여 산출될 수 있다.For a more specific example, when there are N computational resources in the machine, the priority of the required resource versus the available resource may be calculated using Equation 2 below.

[수학식 2] [Equation 2]

Figure pat00002
Figure pat00002

즉, 전산 자원 가용량에 대한 전산 자원 요구량이 큰 경우 해당 머신 및 이로 구성되는 노드(node)의 전산 자원을 최대한 소비할 수 있게 된다는 것을 의미하며, 이에 따라 상기 머신 또는 노드에 컨테이너가 배포되는 경우 다음 컨테이너의 배포를 위한 후보 클러스터 필터링 단계(S110)에서 상기 머신 또는 노드가 필터링되어 걸러질 수 있으므로, 추가 컨테이너 배치를 위한 관리 목록에서 제거하여 보다 효율적인 관리가 가능하게 된다.That is, when the computational resource demand for the computational resource availability is large, it means that the computational resources of the machine and the node composed of the corresponding machine can be maximally consumed, and accordingly, when containers are distributed to the machine or node In the step of filtering candidate clusters for next container deployment (S110), since the machines or nodes can be filtered out, more efficient management is possible by removing them from the management list for additional container deployment.

또한, 상기 핵심 자원 우선도와 관련해서는, 먼저 상기 머신에서의 총 전산 자원량에 대한 전산 자원 사용량의 제1 비율이 가장 큰 전산 자원을 핵심 자원으로 선별한 후, 상기 핵심 자원의 제1 비율(=핵심 자원 우선도)을 고려하여 상기 배포 클러스터를 선정할 수 있다.In addition, with respect to the priority of the core resource, first, a computing resource having the largest first ratio of the amount of computing resource usage to the total amount of computing resources in the machine is selected as a core resource, and then a first ratio (= core resource) of the core resource is selected. The distribution cluster may be selected in consideration of resource priority).

보다 구체적인 예를 들어, 상기 머신에 N개의 전산 자원이 있는 경우, 상기 핵심 자원은 상기 각 N개의 전산 자원에 대하여 아래의 [수학식 3]을 이용하여 산출될 수 있다.For a more specific example, when there are N computational resources in the machine, the core resource can be calculated using [Equation 3] below for each of the N computational resources.

[수학식 3] [Equation 3]

Figure pat00003
Figure pat00003

보다 구체적인 예를 들어, 클러스터 A의 CPU 자원 사용량/총 CPU 자원량이 8/10이고, 메모리 자원 사용량/총 메모리 자원량이 7/10이고, 저장 장치 사용량/총 저장 장치 자원량이 6/10인 경우, 클러스터 A의 핵심 자원은 CPU이고 핵심 자원 우선도는 0.8이 될 수 있다.As a more specific example, if cluster A's CPU resource usage/total CPU resource amount is 8/10, memory resource usage/total memory resource amount is 7/10, and storage device usage/total storage device resource amount is 6/10, The core resource of cluster A is CPU and the core resource priority can be 0.8.

반면, 클러스터 B의 CPU 자원 사용량/총 CPU 자원량이 5/10이고, 메모리 자원 사용량/총 메모리 자원량이 4/10이고, 저장 장치 사용량/총 저장 장치 자원량이 6/10인 경우, 클러스터 B의 핵심 자원은 저장 장치이고 핵심 자원 우선도는 0.6이 될 수 있다.On the other hand, if cluster B's CPU resource usage/total CPU resource amount is 5/10, memory resource usage/total memory resource amount is 4/10, and storage device usage/total storage device resource amount is 6/10, cluster B's core The resource is a storage device and the core resource priority can be 0.6.

이때, 클러스터 A의 핵심 자원 우선도(CPU, 0.8)가 클러스터 B의 핵심 자원 우선도(저장 장치, 0.6)보다 높으므로, 상기 클러스터 A로 컨테이너를 우선 배치하는 경우, 다음 컨테이너의 배포를 위한 후보 클러스터 필터링 단계(S110)에서 상기 클러스터 A가 필터링되어 걸러질 수 있도록 하여 보다 효율적으로 관리가 이루어지도록 처리할 수 있다.At this time, since the core resource priority (CPU, 0.8) of cluster A is higher than the core resource priority (storage device, 0.6) of cluster B, when a container is first placed in cluster A, a candidate for deploying the next container In the cluster filtering step (S110), the cluster A can be filtered and filtered so that management can be performed more efficiently.

또한, 상기 총자원 대비 사용/요구 자원 우선도는, 상기 후보 클러스터에 포함되는 각 머신에서의 총 전산 자원량에 대한, 이미 배포된 컨테이너의 전산 자원 사용량과 상기 제1 컨테이너의 전산 자원 요구량의 합계치의 비율로부터 산출될 수 있다.In addition, the priority of the resource used/required relative to the total resource is the sum of the computational resource usage of already deployed containers and the computational resource requirement of the first container with respect to the total computational resource amount in each machine included in the candidate cluster. can be calculated from the ratio.

보다 구체적인 예를 들어, 상기 머신에 N개의 전산 자원이 있는 경우, 상기 가용 자원 대비 요구 자원 우선도는 아래의 [수학식 4]를 이용하여 산출될 수 있다.For a more specific example, when there are N computational resources in the machine, the priority of the available resources versus the requested resources may be calculated using Equation 4 below.

[수학식 4] [Equation 4]

Figure pat00004
Figure pat00004

이에 따라, 본 발명의 일 실시예로서, 각 머신에서의 총 전산 자원량에 대한, 이미 배포된 컨테이너의 전산 자원 사용량과 상기 제1 컨테이너의 전산 자원 요구량의 합계치의 비율이 작은 클러스터를 선택하는 방식으로 컨테이너를 배포할 머신 또는 노드를 선택하는 것도 가능하다.Accordingly, as an embodiment of the present invention, a cluster having a small ratio of the sum of the computational resource usage of already deployed containers and the computational resource requirement of the first container to the total computational resource quantity in each machine is selected. It is also possible to select a machine or node to deploy the container to.

또한, 본 발명에서는, 상기 배포 클러스터 선정 단계(S120)에서, 상기 후보 클러스터에 포함되는 각 머신에서의 실시간 네트워크 사용량을 고려하여 네트워크 자원 우선도를 산출하고, 상기 네트워크 자원 우선도를 고려하여 상기 제1 컨테이너를 배포할 배포 클러스터를 선정할 수도 있다.In the present invention, in the distribution cluster selection step (S120), network resource priorities are calculated in consideration of real-time network usage in each machine included in the candidate cluster, and the network resource priorities are considered. 1 You can also select a deployment cluster to deploy containers.

나아가, 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법, 장치 및 시스템에서는, 상기 배포 클러스터 선정 단계(S120)에서 상기 후보 클러스터에 포함되는 각 머신에 대한 상기 우선도의 합계치를 산출하고, 상기 후보 클러스터 각각에 대한 상기 우선도의 합계치 크기를 고려하여 배포 클러스터를 선정하는 것도 가능하다.Furthermore, in the container distribution method, apparatus, and system in a multi-cluster environment according to an embodiment of the present invention, the sum of the priorities for each machine included in the candidate cluster is calculated in the distribution cluster selection step (S120). It is also possible to select a distribution cluster in consideration of the size of the sum of the priorities for each of the candidate clusters.

이러한 경우 동일 클러스터 내의 각 머신 또는 노드의 각 우선도 점수를 합산하여, 평균적으로 수용 가능성이 가장 높은 클러스터를 선택하는 방식으로 배포 클러스터를 선정할 수 있다.In this case, the distribution cluster may be selected by summing up the priority scores of each machine or node in the same cluster and selecting a cluster having the highest average acceptability.

또한, 본 발명에서 상기 배포 클러스터 선정 단계(S120)에서는, 상기 후보 클러스터에 포함되는 각 머신의 우선도 중 가장 큰 우선도를 고려하여 상기 배포 클러스터를 선정할 수도 있다.In the present invention, in the distribution cluster selection step (S120), the distribution cluster may be selected by considering the highest priority among the priorities of each machine included in the candidate cluster.

이러한 경우는 동일 클러스터 내에서 가장 우선도가 높은 머신 또는 노드가 클러스터를 대표하도록 하는 방식으로, 해당 우선도를 가지는 머신 또는 노드가 컨테이너를 수용하는 것을 보장할 수 있게 된다.In this case, a machine or node with the highest priority within the same cluster represents the cluster, and it is possible to guarantee that the machine or node with the corresponding priority accommodates the container.

이에 따라, 상기 배포 클러스터 선정 단계(S120)에서는, 상기 제1 컨테이너의 전산 자원 요구량과 상기 후보 클러스터에 포함되는 각 머신의 전산 자원량을 고려하여 상기 후보 클러스터 중 상기 제1 컨테이너가 배포될 제1 클러스터를 선정하게 된다.Accordingly, in the deployment cluster selection step (S120), the first cluster to which the first container is to be distributed among the candidate clusters in consideration of the computational resource requirement of the first container and the computational resource quantity of each machine included in the candidate cluster. will select

이어서, 상기 머신 선택 단계(S130)에서는, 상기 제1 클러스터에 포함되는 머신 중 상기 제1 컨테이너가 구동될 머신을 선택하게 된다.Subsequently, in the machine selection step (S130), a machine on which the first container is to be driven is selected from among the machines included in the first cluster.

이때, 앞서 설명한 바와 같이, 상기 제1 클러스터에 포함되는 머신에 대하여 상기 산출된 핵심 자원 및 핵심 자원 우선도를 고려하여 상기 머신을 선택하는 것도 가능하나, 본 발명이 반드시 이에 한정되는 것은 아니며, 이외에도 상기 배포 클러스터 선정 단계(S120)에서 선정된 배포 클러스터에 대하여 다양한 알고리즘으로 상기 제1 컨테이너가 구동될 머신을 선택하는 것이 가능하다.At this time, as described above, it is also possible to select the machine in consideration of the calculated core resource and core resource priority for the machine included in the first cluster, but the present invention is not necessarily limited thereto. With respect to the distribution cluster selected in the distribution cluster selection step (S120), it is possible to select a machine on which the first container is to be run using various algorithms.

나아가, 도 5에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법은, 상기 컨테이너 배포 서버(110)가, 제1 컨테이너를 배포하였으나 정상 구동되지 못한 횟수 또는 상기 제1 컨테이너가 구동 후 비정상 종료된 횟수 중 하나 이상을 파악하고, 이를 고려하여 서비스 품질 지수(QoS)를 산출하여 관리하는 서비스 품질 지수 관리 단계(S140)를 더 포함할 수도 있다.Furthermore, as can be seen in FIG. 5, in the container distribution method in a multi-cluster environment according to an embodiment of the present invention, the container distribution server 110 distributes a first container but fails to operate normally; A QoS management step (S140) of recognizing one or more of the number of times the first container is abnormally terminated after being driven, calculating and managing a QoS in consideration of this may be further included.

이에 따라, 본 발명에서는 단순히 컨테이너를 배포할 머신을 선택하여 배포하는데 그치지 않고, 배포된 컨테이너에서 발생하는 비정상 구동 또는 비정상 종료를 파악한 후, 이를 이용하여 컨테이너의 배포를 조절하여 줌으로써, 배포되는 컨테이너의 서비스 품질 지수(QoS)를 관리하고 개선할 수 있게 된다.Accordingly, in the present invention, the present invention does not stop at simply selecting and deploying a machine on which to deploy containers, but detects abnormal operation or abnormal termination occurring in the deployed container, and then adjusts the distribution of the container using this, so that the distribution of the deployed container You will be able to manage and improve your Quality of Service (QoS).

이와 관련하여, 도 6에서는 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법에 따른 구체적인 동작을 예시하는 순서도를 예시하고 있다.In this regard, FIG. 6 illustrates a flowchart illustrating specific operations according to a container distribution method in a multi-cluster environment according to an embodiment of the present invention.

도 6에서 볼 수 있는 바와 같이, 사용자가 단말(130)을 통해 컨테이너 배포 서버(110)로 제1 컨테이너의 배포를 요청하면(S210), 상기 컨테이너 배포 서버(110)는 복수의 클러스터 모두에 대하여 필터링을 진행해 후보 클러스터를 산출하게 된다(S220).As can be seen in FIG. 6 , when a user requests distribution of a first container to the container distribution server 110 through the terminal 130 (S210), the container distribution server 110 sends a request to the container distribution server 110 for all of the plurality of clusters. Filtering is performed to calculate candidate clusters (S220).

이어서, 상기 컨테이너 배포 서버(110)는 상기 후보 클러스터를 대상으로 가용 자원 대비 요구 자원 우선도, 핵심 자원 우선도, 총자원 대비 사용/요구 자원 우선도, 네트워크 자원 우선도 중 하나 이상의 우선도의 점수를 산출(Scoring)하게 된다(S230).Subsequently, the container distribution server 110 sets a priority score of one or more of the priority of available resources versus requested resources, priority of core resources, priority of used/required resources versus total resources, and network resource priority for the candidate cluster. is calculated (Scoring) (S230).

이에 따라, 상기 컨테이너 배포 서버(110)는 상기 후보 클러스터 중 최고 점수의 우선도를 가지는 클러스터를 배포 클러스터로 선정해 상기 제1 컨테이너를 배포하게 된다(S240).Accordingly, the container distribution server 110 selects a cluster having the highest priority score among the candidate clusters as a distribution cluster and distributes the first container (S240).

이어서, 상기 제1 컨테이너의 배포가 완료된 후에, 상기 제1 컨테이너가 배포된 배포 클러스터 내의 머신 또는 노드들의 전산 자원량이 업데이트되고, 단일 클러스터 모니터링부(122a)에서 상기 머신 또는 노드 단에서의 전산 자원량 데이터가 추출되어 전송된다(S250).Subsequently, after the distribution of the first container is completed, the computational resource quantity of machines or nodes in the distribution cluster where the first container is distributed is updated, and the computational resource quantity data at the machine or node stage is updated by the single cluster monitoring unit 122a. is extracted and transmitted (S250).

이에 따라, 상기 컨테이너 배포 서버(110)의 다중 클러스터 모니터링부(112)에서는 상기 각 클러스터 단에서의 전산 자원량 데이터를 수집하여 실시간 전산 자원으로 추출해 업데이터하여 사용하게 된다(S260).Accordingly, the multi-cluster monitoring unit 112 of the container distribution server 110 collects data on the amount of computational resources in each cluster, extracts them as real-time computational resources, and updates and uses them (S260).

이에 따라, 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법, 장치 및 시스템에서는 상기 각 클러스터의 전산 자원량을 실시간 업데이트하면서 컨테이너의 배포에 반영하여 사용함으로써, 보다 효율적으로 컨테이너 배포를 처리할 수 있게 된다.Accordingly, in the method, apparatus, and system for deploying containers in a multi-cluster environment according to an embodiment of the present invention, the amount of computational resources of each cluster is updated in real time and reflected in the distribution of containers, thereby processing container distribution more efficiently. You will be able to do it.

또한, 도 7에서는 도 4에 도시된 컨테이너 배포 시스템(100)에 하나 이상의 단일 클러스터 모니터링부(122a, ?? , 122m)와 다중 클러스터 모니터링부(112)가 추가되어 컨테이너 배포 시스템(100)을 구성하는 경우를 예시하고 있다.In addition, in FIG. 7, one or more single cluster monitoring units 122a, ??, 122m and multiple cluster monitoring units 112 are added to the container deployment system 100 shown in FIG. 4 to configure the container deployment system 100. A case is exemplified.

보다 구체적으로, 도 7에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법, 장치 및 시스템에서, 상기 컨테이너가 배포되는 제1 클러스터(120a)에는 단일 클러스터 모니터링부(122a)가 구비되어, 상기 제1 클러스터(120a)에 포함되는 각 머신 또는 노드에 대한 전산 자원 데이터를 수집하여 상기 제1 클러스터에 대한 전산 자원 데이터를 생성할 수 있고, 이어서 상기 컨테이너 배포 서버(110)에는 상기 제1 클러스터를 포함하는 복수의 클러스터에 대한 전산 자원 데이터를 수집하는 다중 클러스터 모니터링부(112)가 구비되어, 상기 복수의 클러스터(120a, ??, 120m)에 구비되는 각 단일 클러스터 모니터링부(122a, ?? , 122m)로부터 각 클러스터(120a, ??, 120m)에 대한 전산 자원 데이터를 수집하여 상기 복수의 클러스터(120a, ??, 120m)에 대한 전산 자원 데이터를 생성할 수 있다.More specifically, as shown in FIG. 7 , in the container deployment method, apparatus, and system in a multi-cluster environment according to an embodiment of the present invention, a single cluster is monitored in the first cluster 120a where the container is deployed. A unit 122a is provided to collect computational resource data for each machine or node included in the first cluster 120a to generate computational resource data for the first cluster, and then to the container distribution server. 110 is provided with a multi-cluster monitoring unit 112 that collects computing resource data for a plurality of clusters including the first cluster, and each single cluster provided in the plurality of clusters 120a, ??, 120m Computing resource data for each cluster 120a, ??, 120m is collected from the cluster monitoring unit 122a, ??, 122m, and computational resource data for the plurality of clusters 120a, ??, 120m is generated. can

나아가, 상기 다중 클러스터 모니터링부(112)는 상기 단일 클러스터 모니터링부(122a, ?? , 122m)로부터 수집되는 각 클러스터(120a, ??, 120m)에 대한 모니터링 데이터를 이용하여, 상기 각 클러스터(120a, ??, 120m)에서 발생하는 컨테이너의 비정상 구동 또는 비정상 종료를 파악하고, 이를 이용하여 컨테이너의 배포 및 서비스 품질 지수(QoS)를 관리할 수도 있다.Furthermore, the multi-cluster monitoring unit 112 uses the monitoring data for each cluster 120a, ??, 120m collected from the single cluster monitoring unit 122a, ??, 122m to monitor each cluster 120a. , ??, 120m), container distribution and quality of service (QoS) can be managed by identifying abnormal operation or abnormal termination of containers.

또한, 도 8에서는 본 발명의 일 실시예에 따른 다중 클러스터 환경에서의 컨테이너 배포 방법, 장치 및 시스템에서의 컨테이너 배포 서버(110)의 구성도를 예시하고 있다.8 illustrates a configuration diagram of a container distribution server 110 in a container distribution method, apparatus, and system in a multi-cluster environment according to an embodiment of the present invention.

도 8에서 볼 수 있는 바와 같이 본 발명에 따른 컨테이너 배포 서버(110)는, 후보 클러스터 필터링부(115), 배포 클러스터 선정부(116) 및 머신 선택부(117)를 포함하여 구성될 수 있다.As can be seen in FIG. 8 , the container distribution server 110 according to the present invention may include a candidate cluster filtering unit 115 , a distribution cluster selection unit 116 and a machine selection unit 117 .

상기 본 발명에 따른 컨테이너 배포 서버(110)에 대해서는 앞서 도 1 내지 도 7을 참조하여 본 발명의 일 실시예에 따른 컨테이너 배포 방법 및 시스템(100)과 관련하여 자세하게 설명한 바, 여기서 자세한 설명을 반복하는 것은 생략하고 핵심 구성에 대해서만 간략히 살핀다.The container distribution server 110 according to the present invention has been described in detail in relation to the container distribution method and system 100 according to an embodiment of the present invention with reference to FIGS. 1 to 7, and the detailed description is repeated here. We omit what to do and only briefly look at the core configuration.

먼저, 상기 후보 클러스터 필터링부(115)에서는, 배포 예정인 제1 컨테이너에서 요구되는 전산 자원 조건을 고려하여 복수의 클러스터 중 배포 가능한 후보 클러스터를 필터링하게 된다.First, in the candidate cluster filtering unit 115, distributable candidate clusters among a plurality of clusters are filtered in consideration of computational resource conditions required for a first container to be distributed.

또한, 상기 배포 클러스터 선정부(116)에서는, 상기 제1 컨테이너의 전산 자원 요구량과 상기 후보 클러스터에 포함되는 각 머신의 전산 자원량을 고려하여 상기 후보 클러스터 중 상기 제1 컨테이너가 배포될 제1 클러스터를 선정하게 된다.In addition, the distribution cluster selection unit 116 selects a first cluster to which the first container is to be distributed from among the candidate clusters in consideration of the computational resource requirement of the first container and the computational resource quantity of each machine included in the candidate cluster. will be selected

이어서, 상기 머신 선택부(117)에서는 상기 제1 클러스터에 포함되는 머신 중 상기 제1 컨테이너가 구동될 머신을 선택하게 된다.Subsequently, the machine selector 117 selects a machine on which the first container is to be driven from among the machines included in the first cluster.

상기 컨테이너 배포 서버(110)의 각 구성요소들은 별도의 서버나 개별 하드웨어 모듈 등으로 구성될 수 있으나, 본 발명이 반드시 이에 한정되는 것은 아니며, 상기 컨테이너 배포 서버(110)의 각 구성요소들을 소프트웨어 모듈로 구성하여 하나 또는 둘 이상의 서버에서 구동시키는 등 다양한 형태로 구현하는 것도 가능하다.Each component of the container distribution server 110 may be configured as a separate server or individual hardware module, but the present invention is not necessarily limited thereto, and each component of the container distribution server 110 is a software module. It is also possible to implement in various forms, such as configuring and running on one or more servers.

또한, 본 발명의 또 다른 측면에 따른 컴퓨터 프로그램은 앞서 살핀 컨테이너 배포 방법의 각 단계를 컴퓨터에서 실행시키기 위하여 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램인 것을 특징으로 한다. 상기 컴퓨터 프로그램은 컴파일러에 의해 만들어지는 기계어 코드를 포함하는 컴퓨터 프로그램뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에서 실행될 수 있는 고급 언어 코드를 포함하는 컴퓨터 프로그램일 수도 있다. 이때, 상기 컴퓨터로서는 퍼스널 컴퓨터(PC)나 노트북 컴퓨터 등에 한정되지 아니하며, 서버, 스마트폰, 태블릿 PC, PDA, 휴대전화 등 중앙처리장치(CPU)를 구비하여 컴퓨터 프로그램을 실행할 수 있는 일체의 정보처리 장치를 포함한다.In addition, the computer program according to another aspect of the present invention is characterized in that it is a computer program stored in a computer readable medium in order to execute each step of the salpin container distribution method on a computer. The computer program may be a computer program including machine code generated by a compiler, as well as a computer program including high-level language code that can be executed on a computer using an interpreter or the like. At this time, the computer is not limited to a personal computer (PC) or a notebook computer, etc., and has a central processing unit (CPU) such as a server, smart phone, tablet PC, PDA, mobile phone, etc. to execute a computer program. All information processing include the device

또한, 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.In addition, the computer-readable medium may continuously store a computer-executable program or temporarily store it for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or combined hardware, but is not limited to a medium directly connected to a certain computer system, and may be distributed on a network. Examples of the medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROM and DVD, magneto-optical media such as floptical disks, and ROM, RAM, flash memory, etc. configured to store program instructions. In addition, examples of other media include recording media or storage media managed by an app store that distributes applications, a site that supplies or distributes various other software, and a server.

이에 따라, 본 발명의 일 실시예에 따른 컨테이너 배포 방법, 장치, 시스템 및 컴퓨터 프로그램에서는, 다양한 컨테이너 활용 서비스를 안정적이고 효율적으로 처리할 수 있으며, 나아가 다중 클러스터 환경에서도 컨테이너가 전산 자원의 제약으로 인하여 성능이 저하되거나 비정상 종료되는 문제를 방지할 수 있게 된다.Accordingly, in the container distribution method, apparatus, system, and computer program according to an embodiment of the present invention, various container utilization services can be stably and efficiently processed, and furthermore, even in a multi-cluster environment, containers can be It is possible to prevent performance deterioration or abnormal termination.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명에 기재된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의해서 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an example of the technical idea of the present invention, and various modifications and variations can be made to those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments described in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and are not limited to these embodiments. The protection scope of the present invention should be construed by the following claims, and all technical ideas within the equivalent range should be construed as being included in the scope of the present invention.

100 : 컨테이너 배포 시스템
110 : 컨테이너 배포 서버
111 : 스케줄러
112 : 다중 클러스터 모니터링부
115 : 후보 클러스터 필터링부
116 : 배포 클러스터 선정부
117 : 머신 선택부
120, 120-1, 120-2,120-m : 클러스터 서버
120a, 120b, 120m : 클러스터
121a, 121n, 12ma, 12mn : 머신
122a, 122m : 단일 클러스터 모니터링부
130 : 단말
140 : 통신 네트워크
100: container deployment system
110: container deployment server
111: scheduler
112: multi-cluster monitoring unit
115: candidate cluster filtering unit
116: distribution cluster selection unit
117: machine selection unit
120, 120-1, 120-2,120-m: cluster server
120a, 120b, 120m: cluster
121a, 121n, 12ma, 12mn: machine
122a, 122m: single cluster monitoring unit
130: Terminal
140: communication network

Claims (15)

복수의 클러스터가 구비되는 다중 클러스터 환경에서 컨테이너를 배포하는 방법에 있어서,
컨테이너 배포 서버가, 배포 예정인 제1 컨테이너에서 요구되는 전산 자원 조건을 고려하여 복수의 클러스터 중 배포 가능한 후보 클러스터를 필터링하는 후보 클러스터 필터링 단계;
상기 제1 컨테이너의 전산 자원 요구량과 상기 후보 클러스터에 포함되는 각 머신의 전산 자원량을 고려하여 상기 후보 클러스터 중 상기 제1 컨테이너가 배포될 제1 클러스터를 선정하는 배포 클러스터 선정 단계; 및
상기 제1 클러스터에 포함되는 머신 중 상기 제1 컨테이너가 구동될 머신을 선택하는 머신 선택 단계;
를 포함하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
A method for distributing a container in a multi-cluster environment in which a plurality of clusters are provided,
a candidate cluster filtering step of filtering, by a container distribution server, distributable candidate clusters among a plurality of clusters in consideration of computational resource conditions required for a first container to be distributed;
a distribution cluster selecting step of selecting a first cluster to which the first container is to be distributed from among the candidate clusters in consideration of a computational resource requirement of the first container and a computational resource quantity of each machine included in the candidate cluster; and
a machine selection step of selecting a machine on which the first container will run from among machines included in the first cluster;
Container deployment method in a multi-cluster environment comprising a.
제1항에 있어서,
상기 후보 클러스터 필터링 단계에서는,
상기 복수의 클러스터에 포함되는 각 머신 중 상기 제1 컨테이너에서 요구되는 CPU(Central Processing Unit), 메모리(memory), 저장 공간(storage), 네트워크(network)를 포함하는 전산 자원 중 하나 이상에 대한 전산 자원 조건을 모두 충족할 수 있는 머신을 포함하는 클러스터를 후보 클러스터로 선별하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 1,
In the candidate cluster filtering step,
Computation for one or more of computing resources including a central processing unit (CPU), memory, storage, and network required by the first container among the machines included in the plurality of clusters. A container deployment method in a multi-cluster environment, characterized in that a cluster including a machine that can satisfy all resource conditions is selected as a candidate cluster.
제2항에 있어서,
상기 후보 클러스터 필터링 단계는,
상기 복수의 클러스터에 포함되는 각 머신 중 상기 제1 컨테이너에서 요구되는 하나 이상의 포트를 모두 할당 가능한 머신을 포함하는 클러스터를 후보 클러스터로 선별하는 단계;를 더 포함하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 2,
The candidate cluster filtering step,
Selecting, as a candidate cluster, a cluster including a machine capable of allocating one or more ports required by the first container among the machines included in the plurality of clusters; Container deployment method.
제2항에 있어서,
상기 후보 클러스터 필터링 단계는,
상기 복수의 클러스터에 포함되는 각 머신 중 상기 제1 컨테이너에서 요구되는 하나 이상의 저장 장치를 할당 가능한 머신을 포함하는 클러스터를 후보 클러스터로 선별하는 단계;를 더 포함하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 2,
The candidate cluster filtering step,
selecting a cluster including a machine capable of allocating one or more storage devices required by the first container among the machines included in the plurality of clusters as a candidate cluster; Container deployment method.
제1항에 있어서,
상기 배포 클러스터 선정 단계에서는,
상기 후보 클러스터에 대한 가용 자원 대비 요구 자원 우선도, 핵심 자원 우선도, 총자원 대비 사용/요구 자원 우선도, 네트워크 자원 우선도 중 하나 이상의 우선도를 고려하여 상기 배포 클러스터를 선정하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 1,
In the step of selecting the distribution cluster,
Selecting the distribution cluster by considering the priority of one or more of the priority of required resources versus available resources, priority of core resources, priority of used/required resources versus total resources, and network resource priority for the candidate cluster. How to deploy containers in a multi-cluster environment.
제5항에 있어서,
상기 배포 클러스터 선정 단계에서는,
상기 후보 클러스터에 포함되는 각 머신에 대하여,
상기 머신에서의 각 전산 자원 가용량에 대한 상기 제1 컨테이너에서의 전산 자원 요구량의 비율의 합계치로부터 상기 가용 자원 대비 요구 자원 우선도를 산출하고,
상기 가용 자원 대비 요구 자원 우선도의 크기를 고려하여 상기 배포 클러스터를 선정하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 5,
In the step of selecting the distribution cluster,
For each machine included in the candidate cluster,
calculating the priority of the available resources versus the required resources from the sum of the ratios of the computational resource requirements in the first container to the available computational resources in the machine;
Container distribution method in a multi-cluster environment, characterized in that the distribution cluster is selected in consideration of the size of the priority of the available resources versus the required resources.
제5항에 있어서,
상기 배포 클러스터 선정 단계에서는,
상기 후보 클러스터에 포함되는 각 머신에 대하여,
상기 머신에서의 총 전산 자원량에 대한 전산 자원 사용량의 제1 비율이 가장 큰 전산 자원을 핵심 자원으로 선별하고,
상기 핵심 자원의 제1 비율(=핵심 자원 우선도)을 고려하여 상기 배포 클러스터를 선정하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 5,
In the step of selecting the distribution cluster,
For each machine included in the candidate cluster,
Selecting a computing resource having the largest first ratio of computing resource usage to the total computing resource amount in the machine as a core resource;
Container distribution method in a multi-cluster environment, characterized in that the distribution cluster is selected in consideration of the first ratio (=key resource priority) of the core resource.
제5항에 있어서,
상기 배포 클러스터 선정 단계에서는,
상기 후보 클러스터에 포함되는 각 머신에 대하여,
상기 머신에서의 총 전산 자원량에 대한, 이미 배포된 컨테이너의 전산 자원 사용량과 상기 제1 컨테이너의 전산 자원 요구량의 합계치의 비율로부터 총자원 대비 사용/요구 자원 우선도를 산출하고,
상기 총자원 대비 사용/요구 자원 우선도를 고려하여 상기 배포 클러스터를 선정하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 5,
In the deployment cluster selection step,
For each machine included in the candidate cluster,
Calculate priority of used/required resources relative to total resources from the ratio of the sum of the computational resource usage of already deployed containers and the computational resource requirements of the first container to the total computational resources in the machine;
A container deployment method in a multi-cluster environment, characterized in that the deployment cluster is selected in consideration of the priority of used/required resources compared to the total resources.
제5항에 있어서,
상기 배포 클러스터 선정 단계에서는,
상기 후보 클러스터에 포함되는 각 머신에 대하여,
상기 머신에서의 실시간 네트워크 사용량을 고려하여 네트워크 자원 우선도를 산출하고,
상기 네트워크 자원 우선도를 고려하여 상기 제1 컨테이너를 배포할 배포 클러스터를 선정하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 5,
In the step of selecting the distribution cluster,
For each machine included in the candidate cluster,
Calculate network resource priority in consideration of real-time network usage in the machine;
Container distribution method in a multi-cluster environment, characterized in that for selecting a distribution cluster to distribute the first container in consideration of the network resource priority.
제5항에 있어서,
상기 배포 클러스터 선정 단계에서는,
상기 후보 클러스터에 포함되는 각 머신에 대한 상기 우선도의 합계치를 산출하고,
상기 후보 클러스터 각각에 대한 상기 우선도의 합계치 크기를 고려하여 배포 클러스터를 선정하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 5,
In the step of selecting the distribution cluster,
calculating a sum of the priorities for each machine included in the candidate cluster;
A container distribution method in a multi-cluster environment, characterized in that a distribution cluster is selected in consideration of the size of the sum of the priorities for each of the candidate clusters.
제5항에 있어서,
상기 배포 클러스터 선정 단계에서는,
상기 후보 클러스터에 포함되는 각 머신의 우선도 중 가장 큰 우선도를 고려하여 상기 배포 클러스터를 선정하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 5,
In the step of selecting the distribution cluster,
Container distribution method in a multi-cluster environment, characterized in that the distribution cluster is selected in consideration of the highest priority among the priorities of each machine included in the candidate cluster.
제1항에 있어서,
상기 제1 클러스터에는 단일 클러스터 모니터링부가 구비되어,
상기 제1 클러스터에 포함되는 각 머신에 대한 전산 자원 데이터를 수집하여 상기 제1 클러스터에 대한 전산 자원 데이터를 생성하고,
상기 컨테이너 배포 서버에는 상기 제1 클러스터를 포함하는 복수의 클러스터에 대한 전산 자원 데이터를 수집하는 다중 클러스터 모니터링부가 구비되어,
상기 복수의 클러스터에 구비되는 각 단일 클러스터 모니터링부로부터 각 클러스터에 대한 전산 자원 데이터를 수집하여 상기 복수의 클러스터에 대한 전산 자원 데이터를 생성하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 1,
The first cluster is provided with a single cluster monitoring unit,
Computing resource data for each machine included in the first cluster is collected to generate computational resource data for the first cluster;
The container distribution server is provided with a multi-cluster monitoring unit for collecting computing resource data for a plurality of clusters including the first cluster,
A method for distributing containers in a multi-cluster environment, characterized in that generating computational resource data for the plurality of clusters by collecting computational resource data for each cluster from each single cluster monitoring unit provided in the plurality of clusters.
제1항에 있어서,
상기 컨테이너 배포 서버가, 제1 컨테이너를 배포하였으나 정상 구동되지 못한 횟수 또는 상기 제1 컨테이너가 구동 후 비정상 종료된 횟수 중 하나 이상을 파악하고,
이를 고려하여 서비스 품질 지수(QoS)를 산출하여 관리하는 서비스 품질 지수 관리 단계;를 더 포함하는 것을 특징으로 하는 다중 클러스터 환경에서의 컨테이너 배포 방법.
According to claim 1,
The container distribution server determines one or more of the number of times the first container is distributed but not normally run or the number of times the first container is abnormally terminated after running;
A container deployment method in a multi-cluster environment, characterized in that it further comprises; a service quality index management step of calculating and managing a quality of service (QoS) in consideration of this.
컴퓨터에서 제1항 내지 제13항에 기재된 다중 클러스터 환경에서의 컨테이너 배포 방법의 각 단계를 실행시키기 위한 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer readable medium for executing each step of the container distribution method in a multi-cluster environment according to claims 1 to 13 on a computer. 복수의 클러스터가 구비되는 다중 클러스터 환경에서 컨테이너를 배포하는 컨테이너 배포 서버에 있어서,
배포 예정인 제1 컨테이너에서 요구되는 전산 자원 조건을 고려하여 복수의 클러스터 중 배포 가능한 후보 클러스터를 필터링하는 후보 클러스터 필터링부;
상기 제1 컨테이너의 전산 자원 요구량과 상기 후보 클러스터에 포함되는 각 머신의 전산 자원량을 고려하여 상기 후보 클러스터 중 상기 제1 컨테이너가 배포될 제1 클러스터를 선정하여 배포하는 컨테이너 배포부; 및
상기 제1 클러스터에 포함되는 머신 중 상기 제1 클러스터가 구동될 머신을 선택하는 머신 선택부;
를 포함하는 것을 특징으로 하는 컨테이너 배포 서버.
In a container distribution server for distributing containers in a multi-cluster environment in which a plurality of clusters are provided,
a candidate cluster filtering unit filtering distributable candidate clusters among a plurality of clusters in consideration of computational resource conditions required for a first container to be distributed;
a container distribution unit selecting and distributing a first cluster to which the first container is to be distributed among the candidate clusters in consideration of the computational resource requirements of the first container and the computational resource quantity of each machine included in the candidate cluster; and
a machine selection unit that selects a machine to be driven by the first cluster among machines included in the first cluster;
A container deployment server comprising a.
KR1020210106857A 2021-08-12 2021-08-12 Method, apparatus, system and computer program for container distribution in multi-cluster environment KR20230024744A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210106857A KR20230024744A (en) 2021-08-12 2021-08-12 Method, apparatus, system and computer program for container distribution in multi-cluster environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210106857A KR20230024744A (en) 2021-08-12 2021-08-12 Method, apparatus, system and computer program for container distribution in multi-cluster environment

Publications (1)

Publication Number Publication Date
KR20230024744A true KR20230024744A (en) 2023-02-21

Family

ID=85328302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210106857A KR20230024744A (en) 2021-08-12 2021-08-12 Method, apparatus, system and computer program for container distribution in multi-cluster environment

Country Status (1)

Country Link
KR (1) KR20230024744A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180138123A (en) 2017-06-20 2018-12-28 삼성전자주식회사 Container workload scheduler and methods of scheduling container workloads

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180138123A (en) 2017-06-20 2018-12-28 삼성전자주식회사 Container workload scheduler and methods of scheduling container workloads

Similar Documents

Publication Publication Date Title
EP3335119B1 (en) Multi-priority service instance allocation within cloud computing platforms
US20200137151A1 (en) Load balancing engine, client, distributed computing system, and load balancing method
US8087025B1 (en) Workload placement among resource-on-demand systems
US8122446B2 (en) Method and apparatus for provisioning software on a network of computers
US8332873B2 (en) Dynamic application instance placement in data center environments
CN111966500B (en) Resource scheduling method and device, electronic equipment and storage medium
US7774457B1 (en) Resource evaluation for a batch job and an interactive session concurrently executed in a grid computing environment
CN108337109B (en) Resource allocation method and device and resource allocation system
US9218213B2 (en) Dynamic placement of heterogeneous workloads
CN109788046B (en) Multi-strategy edge computing resource scheduling method based on improved bee colony algorithm
US7831972B2 (en) Method and apparatus for scheduling jobs on a network
US9244737B2 (en) Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium
CN110519370B (en) Edge computing resource allocation method based on facility site selection problem
US9184982B2 (en) Balancing the allocation of virtual machines in cloud systems
Ullah et al. Task classification and scheduling based on K-means clustering for edge computing
Li et al. Energy-efficient and QoS-aware model based resource consolidation in cloud data centers
CN110166507B (en) Multi-resource scheduling method and device
CN107977271B (en) Load balancing method for data center integrated management system
CN110837418A (en) High-concurrency web system based on container and implementation method
El Khoury et al. Energy-aware placement and scheduling of network traffic flows with deadlines on virtual network functions
US11842215B2 (en) Autoscaling and throttling in an elastic cloud service
KR102052964B1 (en) Method and system for scheduling computing
Chien et al. An efficient virtual machine migration algorithm based on minimization of migration in cloud computing
US20190253488A1 (en) Transaction process management by dynamic transaction aggregation
Pereira et al. Increasing the efficiency of fog nodes through of priority-based load balancing