KR102318863B1 - Operating method of server providing clound computing service - Google Patents
Operating method of server providing clound computing service Download PDFInfo
- Publication number
- KR102318863B1 KR102318863B1 KR1020190178282A KR20190178282A KR102318863B1 KR 102318863 B1 KR102318863 B1 KR 102318863B1 KR 1020190178282 A KR1020190178282 A KR 1020190178282A KR 20190178282 A KR20190178282 A KR 20190178282A KR 102318863 B1 KR102318863 B1 KR 102318863B1
- Authority
- KR
- South Korea
- Prior art keywords
- container
- virtual machine
- resource
- amount
- cluster
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
컨테이너 및 컨테이너가 할당된 가상머신들을 컨테이너 클러스터를 이용하여 제어함으로써, 클라우드 서비스를 위한 자원을 관리할 수 있는 클라우드 서비스를 제공하는 자원 관리 플랫폼이 개시된다. 실시예에 따른 자원 관리 플랫폼은 가상머신 및 가상머신을 포함하는 컨테이너 클러스터를 생성하고, 가상머신에 컨테이너를 할당하며, 가상머신 및 컨테이너를 모니터링하고, 모니터링 결과에 따라 컨테이너 클러스터를 이용하여 가상머신들 및 컨테이너들을 제어함으로써, 클라우드 서비스를 위한 자원을 관리한다.A resource management platform that provides a cloud service capable of managing a resource for a cloud service by controlling a container and virtual machines to which the container is allocated using a container cluster is disclosed. The resource management platform according to the embodiment creates a virtual machine and a container cluster including the virtual machine, allocates a container to the virtual machine, monitors the virtual machine and the container, and uses the container cluster according to the monitoring result to create virtual machines. And by controlling the containers, the resource for the cloud service is managed.
Description
아래 실시예들은 클라우드 서비스를 제공하는 서버의 동작 방법에 관한 것이다.The following embodiments relate to a method of operating a server that provides a cloud service.
클라우드 컴퓨팅 기술은 인터넷 환경인 클라우드를 통해 컴퓨터의 시스템 자원(resource)를 공유하는 기술로, 유휴 컴퓨팅 자원의 재활용을 목적으로 등장하였다. 클라우드 컴퓨팅 시스템은 가상화 기술을 기반으로 구축되어, 물리적인 컴퓨팅 장치를 하나 이상의 가상 장치로 분리시켜 하나의 장치를 여러 개의 장치처럼 동작시키거나, 여러 개의 장치를 하나의 장치처럼 동작시켜 사용자들에게 유휴 컴퓨팅 자원을 공유자원으로 제공할 수 있다. 최근에는 하드웨어 수준의 가상화 기법에 기반한 가상머신보다 가볍고, 높은 이식성을 갖는 운영체제 수준의 가상화 기법에 기반한 컨테이너가 클라우드 컴퓨팅에 활용되고 있다. 클라우드 컴퓨팅에서 컨테이너는 하이퍼바이저와 게스트 운영체제를 필요로 했던 기존의 가상머신과 달리 호스트의 운영체제 위에서 프로세스를 격리하여 모듈화된 프로그램을 수행하는 것으로, 프로그램이 구동되는 환경의 차이로 인해 발생할 수 있는 프로그램의 오류를 해결할 수 있다.Cloud computing technology is a technology for sharing computer system resources through the cloud, which is an Internet environment, and has emerged for the purpose of recycling idle computing resources. A cloud computing system is built based on virtualization technology, which separates a physical computing device into one or more virtual devices to operate one device as multiple devices, or operates multiple devices as one device to provide users with idle data. Computing resources can be provided as shared resources. Recently, a container based on an operating system-level virtualization technique that is lighter and more portable than a virtual machine based on a hardware-level virtualization technique is being used in cloud computing. In cloud computing, containers perform modularized programs by isolating processes on the host's operating system, unlike the existing virtual machines that required a hypervisor and a guest operating system. error can be resolved.
실시예들은 컨테이너가 할당된 가상머신들을 컨테이너 클러스터를 이용하여 제어함으로써 클라우드 서비스를 위한 자원을 관리할 수 있는 클라우드 서비스를 제공할 수 있다.Embodiments may provide a cloud service capable of managing resources for a cloud service by controlling virtual machines to which containers are allocated using a container cluster.
또한, 실시예들은 컨테이너의 자원 사용량을 모니터링한 결과에 기초하여 가상머신 및 컨테이너를 제어함으로써 클라우드 서비스를 위한 자원을 관리하는 기술을 제공할 수 있다.In addition, embodiments may provide a technology for managing resources for a cloud service by controlling a virtual machine and a container based on a result of monitoring resource usage of the container.
일 측에 따른 클라우드 서비스를 제공하는 서버의 동작 방법은 복수의 가상머신들을 생성하는 단계; 상기 복수의 가상머신들을 포함하는 컨테이너 클러스터를 생성하는 단계; 상기 컨테이너 클러스터를 이용하여, 상기 복수의 가상머신들에 복수의 컨테이너들을 할당하는 단계; 상기 복수의 가상머신들 및 상기 복수의 컨테이너들 중 적어도 하나를 모니터링하는 단계; 및 상기 모니터링 결과에 기초하여 상기 복수의 컨테이너들 및 상기 복수의 가상머신들 중 적어도 하나를 제어함으로써, 클라우드 서비스를 위한 자원을 관리하는 단계를 포함한다.An operating method of a server that provides a cloud service according to one side includes the steps of: creating a plurality of virtual machines; creating a container cluster including the plurality of virtual machines; allocating a plurality of containers to the plurality of virtual machines by using the container cluster; monitoring at least one of the plurality of virtual machines and the plurality of containers; and managing resources for a cloud service by controlling at least one of the plurality of containers and the plurality of virtual machines based on the monitoring result.
상기 모니터링 결과는 컨테이너 단위의 자원 사용량을 포함하고, 상기 자원을 관리하는 단계는 상기 컨테이너 클러스터를 이용하여, 상기 컨테이너 단위의 자원 사용량에 따라 해당하는 컨테이너의 크기를 조절하는 단계를 포함할 수 있다.The monitoring result may include resource usage in units of containers, and the managing of the resources may include adjusting the size of a corresponding container according to the resource usage in units of containers using the container cluster.
상기 자원을 관리하는 단계는 제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계; 제2 가상머신이 점유하는 자원들 중 상기 제2 가상머신에 할당된 제2 컨테이너에 의하여 사용되지 않는 제2 자원의 양을 획득하는 단계; 상기 제1 자원의 양과 상기 제2 자원의 양을 비교함으로써, 상기 제1 컨테이너의 이식 여부를 판단하는 단계; 및 상기 판단 결과에 따라, 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는 단계를 포함할 수 있다.The managing of the resource may include: acquiring an amount of a first resource used by a first container allocated to the first virtual machine among resources occupied by the first virtual machine; acquiring an amount of a second resource that is not used by a second container allocated to the second virtual machine among the resources occupied by the second virtual machine; determining whether to transplant the first container by comparing the amount of the first resource with the amount of the second resource; and transferring the first container from the first virtual machine to the second virtual machine using the container cluster according to the determination result.
상기 자원을 관리하는 단계는 상기 복수의 가상머신들 중 컨테이너가 할당되지 않은 가상머신을 식별하는 단계; 상기 식별된 가상머신을 상기 컨테이너 클러스터로부터 제거하는 단계; 및 상기 식별된 가상머신을 해제하는 단계를 포함할 수 있다.The managing of the resource may include: identifying a virtual machine to which a container is not allocated among the plurality of virtual machines; removing the identified virtual machine from the container cluster; and releasing the identified virtual machine.
상기 자원을 관리하는 단계는 제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계; 상기 제1 자원의 양에 대응하는 양의 제2 자원을 점유하는 제2 가상머신을 생성하는 단계; 상기 제2 가상머신을 상기 컨테이너 클러스터에 포함시키는 단계; 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는 단계를 포함할 수 있다.The managing of the resource may include: acquiring an amount of a first resource used by a first container allocated to the first virtual machine among resources occupied by the first virtual machine; generating a second virtual machine occupying an amount of a second resource corresponding to the amount of the first resource; including the second virtual machine in the container cluster; and transferring the first container from the first virtual machine to the second virtual machine using the container cluster.
상기 컨테이너의 크기는 상기 해당하는 컨테이너가 할당된 가상머신이 점유하는 자원의 범위 내에서 조절될 수 있다.The size of the container may be adjusted within a range of resources occupied by the virtual machine to which the corresponding container is allocated.
상기 제1 자원의 양은 상기 제1 가상머신이 점유하는 자원들의 양보다 같거나 작을 수 있다.The amount of the first resource may be less than or equal to the amount of resources occupied by the first virtual machine.
상기 컨테이너의 크기를 조절하는 단계는 상기 컨테이너의 자원 사용량이 없다는 판단에 따라, 상기 컨테이너를 삭제하는 단계를 포함할 수 있다.Adjusting the size of the container may include deleting the container according to a determination that there is no resource usage of the container.
상기 제1 컨테이너의 이식 여부를 판단하는 단계는 상기 제1 자원의 양과 상기 제2 자원의 양이 같은 경우, 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하기로 판단하는 단계; 및 상기 제1 자원의 양이 상기 제2 자원의 양보다 큰 경우, 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하지 않기로 판단하는 단계를 포함할 수 있다.The step of determining whether to transplant the first container includes determining whether to transplant the first container from the first virtual machine to the second virtual machine when the amount of the first resource and the amount of the second resource are the same step; and when the amount of the first resource is greater than the amount of the second resource, determining not to transplant the first container from the first virtual machine to the second virtual machine.
상기 제2 가상머신을 생성하는 단계는 상기 제1 자원의 양을 미리 정해진 기준의 양과 비교하는 단계; 상기 제1 자원의 양이 상기 미리 정해진 기준의 양보다 작은 경우, 상기 제2 가상머신을 생성하기로 판단하는 단계; 및 상기 판단에 기초하여 상기 제2 가상머신을 생성하는 단계를 포함할 수 있다.The generating of the second virtual machine may include: comparing the amount of the first resource with an amount of a predetermined reference; determining to create the second virtual machine when the amount of the first resource is less than the amount of the predetermined reference; and generating the second virtual machine based on the determination.
상기 자원은 프로세싱 자원, 메모리 자원, 디스크 자원 및 네트워크 자원 중 적어도 하나를 포함할 수 있다.The resource may include at least one of a processing resource, a memory resource, a disk resource, and a network resource.
일 측에 따른 적어도 하나의 컨테이너가 할당된 가상머신을 포함하는 컨테이너 클러스터를 이용하여, 클라우드 서비스를 위한 자원을 관리하는 방법은 상기 컨테이너의 자원 사용량을 모니터링하는 단계를 포함하고, 상기 컨테이너 클러스터를 이용하여, 상기 컨테이너의 자원 사용량에 따라 상기 컨테이너의 크기를 조절하는 단계; 상기 컨테이너 클러스터를 이용하여, 상기 컨테이너의 자원 사용량에 따라 상기 컨테이너를 상기 컨테이너 클러스터에 포함된 다른 가상머신에 이식하는 단계; 상기 컨테이너의 자원 사용량에 따라 상기 가상머신을 상기 컨테이너 클러스터로부터 제거하고, 상기 가상머신을 해제하는 단계; 및 상기 컨테이너의 자원 사용량에 대응하는 양을 점유하는 가상머신을 생성하고, 상기 컨테이너 클러스터에 포함시키는 단계 중 적어도 하나를 더 포함한다.A method of managing resources for a cloud service by using a container cluster including a virtual machine to which at least one container is allocated according to one side includes monitoring resource usage of the container, and using the container cluster adjusting the size of the container according to the resource usage of the container; using the container cluster and transplanting the container to another virtual machine included in the container cluster according to the resource usage of the container; removing the virtual machine from the container cluster according to the resource usage of the container and releasing the virtual machine; and generating a virtual machine occupying an amount corresponding to the resource usage of the container and including the virtual machine in the container cluster.
상기 컨테이너를 상기 컨테이너 클러스터에 포함된 다른 가상머신에 이식하는 단계는 제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계; 제2 가상머신이 점유하는 자원들 중 상기 제2 가상머신에 할당된 제2 컨테이너에 의하여 사용되지 않는 제2 자원의 양을 획득하는 단계; 상기 제1 자원의 양과 상기 제2 자원의 양을 비교함으로써, 상기 제1 컨테이너의 이식 여부를 판단하는 단계; 및 상기 판단 결과에 따라, 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는 단계를 포함할 수 있다.The step of transplanting the container to another virtual machine included in the container cluster includes obtaining an amount of a first resource used by the first container allocated to the first virtual machine among resources occupied by the first virtual machine. step; acquiring an amount of a second resource that is not used by a second container allocated to the second virtual machine among the resources occupied by the second virtual machine; determining whether to transplant the first container by comparing the amount of the first resource with the amount of the second resource; and transferring the first container from the first virtual machine to the second virtual machine using the container cluster according to the determination result.
상기 가상머신을 상기 컨테이너 클러스터로부터 제거하고, 상기 가상머신을 해제하는 단계는 상기 컨테이너 클러스터에 포함된 복수의 가상머신들 중 컨테이너가 할당되지 않은 가상머신을 식별하는 단계; 상기 식별된 가상머신을 상기 컨테이너 클러스터로부터 제거하는 단계; 및 상기 식별된 가상머신을 해제하는 단계The removing of the virtual machine from the container cluster and releasing the virtual machine may include: identifying a virtual machine to which a container is not allocated among a plurality of virtual machines included in the container cluster; removing the identified virtual machine from the container cluster; and releasing the identified virtual machine.
를 포함할 수 있다.may include.
상기 컨테이너의 자원 사용량에 대응하는 양을 점유하는 가상머신을 생성하고, 상기 컨테이너 클러스터에 포함시키는 단계는 제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계; 상기 제1 자원의 양에 대응하는 양의 제2 자원을 점유하는 제2 가상머신을 생성하는 단계; 상기 제2 가상머신을 상기 컨테이너 클러스터에 포함시키는 단계; 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는 단계를 포함할 수 있다.The step of creating a virtual machine occupying an amount corresponding to the resource usage of the container and including it in the container cluster is used by the first container allocated to the first virtual machine among the resources occupied by the first virtual machine. obtaining an amount of a first resource being generating a second virtual machine occupying an amount of a second resource corresponding to the amount of the first resource; including the second virtual machine in the container cluster; and transferring the first container from the first virtual machine to the second virtual machine using the container cluster.
일측에 따른 클라우드 서비스를 제공하는 장치는 복수의 가상머신들을 포함하고, 상기 복수의 가상머신들에 복수의 컨테이너를 할당하며, 상기 복수의 컨테이너들 및 상기 복수의 가상머신들 중 적어도 하나를 제어하는 컨테이너 클러스터를 구동하고, 복수의 가상머신들을 생성하고, 상기 복수의 가상머신들 및 상기 복수의 컨테이너들 중 적어도 하나를 모니터링하며, 상기 모니터링 결과에 따라 상기 컨테이너 클러스터를 이용하여 클라우드 서비스를 위한 자원을 관리하는, 적어도 하나의 프로세서를 포함한다.An apparatus for providing a cloud service according to one side includes a plurality of virtual machines, allocating a plurality of containers to the plurality of virtual machines, and controlling at least one of the plurality of containers and the plurality of virtual machines Drive a container cluster, create a plurality of virtual machines, monitor at least one of the plurality of virtual machines and the plurality of containers, and use the container cluster according to the monitoring result to provide resources for a cloud service managing, including at least one processor.
상기 모니터링 결과는 컨테이너 단위의 자원 사용량을 포함하고, 상기 프로세서는 상기 컨테이너 클러스터를 이용하여, 상기 컨테이너 단위의 자원 사용량에 따라 해당하는 컨테이너의 크기를 조절할 수 있다.The monitoring result may include resource usage in units of containers, and the processor may use the container cluster to adjust the size of a corresponding container according to resource usage in units of containers.
상기 프로세서는 제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하고, 제2 가상머신이 점유하는 자원들 중 상기 제2 가상머신에 할당된 제2 컨테이너에 의하여 사용되지 않는 제2 자원의 양을 획득하여, 상기 제1 자원의 양과 상기 제2 자원의 양을 비교함으로써, 상기 제1 컨테이너의 이식 여부를 판단하고, 상기 판단 결과에 따라, 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식할 수 있다.The processor acquires an amount of a first resource used by the first container allocated to the first virtual machine among the resources occupied by the first virtual machine, and the second among the resources occupied by the second virtual machine determining whether to transplant the first container by obtaining an amount of a second resource that is not used by a second container allocated to a virtual machine, and comparing the amount of the first resource with the amount of the second resource; According to the determination result, the first container may be transferred from the first virtual machine to the second virtual machine using the container cluster.
상기 프로세서는 상기 복수의 가상머신들 중 컨테이너가 할당되지 않은 가상머신을 식별하고, 상기 식별된 가상머신을 상기 컨테이너 클러스터로부터 제거하며, 상기 식별된 가상머신을 해제할 수 있다.The processor may identify a virtual machine to which a container is not allocated among the plurality of virtual machines, remove the identified virtual machine from the container cluster, and release the identified virtual machine.
상기 프로세서는 제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하고, 상기 제1 자원의 양에 대응하는 양의 제2 자원을 점유하는 제2 가상머신을 생성하며, 상기 제2 가상머신을 상기 컨테이너 클러스터에 포함시키고, 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식할 수 있다.The processor acquires an amount of a first resource used by a first container allocated to the first virtual machine among the resources occupied by the first virtual machine, and a second amount corresponding to the amount of the first resource. creating a second virtual machine occupying resources, including the second virtual machine in the container cluster, and transferring the first container from the first virtual machine to the second virtual machine using the container cluster can
도 1은 일실시예에 따른 클라우드 서비스를 제공하는 서버의 동작 방법을 설명하기 위한 도면.
도 2는 실시예에 따른 컨테이너 클러스터를 이용하여 클라우드 서비스를 위한 자원을 관리하는 방법의 전체적인 과정을 도시한 도면.
도 3 내지 도 9은 실시예에 따른 컨테이너 클러스터를 이용하여 클라우드 서비스를 위한 자원을 관리하는 방법의 각 단계를 구체적으로 설명하기 위한 도면들.1 is a view for explaining a method of operating a server that provides a cloud service according to an embodiment;
2 is a diagram illustrating an overall process of a method for managing resources for a cloud service using a container cluster according to an embodiment;
3 to 9 are diagrams for specifically explaining each step of a method for managing resources for a cloud service using a container cluster according to an embodiment.
본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실시예들은 다양한 다른 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.Specific structural or functional descriptions disclosed in this specification are merely illustrative for the purpose of describing embodiments according to technical concepts, and the embodiments may be embodied in various other forms and are limited to the embodiments described herein. doesn't happen
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various elements, but these terms should be understood only for the purpose of distinguishing one element from another element. For example, a first component may be termed a second component, and similarly, a second component may also be termed a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~간의에"와 "바로~간의에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being “connected” or “connected” to another component, it is understood that the other component may be directly connected or connected to the other component, but other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that no other element is present in the middle. Expressions describing the relationship between elements, for example, “between” and “between” or “neighboring to” and “directly adjacent to”, etc. should be interpreted similarly.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, and includes one or more other features or numbers, It should be understood that the possibility of the presence or addition of steps, operations, components, parts or combinations thereof is not precluded in advance.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present specification. does not
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Like reference numerals in each figure indicate like elements.
도 1은 일실시예에 따른 클라우드 서비스를 제공하는 서버의 동작 방법을 설명하기 위한 도면이다.1 is a diagram for explaining a method of operating a server that provides a cloud service according to an exemplary embodiment.
도 1을 참조하면, 일실시예에 따른 클라우드 서비스를 제공하는 서버의 동작 방법은 복수의 가상머신들을 생성하는 단계(110), 복수의 가상머신들을 포함하는 컨테이너 클러스터를 생성하는 단계(120), 컨테이너 클러스터를 이용하여, 복수의 가상머신들에 복수의 컨테이너들을 할당하는 단계(130), 복수의 가상머신들 및 복수의 컨테이너들 중 적어도 하나를 모니터링하는 단계(140), 및 복수의 컨테이너들 및 복수의 가상머신들 중 적어도 하나를 제어함으로써, 클라우드 서비스를 위한 자원을 관리하는 단계(150)를 포함한다.Referring to FIG. 1 , a method of operating a server providing a cloud service according to an embodiment includes generating a plurality of virtual machines ( 110 ), creating a container cluster including the plurality of virtual machines ( 120 ), Allocating a plurality of containers to a plurality of virtual machines using a container cluster (130), monitoring at least one of the plurality of virtual machines and the plurality of containers (140), and a plurality of containers and and managing ( 150 ) resources for a cloud service by controlling at least one of a plurality of virtual machines.
클라우드 서비스는 사업자가 인터넷 환경인 클라우드를 통해 가상화된 컴퓨팅 자원을 사용자에게 제공하는 서비스로, 예를 들어 사업자가 하드웨어 인프라와 소프트웨어를 제공하는 SaaS(Software as a Service), 사업자가 하드웨어 인프라에서 표준화된 플랫폼을 제공하는 PaaS(Platform as a Service) 및 사업자가 하드웨어 인프라를 제공하는 IaaS(Infrastructure as a Service)를 포함할 수 있다. 이하에서 설명하는 실시예에 따른 클라우드 서비스는 사업자가 클라우드를 통해 하드웨어 인프라를 제공하는 IaaS 서비스에 해당할 수 있다. 하드웨어 인프라는 가상화된 컴퓨팅 자원을 의미하는 것으로, 예를 들어 프로세싱 자원, 메모리 자원, 디스크 자원 및 네트워크 자원 등을 포함할 수 있다. 프로세싱 자원은 CPU(Central Processing Unit), GPU(Graphic Processing Unit), AI-GPU(Artificial Intelligence-GPU), NPU(Neural Processing Unit) 등을 포함할 수 있다. 이하에서 가상화된 컴퓨팅 자원은 컴퓨팅 자원 또는 자원으로 간략하게 지칭될 수 있다.A cloud service is a service in which an operator provides virtualized computing resources to users through the cloud, which is an Internet environment. For example, SaaS (Software as a Service), in which an operator provides hardware infrastructure and software, and It may include Platform as a Service (PaaS) providing a platform and Infrastructure as a Service (IaaS) in which an operator provides hardware infrastructure. The cloud service according to the embodiment described below may correspond to an IaaS service in which an operator provides hardware infrastructure through the cloud. The hardware infrastructure refers to virtualized computing resources, and may include, for example, processing resources, memory resources, disk resources, and network resources. The processing resource may include a central processing unit (CPU), a graphic processing unit (GPU), an artificial intelligence-GPU (AI-GPU), a neural processing unit (NPU), and the like. Hereinafter, a virtualized computing resource may be briefly referred to as a computing resource or resource.
일실시예에 따른 복수의 가상머신들을 생성하는 단계(110)는 물리머신에 가상화된 컴퓨팅 자원이 할당된 가상머신을 복수 개 생성하는 단계에 해당할 수 있다. 가상머신은 물리적인 하드웨어를 다중화하여 하나의 하드웨어에서 복수 개의 서로 다른 운영 체제가 동작하는 것을 가능하게 하는 가상 컴퓨터로, 예를 들어 물리머신에서 하이퍼바이저를 통해 각 운영 체제를 실행하는 시스템 가상머신에 해당할 수 있다. 가상머신은 생성 시 정해진 기준에 대응하는 물리머신의 컴퓨팅 자원 일부를 점유할 수 있으며, 생성된 이후에는 특정한 상황(예를 들어, 가상머신의 재부팅 등) 외에 점유하는 컴퓨팅 자원을 변경할 수 없다.Creating a plurality of
일실시예에 따른 복수의 가상머신들을 포함하는 컨테이너 클러스터를 생성하는 단계(120)는 단계(110)에서 생성된 복수의 가상머신들을 노드로 구성하여 관리하는 컨테이너 클러스터를 생성하는 단계에 해당할 수 있다. 컨테이너 클러스터는 컨테이너가 할당된 개별 서버들을 하나로 통합하여 관리하는 컨테이너 오케스트레이터에 해당하는 소프트웨어(예를 들어, 미들 웨어)를 포함할 수 있다. 컨테이너 클러스터는 개별 서버마다 하나 혹은 그 이상의 가상머신을 할당할 수 있다. The
컨테이너 클러스터는 컨테이너가 할당된 복수의 가상머신들을 노드로 구성하여, 가상머신에 할당된 컨테이너의 크기를 조절하거나 컨테이너 클러스터에 포함된 다른 가상머신으로 컨테이너를 이식하는 기능을 제공할 수 있다. 노드는 가상머신의 식별정보를 포함하고 각 가상머신에 할당된 컨테이너(들)의 정보 및 실행을 관리하는 모듈로, 예를 들어 가상머신의 주소, 가상머신에 할당된 자원의 양 등의 정보를 포함하고, 가상머신에 할당된 컨테이너의 크기 및 실행을 관리하는 모듈에 해당할 수 있다. 노드는 소프트웨어 모듈, 하드웨어 모듈, 혹은 이들의 조합으로 구현될 수 있다.A container cluster may configure a plurality of virtual machines to which containers are allocated as nodes, and may provide a function of adjusting the size of a container allocated to a virtual machine or porting a container to another virtual machine included in the container cluster. A node is a module that includes identification information of virtual machines and manages information and execution of container(s) allocated to each virtual machine. For example, information such as the address of the virtual machine and the amount of resources allocated to the virtual machine. It may correspond to a module that includes and manages the size and execution of containers allocated to virtual machines. A node may be implemented as a software module, a hardware module, or a combination thereof.
일실시예에 따른 컨테이너 클러스터를 이용하여, 복수의 가상머신들에 복수의 컨테이너들을 할당하는 단계(130)는 단계(120)에서 생성된 컨테이너 클러스터를 이용하여, 컨테이너 클러스터에 포함된 복수의 가상머신들에 하나 이상의 컨테이너를 할당하는 단계에 해당할 수 있다. 실시예에 따른 하나의 컨테이너는 하나의 가상머신에 대응하여 할당될 수 있다. 실시예에 따른 컨테이너 클러스터에 포함된 하나의 가상머신에는 하나 이상의 컨테이너가 할당될 수도 있고, 컨테이너가 할당되지 않을 수도 있다. 즉, 컨테이너에 대응하는 가상머신은 존재하여야 하고, 가상머신에 대응하는 컨테이너는 하나일 수도 있고, 복수일 수도 있으며, 존재하지 않을 수도 있다. In the
실시예에 따를 때, 가상머신에 할당된 컨테이너는 가상머신의 운영 체제를 이용하며, 가상머신이 점유하는 자원 중 적어도 일부를 사용하여 프로그램을 실행시킬 수 있다. 일실시예에 따른 컨테이너에 의하여 사용되는 자원의 양은 해당 컨테이너가 할당된 가상머신이 점유하는 자원의 양보다 작거나 같을 수 있다. 다시 말해서, 일실시예에 따른 컨테이너는 해당 컨테이너가 할당된 가상머신이 점유하는 자원의 범위 내에서 자원을 사용할 수 있다. According to an embodiment, the container allocated to the virtual machine may use the operating system of the virtual machine, and a program may be executed using at least some of the resources occupied by the virtual machine. The amount of resources used by the container according to an embodiment may be less than or equal to the amount of resources occupied by the virtual machine to which the corresponding container is allocated. In other words, a container according to an embodiment may use a resource within a range of resources occupied by a virtual machine to which the corresponding container is allocated.
일실시예에 따를 때, 가상머신에 컨테이너를 할당하는 단계(130)에서 컨테이너가 사용 가능한 자원의 양은 컨테이너의 크기로 설정될 수 있다. 실시예에 따를 때, 컨테이너가 사용 가능한 자원의 양인 컨테이너의 크기는 컨테이너에 의해서 사용되는 자원의 양과 구분되는 개념이다. 예를 들어, 컨테이너의 크기가 CPU 코어 6개로 설정된 컨테이너가 생성된 경우, 해당 컨테이너에 의해서 사용될 수 있는 CPU 코어의 개수는 6개이고, 해당 컨테이너에 의해서 실제 사용되는 CPU 코어의 개수는 6개 이하일 수 있다. 이하에서 상술하겠으나, 일실시예에 따를 때, 가상머신에 컨테이너가 할당될 때 설정된 컨테이너의 크기는 해당하는 컨테이너가 할당된 가상머신이 점유하는 자원의 범위 내에서 조절될 수 있다.According to an embodiment, in
일실시예에 따른 복수의 가상머신들 및 복수의 컨테이너들 중 적어도 하나를 모니터링하는 단계(140)는 단계(110)에서 생성된 복수의 가상머신들 및 단계(130)에서 복수의 가상머신들에 할당된 복수의 컨테이너들 중 적어도 하나를 모니터링하는 단계에 해당할 수 있다. 일실시예에서 모니터링 결과는 컨테이너 단위의 자원 사용량을 포함할 수 있다. 실시예에 따른 컨테이너 단위의 자원 사용량은 복수의 가상머신들에 할당된 복수의 컨테이너들 각각에 의해서 사용되는 자원의 양에 해당할 수 있다. 예를 들어, 컨테이너에 의해서 사용되는 CPU 코어의 개수, GPU 카드의 개수, 메모리 용량, 네트워크 대역폭 등이 모니터링 결과에 해당할 수 있다.In the
일실시예에 따른 복수의 컨테이너들 및 복수의 가상머신들 중 적어도 하나를 제어함으로써, 클라우드 서비스를 위한 자원을 관리하는 단계(150)는 단계(140)에 따른 모니터링 결과에 기초하여 복수의 컨테이너들 및 복수의 가상머신들 중 적어도 하나를 제어함으로써, 클라우드 서비스를 위한 자원을 관리하는 단계에 해당할 수 있다. By controlling at least one of a plurality of containers and a plurality of virtual machines according to an embodiment, the step of managing a resource for a
일실시예에 따른 단계(150)는 컨테이너 클러스터를 이용하여, 단계(140)의 모니터링 결과에 포함되는 컨테이너 단위의 자원 사용량에 따라 해당하는 컨테이너의 크기를 조절하는 단계를 포함할 수 있다. 상술한 바와 같이, 실시예에 따른 컨테이너의 크기는 컨테이너에 의해서 사용 가능한 자원의 양에 해당할 수 있다. 실시예에 따를 때, 컨테이너의 크기를 조절하는 단계는 컨테이너의 크기를 컨테이너에 의해서 사용되는 자원의 양으로 변경하는 단계에 해당할 수 있다. 실시예에 따른 컨테이너의 크기를 조절하는 단계는 컨테이너에 의해서 사용되는 자원이 없는 경우 컨테이너 클러스터를 이용하여 해당 컨테이너를 삭제하는 단계를 포함할 수 있다. 컨테이너의 크기를 조절하는 동작에 관한 보다 상세한 내용은 도 3 및 도 4를 통하여 후술한다.Step 150 according to an embodiment may include adjusting the size of a corresponding container using a container cluster according to the resource usage of the container unit included in the monitoring result of
일실시예에 따른 단계(150)는 제1 가상머신이 점유하는 자원들 중 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계, 제2 가상머신이 점유하는 자원들 중 제2 가상머신에 할당된 제2 컨테이너에 의하여 사용되지 않는 제2 자원의 양을 획득하는 단계, 제1 자원의 양과 제2 자원의 양을 비교함으로써, 제1 컨테이너의 이식 여부를 판단하는 단계, 및 판단 결과에 따라, 컨테이너 클러스터를 이용하여 제1 컨테이너를 제1 가상머신으로부터 제2 가상머신으로 이식하는 단계를 포함할 수 있다. 실시예에 따른 제1 가상머신 및 제2 가상머신 각각은 컨테이너 클러스터에 포함된 가상머신들 중 하나의 가상머신에 해당할 수 있다. 일실시예에 따를 때, 제1 컨테이너를 제1 가상머신으로부터 제2 가상머신으로 이식하는 것은 제1 가상머신에서 제1 컨테이너를 삭제하고, 제2 가상머신에 제1 자원의 양에 대응하는 크기의 제2 컨테이너를 할당하여 제1 컨테이너가 수행하는 프로그램을 제2 컨테이너에서 수행하는 것을 의미할 수 있다. 실시예에 따른 제1 컨테이너의 이식 여부를 판단하는 단계는 제1 자원의 양과 제2 자원의 양이 같은 경우, 제1 컨테이너를 제1 가상머신으로부터 제2 가상머신으로 이식하기로 판단하는 단계 및 제1 자원의 양이 제2 자원의 양보다 큰 경우, 제1 컨테이너를 제1 가상머신으로부터 제2 가상머신으로 이식하지 않기로 판단하는 단계를 포함할 수 있다. 일실시예에 따를 때, 제1 자원의 양이 제2 자원의 양보다 작은 경우 미리 정해진 기준에 따라 이식 여부를 판단할 수 있다. 예를 들어, 제1 자원의 양과 제2 자원의 양의 차이가 제2 가상머신이 점유하는 자원의 양의 특정 비율 이하인 경우 제1 컨테이너를 이식하는 판단을 할 수 있다. 컨테이너를 이식하는 동작에 관한 보다 상세한 내용은 도 4 및 도 5를 통하여 후술한다.Step 150 according to an embodiment includes obtaining an amount of a first resource used by a first container allocated to the first virtual machine among the resources occupied by the first virtual machine, occupied by the second virtual machine obtaining an amount of a second resource that is not used by a second container allocated to a second virtual machine among resources that The method may include determining and, according to the determination result, transplanting the first container from the first virtual machine to the second virtual machine using a container cluster. Each of the first virtual machine and the second virtual machine according to the embodiment may correspond to one virtual machine among virtual machines included in the container cluster. According to an embodiment, the porting of the first container from the first virtual machine to the second virtual machine deletes the first container from the first virtual machine, and a size corresponding to the amount of the first resource in the second virtual machine. It may mean that a program executed by the first container is executed in the second container by allocating the second container of . The step of determining whether to transplant the first container according to the embodiment includes: when the amount of the first resource and the amount of the second resource are the same, determining to transplant the first container from the first virtual machine to the second virtual machine; When the amount of the first resource is greater than the amount of the second resource, the method may include determining not to transplant the first container from the first virtual machine to the second virtual machine. According to an embodiment, when the amount of the first resource is less than the amount of the second resource, whether to transplant may be determined according to a predetermined criterion. For example, when the difference between the amount of the first resource and the amount of the second resource is less than or equal to a specific ratio of the amount of the resource occupied by the second virtual machine, it may be determined to transplant the first container. More details on the operation of transplanting the container will be described later with reference to FIGS. 4 and 5 .
일실시예에 따른 단계(150)는 복수의 가상머신들 중 컨테이너가 할당되지 않은 가상머신을 식별하는 단계, 식별된 가상머신을 컨테이너 클러스터로부터 제거하는 단계, 및 식별된 가상머신을 해제하는 단계를 포함할 수 있다. 일실시예에 따른 컨테이너 클러스터는 컨테이너 클러스터에 포함된 가상머신(들)의 컨테이너 할당 여부의 정보를 획득하고, 컨테이너가 할당되지 않은 가상머신을 제거하는 기능을 수행할 수 있다. 실시예에 따를 때, 가상머신을 컨테이너 클러스터로부터 제거하는 단계는 컨테이너 클러스터에 포함된 가상머신에 대응하는 노드를 삭제하는 단계에 해당할 수 있다. 실시예에 따를 때, 가상머신을 해제하는 것은 물리머신의 자원에 대한 가상머신의 점유를 해제하는 것을 의미할 수 있다. 실시예에서 가상머신에 의한 점유가 해제된 자원은 물리머신에 의해 사용될 수 있으며, 새로운 가상머신이 생성될 때 새로운 가상머신에 의해 점유될 수 있다. 가상머신을 해제하는 동작에 관한 보다 상세한 내용은 도 5 및 도 6을 통하여 후술한다.Step 150 according to an embodiment includes the steps of identifying a virtual machine to which a container is not assigned among a plurality of virtual machines, removing the identified virtual machine from the container cluster, and releasing the identified virtual machine. may include The container cluster according to an embodiment may obtain information on whether to allocate containers to virtual machine(s) included in the container cluster, and perform a function of removing virtual machines to which containers are not allocated. According to an embodiment, the step of removing the virtual machine from the container cluster may correspond to the step of deleting a node corresponding to the virtual machine included in the container cluster. According to an embodiment, releasing the virtual machine may mean releasing the virtual machine's occupation of the resources of the physical machine. In an embodiment, the resource released by the virtual machine may be used by the physical machine, and may be occupied by the new virtual machine when a new virtual machine is created. More details on the operation of releasing the virtual machine will be described later with reference to FIGS. 5 and 6 .
일실시예에 따른 단계(150)는 제1 가상머신이 점유하는 자원들 중 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계, 제1 자원의 양에 대응하는 양의 제2 자원을 점유하는 제2 가상머신을 생성하는 단계, 제2 가상머신을 컨테이너 클러스터에 포함시키는 단계, 컨테이너 클러스터를 이용하여 제1 컨테이너를 제1 가상머신으로부터 제2 가상머신으로 이식하는 단계를 포함할 수 있다. 실시예에 따른 제1 자원의 양에 대응하는 양의 제2 자원을 점유하는 제2 가상머신을 생성하는 단계는 제1 자원의 양이 해당 컨테이너가 할당된 가상머신이 점유하는 자원의 양보다 일정 기준 이상 작은 경우 수행될 수 있다. 제2 가상머신을 컨테이너 클러스터에 포함시키는 단계는 컨테이너 클러스터에 제2 가상머신에 대응하는 노드의 구성을 포함시키는 단계에 해당할 수 있다. 새로운 가상머신을 생성하여 컨테이너를 이식하는 동작에 관한 보다 상세한 내용은 도 7 및 도 8을 통하여 후술한다.Step 150 according to an embodiment may include obtaining an amount of a first resource used by a first container allocated to the first virtual machine among the resources occupied by the first virtual machine, depending on the amount of the first resource. creating a second virtual machine occupying a second resource of a corresponding amount, including the second virtual machine in a container cluster, and transferring the first container from the first virtual machine to the second virtual machine by using the container cluster It may include a step of transplanting. In the step of generating the second virtual machine occupying the second resource in an amount corresponding to the amount of the first resource according to the embodiment, the amount of the first resource is constant than the amount of the resource occupied by the virtual machine to which the corresponding container is allocated. It can be performed if it is smaller than the standard. The step of including the second virtual machine in the container cluster may correspond to the step of including the configuration of a node corresponding to the second virtual machine in the container cluster. A more detailed operation of creating a new virtual machine and porting a container will be described later with reference to FIGS. 7 and 8 .
도 2는 실시예에 따른 컨테이너 클러스터를 이용하여 클라우드 서비스를 위한 자원을 관리하는 방법의 전체적인 과정을 도시한 도면이다.2 is a diagram illustrating an overall process of a method for managing resources for a cloud service using a container cluster according to an embodiment.
도 2를 참조할 때, 실시예에 따른 컨테이너 클러스터를 이용하여 클라우드 서비스를 위한 자원을 관리하는 방법은 가상머신 및 컨테이너를 모니터링하는 단계(210)를 포함하고, 모니터링 결과에 기초하여 컨테이너의 크기를 조절하는 단계(220), 컨테이너를 이식하는 단계(230), 가상머신을 해제하는 단계(240), 및 가상머신을 생성하는 단계(250) 중 적어도 하나를 더 포함할 수 있다. 예를 들어, 실시예에 따른 클라우드 서비스를 위한 자원을 관리하는 방법은 가상머신 및 컨테이너를 모니터링하는 단계(210) 및 컨테이너의 크기를 조절하는 단계(220)를 포함할 수 있고, 가상머신 및 컨테이너를 모니터링하는 단계(210), 컨테이너의 크기를 조절하는 단계(220) 및 컨테이너를 이식하는 단계(230)를 포함할 수 있다.Referring to FIG. 2 , a method of managing resources for a cloud service using a container cluster according to an embodiment includes monitoring a virtual machine and a container ( 210 ), and determining the size of the container based on the monitoring result. The method may further include at least one of adjusting 220 , porting a
도 3 내지 도 9은 실시예에 따른 컨테이너 클러스터를 이용하여 클라우드 서비스를 위한 자원을 관리하는 방법의 각 단계를 구체적으로 설명하기 위한 도면이다. 도 3 내지 도 9에서는 CPU를 컴퓨팅 자원의 한 예로 들어 설명하고 있으나, 실시예에 따른 컴퓨팅 자원에는 CPU 뿐만 아니라 메모리, 네트워크 등 다양한 컴퓨팅 자원이 포함될 수 있다. 도 3 내지 도 9에서 설명하는 실시예에 따를 때, 클라우드 서비스를 위한 자원을 관리하는 방법은 가상머신 및 컨테이너를 모니터링하는 단계(210), 컨테이너의 크기를 조절하는 단계(220), 컨테이너를 이식하는 단계(230), 가상머신을 해제하는 단계(240), 가상머신을 생성하는 단계(250), 컨테이너를 이식하는 단계(230), 및 가상머신을 해제하는 단계(240)를 포함할 수 있다.3 to 9 are diagrams for specifically explaining each step of a method for managing resources for a cloud service using a container cluster according to an embodiment. Although the CPU is described as an example of the computing resource in FIGS. 3 to 9 , the computing resource according to the embodiment may include not only the CPU but also various computing resources such as a memory and a network. According to the embodiment described in FIGS. 3 to 9 , the method for managing resources for a cloud service includes monitoring a virtual machine and a container ( 210 ), adjusting the size of the container ( 220 ), and transplanting the container. It may include a
도 3을 참조할 때, 물리머신(310)에 복수의 가상머신(321, 322, 323)들이 생성될 수 있으며, 가상머신(321, 322, 323)은 생성 시 정해진 기준에 대응하는 컴퓨팅 자원을 점유할 수 있다. 예를 들어, CPU 코어 6개를 사용하는 가상머신을 생성한 경우 가상머신(321, 322, 323)은 물리머신(310)의 CPU 코어 중 6개의 CPU 코어를 점유하게 되며, 하나의 가상머신이 점유하고 있는 컴퓨팅 자원은 동일한 물리머신에 생성된 다른 가상머신이 점유할 수 없다. 실시예에 따른 컨테이너(331, 332, 333)는 가상머신(321, 322, 323)에 할당될 수 있으며, 가상머신에 할당된 컨테이너는 해당 가상머신이 점유하는 컴퓨팅 자원을 사용할 수 있다. 예를 들어, 가상머신(321)에 할당된 컨테이너(331)는 가상머신(321)이 점유하고 있는 CPU를 사용할 수 있으며, 다른 가상머신(322, 323)이 점유하고 있는 CPU 및 가상머신이 점유하고 있지 않은 CPU는 사용할 수 없다.Referring to FIG. 3 , a plurality of
일실시예에 따른 가상머신 및 컨테이너를 모니터링하는 단계(210)는 가상머신(들)에 할당된 컨테이너(들)의 자원 사용량을 모니터링하는 단계에 해당할 수 있고, 실시예에 따른 모니터링 결과에는 컨테이너의 자원 사용량이 포함될 수 있다. 예를 들어, 도 3을 참조할 때, 가상머신 및 컨테이너를 모니터링 한 결과는 가상머신(321)에 할당된 컨테이너(331)의 자원 사용량은 CPU 코어 4개, 가상머신(322)에 할당된 컨테이너(332)의 자원 사용량은 CPU 코어 2개, 가상머신(323)에 할당된 컨테이너(333)의 자원 사용량은 CPU 코어 1개의 정보를 포함할 수 있다.The
일실시예에 따른 모니터링 결과에 기초하여 컨테이너의 크기를 조절하는 단계(220)는 컨테이너 클러스터를 이용하여, 컨테이너의 자원 사용량에 따라 컨테이너의 크기를 조절하는 단계에 해당할 수 있다. 상술한 바와 같이, 실시예에 따른 컨테이너의 크기는 컨테이너에 의해서 사용 가능한 자원의 양에 해당할 수 있으며, 컨테이너의 크기를 조절하는 것은 컨테이너의 크기를 컨테이너에 의해서 사용되는 자원의 양으로 변경하는 것에 해당할 수 있다. 예를 들어, 도 3 및 도 4를 참조할 때, 가상머신(321)에 할당된 컨테이너(331)의 자원 사용량이 CPU 코어 4개인 것에 기초하여, 가상머신(321)에 할당된 컨테이너(331)의 크기가 CPU 코어 4개에 대응하는 컨테이너(431)의 크기로 변경될 수 있다. 마찬가지로, 컨테이너의 자원 사용량에 기초하여, 가상머신(322)에 할당된 컨테이너(332)의 크기는 CPU 코어 2개에 대응하는 컨테이너(432)의 크기로, 가상머신(323)에 할당된 컨테이너(333)의 크기는 CPU 코어 1개에 대응하는 컨테이너(433)의 크기로 변경될 수 있다.Adjusting the size of the container based on the monitoring result according to the
일실시예에 따른 모니터링 결과에 기초하여 컨테이너를 이식하는 단계(230)는 컨테이너 클러스터를 이용하여, 컨테이너의 자원 사용량에 따라 컨테이너를 상기 컨테이너 클러스터에 포함된 다른 가상머신에 이식하는 단계에 해당할 수 있다. 도 4를 참조할 때, 실시예에 따른 컨테이너를 이식하는 단계(230)는 제1 가상머신(422)에 할당된 제1 컨테이너(432)에 의하여 사용되는 제1 자원의 양(예를 들어, CPU 코어 2개)을 획득하는 단계, 제2 가상머신(421)이 점유하는 자원들 중 제2 가상머신(421)에 할당된 제2 컨테이너(431)에 의하여 사용되지 않는 제2 자원의 양(예를 들어, CPU 코어 2개)을 획득하는 단계, 제1 자원의 양과 제2 자원의 양을 비교함으로써, 제1 컨테이너(432)의 이식 여부를 판단하는 단계, 및 판단 결과에 따라, 컨테이너 클러스터를 이용하여 제1 컨테이너(432)를 제1 가상머신(422)으로부터 제2 가상머신(421)으로 이식하는 단계를 포함할 수 있다.The
실시예에 따른 이식 여부의 판단은 제1 자원의 양과 제2 자원의 양이 같은 경우 이식하는 판단에 해당할 수 있고, 제1 자원의 양이 제2 자원의 양보다 큰 경우 이식하지 않는 판단에 해당할 수으며, 제1 자원의 양이 제2 자원의 양보다 작은 경우 미리 정해진 기준에 따라 이식 여부를 판단할 수 있다. 예를 들어, 도 4를 참조할 때, 제1 자원의 양과 제2 자원의 양은 CPU 코어 2개로 같으므로, 제1 컨테이너(432)를 제1 가상머신(422)으로부터 제2 가상머신(421)으로 이식하는 판단이 내려질 수 있다.The determination of whether to transplant according to the embodiment may correspond to the determination of transplanting when the amount of the first resource and the amount of the second resource are the same, and when the amount of the first resource is greater than the amount of the second resource, the determination not to transplant This may be the case, and when the amount of the first resource is less than the amount of the second resource, it may be determined whether to transplant according to a predetermined criterion. For example, when referring to FIG. 4 , since the amount of the first resource and the amount of the second resource are equal to two CPU cores, the
일실시예에 따를 때, 제1 컨테이너를 제1 가상머신으로부터 제2 가상머신으로 이식하는 것은 제1 가상머신에서 제1 컨테이너를 삭제하고, 제2 가상머신에 제1 자원의 양에 대응하는 크기의 제2 컨테이너를 할당하여 제1 컨테이너가 수행하는 프로그램을 제2 컨테이너에서 수행하는 것을 의미할 수 있다. 예를 들어, 도 5를 참조할 때, 일실시예에 따른 컨테이너를 이식하는 단계(220)에 의해 제1 가상머신(522)에서 제1 컨테이너가 삭제되고, 제2 가상머신(521)에 CPU 코어 2개에 대응하는 크기의 제2 컨테이너(532)가 할당되어 제1 컨테이너(432)에서 수행되는 프로그램이 제2 컨테이너(532)에서 수행되도록 변경될 수 있다.According to an embodiment, the porting of the first container from the first virtual machine to the second virtual machine deletes the first container from the first virtual machine, and a size corresponding to the amount of the first resource in the second virtual machine. It may mean that a program executed by the first container is executed in the second container by allocating the second container of . For example, referring to FIG. 5 , the first container is deleted from the first
실시예에 따른 모니터링 결과에 기초하여 가상머신을 해제하는 단계(240)는 컨테이너의 자원 사용량에 따라 가상머신을 상기 컨테이너 클러스터로부터 제거하고, 가상머신을 해제하는 단계에 해당할 수 있다. 도 5를 참조할 때, 실시예에 따른 가상머신을 해제하는 단계(240)는 컨테이너 클러스터(540)에 포함된 복수의 가상머신들(521, 522, 523) 중 컨테이너가 할당되지 않은 가상머신(522)을 식별하는 단계, 식별된 가상머신(522)을 컨테이너 클러스터(540)로부터 제거하는 단계, 및 식별된 가상머신(522)을 해제하는 단계를 포함할 수 있다. 일실시예에 따른 컨테이너의 자원 사용량의 모니터링 결과, 가상머신이 점유하는 자원들 중 컨테이너에 의하여 사용되는 자원이 없는 경우 컨테이너가 할당되지 않은 가상머신(522)으로 식별될 수 있다. 도 5 및 도 6을 참조할 때, 컨테이너 클러스터(540)는 가상머신을 해제하는 단계(240)에 의해 컨테이너가 할당되지 않은 가상머신이 제거된 컨테이너 클러스터(640)로 변경될 수 있다. 일실시예에 따를 때, 가상머신을 해제하는 단계(240)에서 가상머신(522)이 해제됨에 따라, 가상머신(522)이 점유하고 있던 컴퓨팅 자원들의 점유가 해제될 수 있다. 가상머신에 의한 점유가 해제된 컴퓨팅 자원들(601 내지 606)은 물리머신에 의해 사용될 수도 있고, 새로운 가상머신 생성 시 새로운 가상머신에 의해 점유될 수 있다.The step of releasing the
실시예에 따른 모니터링 결과에 기초하여 가상머신을 생성하는 단계(250)는 컨테이너의 자원 사용량에 대응하는 양을 점유하는 가상머신을 생성하고, 컨테이너 클러스터에 포함시키는 단계에 해당할 수 있다. 도 7을 참조할 때, 일실시예에 따른 모니터링 결과에 기초하여 가상머신을 생성하는 단계(250)는 제1 가상머신(723)이 점유하는 자원들 중 제1 가상머신(723)에 할당된 제1 컨테이너(733)에 의하여 사용되는 제1 자원의 양(예를 들어, CPU 코어 1개)을 획득하는 단계, 제1 자원의 양에 대응하는 양의 제2 자원(예를 들어, CPU 코어 1개)을 점유하는 제2 가상머신(724)을 생성하는 단계, 제2 가상머신을 컨테이너 클러스터(740)에 포함시키는 단계를 포함할 수 있다.The
도 7 및 도 8을 참조할 때, 도 7의 제1 가상머신(723) 및 가상머신을 생성하는 단계(250)에서 생성된 제2 가상머신(724)은 컨테이너를 이식하는 단계(230)에 의해 제1 컨테이너(733)가 제1 가상머신(723)으로부터 제2 가상머신으로 이식되어, 도 8의 제1 가상머신(823) 및 제2 가상머신(824)으로 변경될 수 있다.7 and 8, the first
도 8 및 도 9를 참조할 때, 도 8의 가상머신(823)은 할당된 컨테이너가 존재하지 않아 가상머신을 해제하는 단계(240)가 수행될 수 있다. 실시예에 따른 가상머신을 해제하는 단계(240)에 의해 가상머신(823)이 컨테이너 클러스터(840)로부터 제거되어 도 9의 컨테이너 클러스터(940)는 가상머신(823)을 제외한 가상머신들만을 포함할 수 있고, 가상머신(823)은 해제될 수 있다. 이 경우 가상머신(823)이 점유하고 있던 컴퓨팅 자원들(901 내지 906)은 가상머신에 의한 점유가 해제되어 물리머신에 의해 사용될 수 있고, 새로운 가상머신 생성 시 새로운 가상머신에 의해 점유될 수 있다.Referring to FIGS. 8 and 9 , the
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented by a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the apparatus, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and carry out program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.
Claims (21)
상기 복수의 가상머신들을 포함하는 컨테이너 클러스터를 생성하는 단계;
상기 컨테이너 클러스터를 이용하여, 상기 복수의 가상머신들에 복수의 컨테이너들을 할당하는 단계;
상기 복수의 가상머신들 및 상기 복수의 컨테이너들 중 적어도 하나를 모니터링하는 단계; 및
상기 모니터링 결과에 기초하여 상기 복수의 컨테이너들 및 상기 복수의 가상머신들 중 적어도 하나를 제어함으로써, 클라우드 서비스를 위한 자원을 관리하는 단계
를 포함하는
클라우드 서비스를 제공하는 서버의 동작 방법.generating a plurality of virtual machines occupying at least a portion of computing resources of the physical machine;
creating a container cluster including the plurality of virtual machines;
allocating a plurality of containers to the plurality of virtual machines by using the container cluster;
monitoring at least one of the plurality of virtual machines and the plurality of containers; and
managing resources for a cloud service by controlling at least one of the plurality of containers and the plurality of virtual machines based on the monitoring result
containing
How a server that provides cloud services operates.
상기 모니터링 결과는 컨테이너 단위의 자원 사용량을 포함하고,
상기 자원을 관리하는 단계는
상기 컨테이너 클러스터를 이용하여, 상기 컨테이너 단위의 자원 사용량에 따라 해당하는 컨테이너의 크기를 조절하는 단계
를 포함하는,
클라우드 서비스를 제공하는 서버의 동작 방법.According to claim 1,
The monitoring result includes resource usage in container units,
The step of managing the resource is
adjusting the size of a corresponding container according to the resource usage of the container unit by using the container cluster
containing,
How a server that provides cloud services operates.
상기 자원을 관리하는 단계는
제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계;
제2 가상머신이 점유하는 자원들 중 상기 제2 가상머신에 할당된 제2 컨테이너에 의하여 사용되지 않는 제2 자원의 양을 획득하는 단계;
상기 제1 자원의 양과 상기 제2 자원의 양을 비교함으로써, 상기 제1 컨테이너의 이식 여부를 판단하는 단계; 및
상기 판단 결과에 따라, 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는 단계
를 포함하는,
클라우드 서비스를 제공하는 서버의 동작 방법.According to claim 1,
The step of managing the resource is
obtaining an amount of a first resource used by a first container allocated to the first virtual machine among resources occupied by the first virtual machine;
acquiring an amount of a second resource that is not used by a second container allocated to the second virtual machine among the resources occupied by the second virtual machine;
determining whether to transplant the first container by comparing the amount of the first resource with the amount of the second resource; and
transplanting the first container from the first virtual machine to the second virtual machine using the container cluster according to the determination result;
containing,
How a server that provides cloud services operates.
상기 자원을 관리하는 단계는
상기 복수의 가상머신들 중 컨테이너가 할당되지 않은 가상머신을 식별하는 단계;
상기 식별된 가상머신을 상기 컨테이너 클러스터로부터 제거하는 단계; 및
상기 식별된 가상머신을 해제하는 단계
를 포함하는
클라우드 서비스를 제공하는 서버의 동작 방법.According to claim 1,
The step of managing the resource is
identifying a virtual machine to which a container is not allocated among the plurality of virtual machines;
removing the identified virtual machine from the container cluster; and
releasing the identified virtual machine
containing
How a server that provides cloud services operates.
상기 자원을 관리하는 단계는
제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계;
상기 제1 자원의 양에 대응하는 양의 제2 자원을 점유하는 제2 가상머신을 생성하는 단계;
상기 제2 가상머신을 상기 컨테이너 클러스터에 포함시키는 단계;
상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는 단계
를 포함하는,
클라우드 서비스를 제공하는 서버의 동작 방법.According to claim 1,
The step of managing the resource is
obtaining an amount of a first resource used by a first container allocated to the first virtual machine among resources occupied by the first virtual machine;
generating a second virtual machine occupying an amount of a second resource corresponding to the amount of the first resource;
including the second virtual machine in the container cluster;
porting the first container from the first virtual machine to the second virtual machine using the container cluster.
containing,
How a server that provides cloud services operates.
상기 컨테이너의 크기는 상기 해당하는 컨테이너가 할당된 가상머신이 점유하는 자원의 범위 내에서 조절되는
클라우드 서비스를 제공하는 서버의 동작 방법.3. The method of claim 2,
The size of the container is adjusted within the range of resources occupied by the virtual machine to which the corresponding container is allocated.
How a server that provides cloud services operates.
상기 제1 자원의 양은 상기 제1 가상머신이 점유하는 자원들의 양보다 같거나 작은
클라우드 서비스를 제공하는 서버의 동작 방법.4. The method of claim 3,
The amount of the first resource is less than or equal to the amount of resources occupied by the first virtual machine.
How a server that provides cloud services operates.
상기 컨테이너의 크기를 조절하는 단계는
상기 컨테이너의 자원 사용량이 없다는 판단에 따라, 상기 컨테이너를 삭제하는 단계를 포함하는
클라우드 서비스를 제공하는 서버의 동작 방법.3. The method of claim 2,
The step of adjusting the size of the container is
Deleting the container according to the determination that there is no resource usage of the container
How a server that provides cloud services operates.
상기 제1 컨테이너의 이식 여부를 판단하는 단계는
상기 제1 자원의 양과 상기 제2 자원의 양이 같은 경우, 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하기로 판단하는 단계; 및
상기 제1 자원의 양이 상기 제2 자원의 양보다 큰 경우, 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하지 않기로 판단하는 단계
를 포함하는,
클라우드 서비스를 제공하는 서버의 동작 방법.4. The method of claim 3,
The step of determining whether to transplant the first container
determining to transplant the first container from the first virtual machine to the second virtual machine when the amount of the first resource and the amount of the second resource are the same; and
determining not to transplant the first container from the first virtual machine to the second virtual machine when the amount of the first resource is greater than the amount of the second resource
containing,
How a server that provides cloud services operates.
상기 제2 가상머신을 생성하는 단계는
상기 제1 자원의 양을 미리 정해진 기준의 양과 비교하는 단계;
상기 제1 자원의 양이 상기 미리 정해진 기준의 양보다 작은 경우, 상기 제2 가상머신을 생성하기로 판단하는 단계; 및
상기 판단에 기초하여 상기 제2 가상머신을 생성하는 단계
를 포함하는
클라우드 서비스를 제공하는 서버의 동작 방법.6. The method of claim 5,
The step of creating the second virtual machine is
comparing the amount of the first resource with an amount of a predetermined reference;
determining to create the second virtual machine when the amount of the first resource is less than the amount of the predetermined reference; and
generating the second virtual machine based on the determination
containing
How a server that provides cloud services operates.
상기 자원은
프로세싱 자원, 메모리 자원, 디스크 자원 및 네트워크 자원 중 적어도 하나를 포함하는
클라우드 서비스를 제공하는 서버의 동작 방법.According to claim 1,
the resource is
at least one of a processing resource, a memory resource, a disk resource, and a network resource.
How a server that provides cloud services operates.
상기 가상머신이 점유하는 컴퓨팅 자원 중 적어도 일부를 사용하는 상기 컨테이너의 자원 사용량을 모니터링하는 단계
를 포함하고,
상기 컨테이너 클러스터를 이용하여, 상기 컨테이너의 자원 사용량에 따라 상기 가상머신이 점유하는 컴퓨팅 자원의 범위에서 상기 컨테이너의 크기를 조절하는 단계;
상기 컨테이너 클러스터를 이용하여, 상기 컨테이너의 자원 사용량에 따라 상기 컨테이너를 상기 컨테이너 클러스터에 포함된 다른 가상머신에 이식하는 단계;
상기 컨테이너의 자원 사용량에 따라 상기 가상머신을 상기 컨테이너 클러스터로부터 제거하고, 상기 가상머신을 해제하는 단계; 및
상기 컨테이너의 자원 사용량에 대응하는 양을 점유하는 가상머신을 생성하고, 상기 컨테이너 클러스터에 포함시키는 단계
중 적어도 하나를 더 포함하는
클라우드 서비스를 위한 자원을 관리하는 방법.A method for managing resources for a cloud service by using a container cluster including a virtual machine to which at least one container is allocated, the method comprising:
monitoring the resource usage of the container using at least some of the computing resources occupied by the virtual machine
including,
adjusting the size of the container in a range of computing resources occupied by the virtual machine according to the resource usage of the container by using the container cluster;
using the container cluster and transplanting the container to another virtual machine included in the container cluster according to the resource usage of the container;
removing the virtual machine from the container cluster according to the resource usage of the container and releasing the virtual machine; and
creating a virtual machine occupying an amount corresponding to the resource usage of the container, and including the virtual machine in the container cluster
further comprising at least one of
How to manage resources for cloud services.
상기 컨테이너를 상기 컨테이너 클러스터에 포함된 다른 가상머신에 이식하는 단계는
제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계;
제2 가상머신이 점유하는 자원들 중 상기 제2 가상머신에 할당된 제2 컨테이너에 의하여 사용되지 않는 제2 자원의 양을 획득하는 단계;
상기 제1 자원의 양과 상기 제2 자원의 양을 비교함으로써, 상기 제1 컨테이너의 이식 여부를 판단하는 단계; 및
상기 판단 결과에 따라, 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는 단계
를 포함하는,
클라우드 서비스를 위한 자원을 관리하는 방법.13. The method of claim 12,
The step of porting the container to another virtual machine included in the container cluster comprises:
obtaining an amount of a first resource used by a first container allocated to the first virtual machine among resources occupied by the first virtual machine;
acquiring an amount of a second resource that is not used by a second container allocated to the second virtual machine among the resources occupied by the second virtual machine;
determining whether to transplant the first container by comparing the amount of the first resource with the amount of the second resource; and
transplanting the first container from the first virtual machine to the second virtual machine using the container cluster according to the determination result;
containing,
How to manage resources for cloud services.
상기 가상머신을 상기 컨테이너 클러스터로부터 제거하고, 상기 가상머신을 해제하는 단계는
상기 컨테이너 클러스터에 포함된 복수의 가상머신들 중 컨테이너가 할당되지 않은 가상머신을 식별하는 단계;
상기 식별된 가상머신을 상기 컨테이너 클러스터로부터 제거하는 단계; 및
상기 식별된 가상머신을 해제하는 단계
를 포함하는
클라우드 서비스를 위한 자원을 관리하는 방법.13. The method of claim 12,
removing the virtual machine from the container cluster, and releasing the virtual machine
identifying a virtual machine to which a container is not allocated among a plurality of virtual machines included in the container cluster;
removing the identified virtual machine from the container cluster; and
releasing the identified virtual machine
containing
How to manage resources for cloud services.
상기 컨테이너의 자원 사용량에 대응하는 양을 점유하는 가상머신을 생성하고, 상기 컨테이너 클러스터에 포함시키는 단계는
제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하는 단계;
상기 제1 자원의 양에 대응하는 양의 제2 자원을 점유하는 제2 가상머신을 생성하는 단계;
상기 제2 가상머신을 상기 컨테이너 클러스터에 포함시키는 단계;
상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는 단계
를 포함하는,
클라우드 서비스를 위한 자원을 관리하는 방법.13. The method of claim 12,
The step of creating a virtual machine occupying an amount corresponding to the resource usage of the container and including it in the container cluster includes:
obtaining an amount of a first resource used by a first container allocated to the first virtual machine among the resources occupied by the first virtual machine;
generating a second virtual machine occupying an amount of a second resource corresponding to the amount of the first resource;
including the second virtual machine in the container cluster;
Porting the first container from the first virtual machine to the second virtual machine using the container cluster.
containing,
How to manage resources for cloud services.
복수의 가상머신들을 생성하고, 상기 복수의 가상머신들 및 상기 복수의 컨테이너들 중 적어도 하나를 모니터링하며, 상기 모니터링 결과에 따라 상기 컨테이너 클러스터를 이용하여 클라우드 서비스를 위한 자원을 관리하는,
적어도 하나의 프로세서를 포함하는
클라우드 서비스를 제공하는 장치.including a plurality of virtual machines occupying at least a portion of computing resources of a physical machine, allocating a plurality of containers to the plurality of virtual machines, and controlling at least one of the plurality of containers and the plurality of virtual machines running a container cluster that
generating a plurality of virtual machines, monitoring at least one of the plurality of virtual machines and the plurality of containers, and managing resources for a cloud service using the container cluster according to the monitoring result,
at least one processor
A device that provides cloud services.
상기 모니터링 결과는 컨테이너 단위의 자원 사용량을 포함하고,
상기 프로세서는
상기 컨테이너 클러스터를 이용하여, 상기 컨테이너 단위의 자원 사용량에 따라 해당하는 컨테이너의 크기를 조절하는
클라우드 서비스를 제공하는 장치.17. The method of claim 16,
The monitoring result includes resource usage in container units,
the processor
using the container cluster to adjust the size of a corresponding container according to the resource usage of the container unit
A device that provides cloud services.
상기 프로세서는
제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하고, 제2 가상머신이 점유하는 자원들 중 상기 제2 가상머신에 할당된 제2 컨테이너에 의하여 사용되지 않는 제2 자원의 양을 획득하여, 상기 제1 자원의 양과 상기 제2 자원의 양을 비교함으로써, 상기 제1 컨테이너의 이식 여부를 판단하고, 상기 판단 결과에 따라, 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는
클라우드 서비스를 제공하는 장치.17. The method of claim 16,
the processor
Acquires an amount of a first resource used by the first container allocated to the first virtual machine among the resources occupied by the first virtual machine, and assigns it to the second virtual machine among the resources occupied by the second virtual machine. By obtaining the amount of the second resource not used by the allocated second container, and comparing the amount of the first resource with the amount of the second resource, it is determined whether the first container is transplanted, and the determination result is Accordingly, the first container is transferred from the first virtual machine to the second virtual machine using the container cluster.
A device that provides cloud services.
상기 프로세서는
상기 복수의 가상머신들 중 컨테이너가 할당되지 않은 가상머신을 식별하고, 상기 식별된 가상머신을 상기 컨테이너 클러스터로부터 제거하며, 상기 식별된 가상머신을 해제하는
클라우드 서비스를 제공하는 장치.17. The method of claim 16,
the processor
identifying a virtual machine to which a container is not allocated among the plurality of virtual machines, removing the identified virtual machine from the container cluster, and releasing the identified virtual machine
A device that provides cloud services.
상기 프로세서는
제1 가상머신이 점유하는 자원들 중 상기 제1 가상머신에 할당된 제1 컨테이너에 의하여 사용되는 제1 자원의 양을 획득하고, 상기 제1 자원의 양에 대응하는 양의 제2 자원을 점유하는 제2 가상머신을 생성하며, 상기 제2 가상머신을 상기 컨테이너 클러스터에 포함시키고, 상기 컨테이너 클러스터를 이용하여 상기 제1 컨테이너를 상기 제1 가상머신으로부터 상기 제2 가상머신으로 이식하는
클라우드 서비스를 제공하는 장치.17. The method of claim 16,
the processor
Acquires an amount of a first resource used by a first container allocated to the first virtual machine among resources occupied by the first virtual machine, and occupies a second resource in an amount corresponding to the amount of the first resource generating a second virtual machine to, including the second virtual machine in the container cluster, and transferring the first container from the first virtual machine to the second virtual machine using the container cluster
A device that provides cloud services.
16. A computer program stored on a medium in combination with hardware to execute the method of any one of claims 1 to 15.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190178282A KR102318863B1 (en) | 2019-12-30 | 2019-12-30 | Operating method of server providing clound computing service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190178282A KR102318863B1 (en) | 2019-12-30 | 2019-12-30 | Operating method of server providing clound computing service |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210085341A KR20210085341A (en) | 2021-07-08 |
KR102318863B1 true KR102318863B1 (en) | 2021-10-28 |
Family
ID=76894578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190178282A KR102318863B1 (en) | 2019-12-30 | 2019-12-30 | Operating method of server providing clound computing service |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102318863B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230067755A (en) * | 2021-11-08 | 2023-05-17 | 주식회사 시스기어 | Memory management device for virtual machine |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130326507A1 (en) * | 2012-05-30 | 2013-12-05 | Michael P. McGrath | Mechanism for Controlling Utilization in a Multi-Tenant Platform-as-a-Service (PaaS) Environment in a Cloud Computing System |
KR101740490B1 (en) * | 2015-12-29 | 2017-05-26 | 경희대학교 산학협력단 | Proactive auto scaling system and method in cloud computing environment |
JP2018503896A (en) | 2014-12-05 | 2018-02-08 | アマゾン テクノロジーズ インコーポレイテッド | Automatic management of resource sizing |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
KR20190070659A (en) * | 2017-12-13 | 2019-06-21 | 주식회사 넥스클라우드 | Cloud computing apparatus for supporting resource allocation based on container and cloud computing method for the same |
-
2019
- 2019-12-30 KR KR1020190178282A patent/KR102318863B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130326507A1 (en) * | 2012-05-30 | 2013-12-05 | Michael P. McGrath | Mechanism for Controlling Utilization in a Multi-Tenant Platform-as-a-Service (PaaS) Environment in a Cloud Computing System |
JP2018503896A (en) | 2014-12-05 | 2018-02-08 | アマゾン テクノロジーズ インコーポレイテッド | Automatic management of resource sizing |
KR101740490B1 (en) * | 2015-12-29 | 2017-05-26 | 경희대학교 산학협력단 | Proactive auto scaling system and method in cloud computing environment |
Also Published As
Publication number | Publication date |
---|---|
KR20210085341A (en) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182196B2 (en) | Unified resource management for containers and virtual machines | |
US10922205B2 (en) | Monitoring applications running on containers | |
US10193963B2 (en) | Container virtual machines for hadoop | |
US10241674B2 (en) | Workload aware NUMA scheduling | |
US10216758B2 (en) | Multi-tenant production and test deployments of Hadoop | |
US9594637B2 (en) | Deploying parallel data integration applications to distributed computing environments | |
US8725875B2 (en) | Native cloud computing via network segmentation | |
US20180181436A1 (en) | Lazy persistent storage volume provisioning | |
US20190250946A1 (en) | Migrating a software container taking into account resource constraints | |
US11740921B2 (en) | Coordinated container scheduling for improved resource allocation in virtual computing environment | |
US9038085B2 (en) | System, method and program product for cost-aware selection of stored virtual machine images for subsequent use | |
US11924117B2 (en) | Automated local scaling of compute instances | |
US8813076B2 (en) | Virtual machine updates | |
US9495269B1 (en) | Mobility validation by trial boot using snap shot | |
US11403150B1 (en) | Replenishment-aware resource usage management | |
KR101751515B1 (en) | Apparatus, method, and computer program for testing | |
US9535743B2 (en) | Data processing control method, computer-readable recording medium, and data processing control device for performing a Mapreduce process | |
US11194629B2 (en) | Handling expiration of resources allocated by a resource manager running a data integration job | |
US9755986B1 (en) | Techniques for tightly-integrating an enterprise storage array into a distributed virtualized computing environment | |
KR102318863B1 (en) | Operating method of server providing clound computing service | |
US10469329B1 (en) | Computing service capacity management | |
KR20130080587A (en) | Dynamically reconfigurable apparatus for operating system in manycore system and method of the same | |
US11797729B2 (en) | Hyper-converged infrastructure (HCI) operation predictor | |
US20200356376A1 (en) | Dynamic distribution of container images | |
CN117311910B (en) | High-performance virtual password machine operation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right |