KR20220141070A - 지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법 - Google Patents

지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법 Download PDF

Info

Publication number
KR20220141070A
KR20220141070A KR1020210047164A KR20210047164A KR20220141070A KR 20220141070 A KR20220141070 A KR 20220141070A KR 1020210047164 A KR1020210047164 A KR 1020210047164A KR 20210047164 A KR20210047164 A KR 20210047164A KR 20220141070 A KR20220141070 A KR 20220141070A
Authority
KR
South Korea
Prior art keywords
service
resource utilization
instance
node
container orchestration
Prior art date
Application number
KR1020210047164A
Other languages
English (en)
Other versions
KR102650892B1 (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 KR1020210047164A priority Critical patent/KR102650892B1/ko
Priority to US17/518,267 priority patent/US20220329651A1/en
Publication of KR20220141070A publication Critical patent/KR20220141070A/ko
Application granted granted Critical
Publication of KR102650892B1 publication Critical patent/KR102650892B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network 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/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/45595Network integration; Enabling network access in virtual machine instances

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)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)

Abstract

지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법이 개시된다. 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 방법은 컨테이너 오케스트레이션(CONTAINER ORCHESTRATION) 장치가, 서비스 사용 단말로부터 서비스 요청을 수신하는 단계; 및 상기 컨테이너 오케스트레이션 장치가, 지역적으로 분산된 다중 클라우드 환경 기반의 컨테이너 오케스트레이션 클러스터(CONTAINER ORCHESTRATION CLUSTER)에 대한 자동 스케줄링(AUTO SCHEDULING)을 기반으로 상기 서비스 요청을 처리하기 위한 서비스 노드(SERVICE NODE) 및 서비스 인스턴스(SERVICE INSTANCE)를 동적 배치하는 단계를 포함한다.

Description

지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법 {APPARATUS FOR CONTAINER ORCHESTRATION IN GEOGRAPHICALLY DISTRIBUTED MULTI CLOUD ENVIRONMENT AND METHOD USING THE SAME}
본 발명은 지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 기술에 관한 것으로, 특히 시간적/지역적으로 분산된 복수의 클라우드들을 대상으로 동작하는 컨테이너 오케스트레이션 플랫폼에서 사용자의 서비스 지연 시간 최소화를 위해 서비스 노드 및 서비스 인스턴스를 동적 배치 및 스케일링하는 기술에 관한 것이다.
클라우드 컴퓨팅 기술은 가상화 기술을 바탕으로 CPU, 메모리, 스토리지, 네트워크 등의 컴퓨팅 인프라 자원을 모두 가상화한 뒤 사용자의 요청에 따라 필요한 만큼의 가상화 자원을 제공하는 기술이다.
최근에는 가상화 기술이 진보함에 따라 컴퓨터 전체를 소프트웨어나 하드웨어로 에뮬레이션하지 않고 애플리케이션과 그 실행에 필요한 라이브러리, 바이너리, 구성 파일 등을 패키지로 묶어 운영체제와는 별도로 배포하는 컨테이너 기술이 등장하였다. 이러한 컨테이너 기술을 통해 컨테이너화된 애플리케이션은 여러 환경(개발, 테스트, 제품 등) 간에 손쉽게 이동할 수 있게 되었다. 또한, 이러한 편의성을 극대화하기 위해 애플리케이션들은 마이크로서비스 아키텍처(MicroService Architecture)를 기반으로 구성되어 개발되고 있다.
이에 따라, 많은 마이크로서비스 아키텍처 기반의 컨테이너화된 애플리케이션들을 손쉽게 배포하고 관리하기 위한 컨테이너 오케스트레이션 소프트웨어 플랫폼들이 등장하였으며, 클라우드 환경에 적용되어 다양한 환경에서 광범위하게 사용되고 있다. 대표적인 컨테이너 오케스트레이션 소프트웨어 플랫폼에는 쿠버네티스와 도커 스웜, 아파치 메소스 등이 있다.
일반적으로 컨테이너 오케스트레이션 플랫폼들은 클라우드를 통해 확보한 여러 가상 머신(이하 노드)들을 하나의 클러스터로 묶고, 사용자의 요청에 따라 애플리케이션을 구성하는 컨테이너들을 적절한 노드에 배치하거나 애플리케이션의 부하에 따라 자동으로 컨테이너들의 복제본을 증가시키거나 감소시키는 자동 스케일링 기능 등 컨테이너들을 손쉽게 통합 관리할 수 있는 많은 기능을 제공한다.
한편, 여러 클라우드 제공자들이 제공하는 다양한 위치의 클라우드들을 대상으로 유연하게 활용하는 멀티/분산/하이브리드 클라우드 기술도 등장하였다. 즉, 분산/멀티/하이브리드 클라우드(이하 분산 클라우드) 기술은 공개형 클라우드(Public Cloud)와 폐쇄형 클라우드(Private Cloud), 그리고 실제 물리 머신(Physical Machine)들을 서로 연결하여 사용할 수 있는 기술이다. 이러한 기술들은 단일 클라우드가 갖는 지역적인 한계성을 극복하여 서비스 사용자와 가장 가까운 위치의 클라우드를 통한 서비스 제공이 가능하도록 하여 서비스 지연 문제 등을 개선한다.
이 때, 앞서 언급한 종래의 컨테이너 오케스트레이션 플랫폼들은 단일 클라우드로부터 확보한 노드들로 구성된 클러스터를 대상으로 내부의 네트워크 흐름 제어나 시스템 부하(CPU 사용량/사용률, 메모리 사용량/사용률 등)에 따른 자동 스케일링 기능 수행에 최적화되어 있다. 그러나, 지역적으로 분산된 복수의 클라우드들을 대상으로 종래의 컨테이너 오케스트레이션 기술을 적용하였을 경우, 지역적 또는 네트워크 환경적 문제로 인해 서비스 지연이 발생하게 된다.
한국 공개 특허 제10-2014-0099497호, 2014년 8월 12일 공개(명칭: 지리적 위치 기반 로드 밸런싱)
본 발명의 목적은 지역적으로 분산된 다중 클라우드를 대상으로 다수 사용자들의 서비스 요청에 대한 서비스 응답 시간을 최소화할 수 있는 컨테이너 오케스트레이션 기술을 제공하는 것이다.
또한, 본 발명의 목적은 지역적으로 분산된 다중 클라우드를 대상으로 네트워크 근접성과 시스템 부하를 고려하여 효과적인 스케줄링과 스케일링을 수행하는 것이다.
또한, 본 발명의 목적은 지역적으로 분산된 다중 클라우드 기반의 컨테이너 오케스트레이션 플랫폼을 운영함에 있어서 서비스 지연 시간을 최소화하면서도 전체 시스템 자원을 효율적으로 사용함으로써 서비스 운용 비용을 최소화하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 컨테이너 오케스트레이션 방법은 컨테이너 오케스트레이션(CONTAINER ORCHESTRATION) 장치가, 서비스 사용 단말로부터 서비스 요청을 수신하는 단계; 및 상기 컨테이너 오케스트레이션 장치가, 지역적으로 분산된 다중 클라우드 환경 기반의 컨테이너 오케스트레이션 클러스터(CONTAINER ORCHESTRATION CLUSTER)에 대한 자동 스케줄링(AUTO SCHEDULING)을 기반으로 상기 서비스 요청을 처리하기 위한 서비스 노드(SERVICE NODE) 및 서비스 인스턴스(SERVICE INSTANCE)를 동적 배치하는 단계를 포함한다.
이 때, 동적 배치하는 단계는 상기 서비스 사용 단말에 대한 네트워크 근접성을 고려하여 서비스 인스턴스 실행 부하를 분산시키는 방향으로 서비스 노드 및 서비스 인스턴스를 동적 배치할 수 있다.
이 때, 네트워크 근접성은 서비스 사용 단말과 서비스 노드 간의 지리적 거리 차이를 기반으로 추정된 평균 네트워크 지연 시간에 상응할 수 있다.
이 때, 동적 배치하는 단계는 상기 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 상기 서비스 요청에 상응하는 서비스 인스턴스를 포함하는 적어도 하나의 후보 서비스 노드를 추출하는 단계; 상기 적어도 하나의 후보 서비스 노드 중 상기 평균 네트워크 지연시간이 기설정된 기준 이하인지 여부와 상기 서비스 인스턴스 실행 부하의 분산을 고려하여 선택된 어느 하나의 후보 서비스 노드를 타겟 서비스 노드로 선택하는 단계; 및 상기 타겟 서비스 노드에 배치된 타겟 서비스 인스턴스를 통해 상기 서비스 요청을 처리하는 단계를 포함할 수 있다.
이 때, 동적 배치하는 단계는 상기 서비스 사용 단말에 의한 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하는 경우, 상기 과거 서비스 요청을 처리한 서비스 인스턴스를 통해 상기 서비스 요청을 처리하는 단계를 포함할 수 있다.
이 때, 컨테이너 오케스트레이션 장치가, 서비스 노드 단위 및 서비스 인스턴스 단위 각각에 대한 자원 활용도를 기반으로 상기 컨테이너 오케스트레이션 클러스터를 스케줄링하는 단계를 더 포함할 수 있다.
이 때, 스케줄링하는 단계는 서비스 종류마다 상기 서비스 인스턴스 단위로 측정된 서비스 인스턴스 자원 활용도가 기설정된 서비스 인스턴스 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 인스턴스를 추가하거나 삭제하는 서비스 인스턴스 스케줄링 단계; 및 상기 서비스 노드 단위로 측정된 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 노드를 추가하거나 삭제하는 서비스 노드 스케줄링 단계를 포함할 수 있다.
이 때, 서비스 인스턴스 스케줄링 단계는 제1 서비스를 제공하는 적어도 하나의 제1 서비스 인스턴스를 대상으로 측정된 상기 서비스 인스턴스 자원 활용도가 상기 기설정된 서비스 인스턴스 자원 활용 목표 범위를 벗어난 경우, 상기 적어도 하나의 제1 서비스 인스턴스를 포함하는 적어도 하나의 제1 서비스 노드에 대한 네트워크 근접성, 기설정된 기간 동안의 서비스 사용 단말 접속 증가율 및 접속 빈도를 고려하여 상기 서비스 인스턴스를 추가하거나 삭제할 수 있다.
이 때, 서비스 노드 스케줄링 단계는 상기 서비스 노드 자원 활용도를 기반으로 측정된 클러스터 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위를 벗어난 경우, 상기 접속 증가율 및 접속 빈도를 고려하여 군집화된 서비스 사용 단말 군집과 클라우드 리전(CLOUD REGION) 간의 네트워크 근접성 및 상기 서비스 노드 자원 활용도를 고려하여 상기 서비스 노드를 추가하거나 삭제할 수 있다.
이 때, 서비스 노드 스케줄링 단계는 상기 클러스터 자원 활용도가 상기 기설정된 클러스터 자원 활용 목표 범위의 상한 목표 값을 초과하는 경우, 상기 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 상기 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위의 상한 목표 값을 초과하는 서비스 노드가 포함된 제1 클라우드 리전 및 상기 서비스 사용 단말 군집과 상기 클라우드 리전 간의 네트워크 근접성을 고려하여 탐색된 제2 클라우드 리전을 대상으로 신규 서비스 노드를 추가할 타겟 클라우드 리전을 선택하는 단계를 포함할 수 있다.
이 때, 서비스 노드는 클라우드 기반의 가상 머신 또는 물리 머신에 상응할 수 있다.
또한, 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 장치는 서비스 사용 단말로부터 서비스 요청을 수신하고, 지역적으로 분산된 다중 클라우드 환경 기반의 컨테이너 오케스트레이션 클러스터(CONTAINER ORCHESTRATION CLUSTER)에 대한 자동 스케줄링(AUTO SCHEDULING)을 기반으로 상기 서비스 요청을 처리하기 위한 서비스 노드 및 서비스 인스턴스를 동적 배치하는 프로세서; 및 상기 컨테이너 오케스트레이션 클러스터의 상태 정보를 저장하는 메모리를 포함한다.
이 때, 프로세서는 상기 서비스 사용 단말에 대한 네트워크 근접성을 고려하여 서비스 인스턴스 실행 부하를 분산시키는 방향으로 서비스 노드 및 서비스 인스턴스를 동적 배치할 수 있다.
이 때, 네트워크 근접성은 서비스 사용 단말과 서비스 노드 간의 지리적 거리 차이를 기반으로 추정된 평균 네트워크 지연 시간에 상응할 수 있다.
이 때, 프로세서는 상기 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 상기 서비스 요청에 상응하는 서비스 인스턴스를 포함하는 적어도 하나의 후보 서비스 노드를 추출하고, 상기 적어도 하나의 후보 서비스 노드 중 상기 평균 네트워크 지연시간이 기설정된 기준 이하인지 여부와 상기 서비스 인스턴스 실행 부하의 분산을 고려하여 선택된 어느 하나의 후보 서비스 노드를 타겟 서비스 노드로 선택하고, 상기 타겟 서비스 노드에 배치된 타겟 서비스 인스턴스를 통해 상기 서비스 요청을 처리할 수 있다.
이 때, 프로세서는 상기 서비스 사용 단말에 의한 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하는 경우, 상기 과거 서비스 요청을 처리한 서비스 인스턴스를 통해 상기 서비스 요청을 처리할 수 있다.
이 때, 프로세서는 서비스 노드 단위 및 서비스 인스턴스 단위 각각에 대한 자원 활용도를 기반으로 상기 컨테이너 오케스트레이션 클러스터를 스케줄링 할 수 있다.
이 때, 프로세서는 서비스 종류마다 상기 서비스 인스턴스 단위로 측정된 서비스 인스턴스 자원 활용도가 기설정된 서비스 인스턴스 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 인스턴스를 추가하거나 삭제하고, 상기 서비스 노드 단위로 측정된 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 노드를 추가하거나 삭제할 수 있다.
이 때, 프로세서는 제1 서비스를 제공하는 적어도 하나의 제1 서비스 인스턴스를 대상으로 측정된 상기 서비스 인스턴스 자원 활용도가 상기 기설정된 서비스 인스턴스 자원 활용 목표 범위를 벗어난 경우, 상기 적어도 하나의 제1 서비스 인스턴스를 포함하는 적어도 하나의 제1 서비스 노드에 대한 네트워크 근접성, 기설정된 기간 동안의 서비스 사용 단말 접속 증가율 및 접속 빈도를 고려하여 상기 서비스 인스턴스를 추가하거나 삭제할 수 있다.
이 때, 프로세서는 상기 서비스 노드 자원 활용도를 기반으로 측정된 클러스터 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위를 벗어난 경우, 상기 접속 증가율 및 접속 빈도를 고려하여 군집화된 서비스 사용 단말 군집과 클라우드 리전(CLOUD REGION) 간의 네트워크 근접성 및 상기 서비스 노드 자원 활용도를 고려하여 상기 서비스 노드를 추가하거나 삭제할 수 있다.
이 때, 프로세서는 상기 클러스터 자원 활용도가 상기 기설정된 클러스터 자원 활용 목표 범위의 상한 목표 값을 초과하는 경우, 상기 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 상기 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위의 상한 목표 값을 초과하는 서비스 노드가 포함된 제1 클라우드 리전 및 상기 서비스 사용 단말 군집과 상기 클라우드 리전 간의 네트워크 근접성을 고려하여 탐색된 제2 클라우드 리전을 대상으로 신규 서비스 노드를 추가할 타겟 클라우드 리전을 선택할 수 있다.
이 때, 서비스 노드는 클라우드 기반의 가상 머신 또는 물리 머신에 상응할 수 있다.
본 발명에 따르면, 지역적으로 분산된 다중 클라우드를 대상으로 다수 사용자들의 서비스 요청에 대한 서비스 응답 시간을 최소화할 수 있는 컨테이너 오케스트레이션 기술을 제공할 수 있다.
또한, 본 발명은 지역적으로 분산된 다중 클라우드를 대상으로 네트워크 근접성과 시스템 부하를 고려하여 효과적인 스케줄링과 스케일링을 수행할 수 있다.
또한, 본 발명은 지역적으로 분산된 다중 클라우드 기반의 컨테이너 오케스트레이션 플랫폼을 운영함에 있어서 서비스 지연 시간을 최소화하면서도 전체 시스템 자원을 효율적으로 사용함으로써 서비스 운용 비용을 최소화할 수 있다.
도 1은 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 방법을 나타낸 동작 흐름도이다.
도 2는 본 발명에 따른 컨테이너 오케스트레이션 클러스터의 물리적 구성의 일 예를 나타낸 도면이다.
도 3은 본 발명에 따른 컨테이너 오케스트레이션 클러스터의 논리적 구성의 일 예를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 서비스 노드 및 서비스 인스턴스 동적 배치 과정을 상세하게 나타낸 동작 흐름도이다.
도 5는 본 발명의 일실시예에 따른 서비스 인스턴스 스케줄링 과정을 나타낸 동작 흐름도이다.
도 6은 본 발명의 일실시예에 따른 서비스 노드 스케줄링 과정을 나타낸 동작 흐름도이다.
도 7는 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 장치를 나타낸 블록도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 방법을 나타낸 동작 흐름도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 방법은, 컨테이너 오케스트레이션(CONTAINER ORCHESTRATION) 장치가, 서비스 사용 단말로부터 서비스 요청을 수신한다(S110).
이 때, 서비스 요청은 시간적/지역적으로 분산된 다수 사용자들의 서비스 사용 단말로부터 수신되는 것일 수 있다.
이 때, 컨테이너 오케스트레이션 장치는 지역적으로 분산된 복수개의 클라우드들의 가상 머신 및 지역 물리 머신들을 대상으로 구축된 컨테이너 오케스트레이션 플랫폼에 상응할 수 있다.
예를 들어, 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 플랫폼을 구축하면 도 2에 도시된 것과 같은 형태의 컨테이너 오케스트레이션 클러스터를 구성할 수 있다.
도 2를 참조하면, 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 클러스터는 공개형 클라우드 리전 1((PUBLIC CLOUD REGION 1)(210), 공개형 클라우드 리전 2((PUBLIC CLOUD REGION 2)(220), 폐쇄형 클라우드(PRIVATE CLOUD)(230) 및 물리 머신 그룹(PHYSICAL MACHINE GROUP)(240)으로 구성될 수 있다.
이 때, 공개형 클라우드에서 제공하는 리전은 클라우드 서비스를 안정적으로 제공하기 위해 설치하는 여러 데이터센터의 묶음을 의미할 수 있다. 일반적으로 2~3개의 데이터센터를 묶어서 공개형 클라우드 리전을 구성할 수 있다.
이 때, 각각의 클라우드에서 제공하는 가상 머신(VIRTUAL MACHINE)들은 서로 상이한 지역에 위치하고, 서로 다른 시차를 가지고 동작할 수 있다. 즉, 가상 머신들은 지역적/시간적으로 분산된 형태에 상응할 수 있다.
이 때, 물리 머신 그룹(240)에 포함된 물리 머신(PHYSICAL MACHINE)들은 클라우드 서비스를 사용하지 않고, 클러스터 관리자에 의해 제공될 수 있다.
이 때, 각 그룹에 포함된 가상 머신들과 물리 머신들은 인터넷(250)을 통해 연결되어 상호간에 통신이 가능할 수 있다.
이 때, 각각의 가상 머신들과 물리 머신들은 컨테이너 오케스트레이션 클러스터에서 서비스 노드(NODE)로 관리될 수 있다. 즉, 본 발명의 일실시예에 따른 서비스 노드는 클라우드 기반의 가상 머신 또는 물리 머신에 상응할 수 있다.
예를 들어, 도 2에 도시된 것처럼, 공개형 클라우드 리전 1(210)에 생성된 가상 머신들은 각각 노드 1(NODE 1), 노드 2(NODE 2), 노드 3(NODE 3)으로, 공개형 클라우드 리전 2(220)에 생성된 가상 머신들은 각각 노드 4(NODE 4), 노드 7(NODE 7)로, 폐쇄형 클라우드(230)에서 생성된 가상 머신들은 각각 노드 5(NODE 5), 노드 8(NODE 8)로, 물리 머신 그룹(240)의 물리 머신들은 각각 노드 6(NODE 6), 노드 9(NODE 9)로 관리될 수 있다.
이 때, 도 2에서 점선으로 표시된 노드 7, 노드 8은 클러스터 구축 제공자에 의한 스케일링(Scalable)을 통해 공개형 클라우드 리전 2(220)와 폐쇄형 클라우드(230)에 추가될 수 있는 가상 머신들을 나타낸 것이고, 노드 9는 물리 머신 그룹(240)에서 직접 추가되거나 제거될 수 있는(configurable) 물리 머신을 나타낸 것이다.
이와 같은 컨테이너 오케스트레이션 클러스터를 논리적 구성으로 나타내면 도 3과 같은 형태일 수 있다.
도 3을 참조하면, 컨테이너 오케스트레이션 클러스터를 구성하는 노드들은 역할에 따라 컨트롤 플레인(CONTROL PLANE)과 워커(WORKER)로 구분하여 관리된다.
컨트롤 플레인에 해당하는 서비스 노드(310)는 클러스터 컨트롤러(CLUSTER CONTROLLER)(311)와 클러스터 스케줄러(CLUSTER SCHEDULER)(312)를 포함하며, 별도의 데이터베이스(313)를 통해 컨테이너 오케스트레이션 클러스터의 상태 정보를 저장 및 관리할 수 잇다.
워커에 해당하는 서비스 노드들(320~390)은 각각 노드 에이전트(NODE AGENT)와 서비스 인스턴스(SERVICE INSTANCE)들을 포함할 수 있다.
이 때, 서비스 노드 6(360), 서비스 노드 7(370) 및 서비스 노드 9(390)에 각각 점선으로 표시된 A 서비스 인스턴스(APP SERVICE A INSTANCE)들은 해당 서비스 노드 수준에서 스케일링(SCALABLE)을 통해 추가되거나 삭제될 수 있는 것을 표현한 것이다. 마찬가지로 서비스 노드 8(380)에 점선으로 표시된 B 서비스 인스턴스(APP SERVICE B INSTANCE)는 해당 서비스 노드 수준에서 스케일링(SCALABLE)을 통해 추가되거나 삭제될 수 있는 것을 표현한 것이다.
클러스터 컨트롤러(311)는 클러스터 관리자나 어플리케이션 서비스 관리자의 요청을 수신하고, 그들이 원하는 클러스터 상태에 부합하도록 현재 클러스터 상태를 지속적으로 확인하고 바꾸는 작업을 수행할 수 있다. 즉, 데이터베이스(313)에 저장된 클러스터 상태 정보를 감시하고, 서비스 노드의 노드 에이전트들로부터 각종 서비스 인스턴스 상태 변경에 대한 이벤트를 수신하면서 클러스터의 현재 상태를 지속적으로 확인할 수 있다. 또한, 클러스터 관리자나 어플리케이션 서비스 관리자가 원하는 클러스터 상태에 부합하도록 클러스터 스케줄러(312)나 서비스 노드의 노드 에이전트들에게 이벤트를 보내는 역할을 수행할 수도 있다.
이러한 클러스터 컨트롤러(311)의 대표적인 기능으로는 네임스페이스의 생성 및 라이프사이클 관리, 서비스 인스턴스의 생성/복제 및 라이프사이클 관리, 서비스 인스턴스의 자동 스케일, 서비스 노드의 추가 및 삭제 등이 있다.
클러스터 스케줄러(312)는 서비스 인스턴스들에 대한 배치 요구가 발생할 때마다 그에 적합한 서비스 노드를 찾아 해당 서비스 인스턴스를 배치하는 역할을 수행할 수 있다. 이 때, 클러스터 스케줄러(312)는 데이터베이스(313)에 저장된 각 서비스 노드의 자원 활용도(CPU 사용률이나 절대 사용량, 메모리 사용률이나 절대 사용량, IO 사용률이나 절대 사용량 등)를 바탕으로 서비스 인스턴스들의 자원 요구사항, 서비스 품질 요구사항, 우선 순위 및 기타 제약 조건 등을 만족하는 가장 적합한 서비스 노드를 검색할 수 있다.
워커에 해당하는 서비스 노드들(320~390)에 포함된 노드 에이전트는, 클러스터 컨트롤러(311)에 의한 서비스 인스턴스 생성/복제 및 라이프사이클 관리 요청에 따라 해당 서비스 노드에 서비스 인스턴스를 생성/복제하거나 라이프사이클을 변경하는 역할을 수행할 수 있다. 또한 해당 서비스 노드에서 실행되고 있는 서비스 인스턴스의 상태 변경 현황과 해당 서비스 노드의 CPU, 메모리, 스토리지, 네트워크 사용량과 같은 모니터링 메트릭을 수집하여 클러스터 컨트롤러(311)에서 보고하는 역할도 수행할 수 있다.
워커에 해당하는 서비스 노드들(320~390)에 포함된 서비스 인스턴스는, 어플리케이션 서비스 사용자들의 요청을 처리하는 단위에 상응하며, 어플리케이션 서비스 요청을 처리하는 컨테이너들과 클러스터 내부 관리를 위한 컨테이너들로 구성될 수 있다. 예를 들어, 도 3에 도시된 것처럼, 서비스 노드 3(340)과 서비스 노드 6(360)에는 A 서비스 인스턴스(APP SERVICE A INSTANCE)들이 배치되어 어플리케이션 서비스 A의 처리를 담당할 수 있고, 서비스 노드 5(350)에는 B 서비스 인스턴스(APP SERVICE B INSTANCE)가 배치되어 어플리케이션 서비스 B의 처리를 담당할 수 있다.
이 때, 도 3에 도시된 서비스 노드 2(320)와 서비스 노드 4(330)에는 각각 어플리케이션 서비스 A를 위한 부하 분산 서비스 인스턴스(LOAD BALANCER FOR APP SERVICE A)와 어플리케이션 서비스 B를 위한 부하 분산 서비스 인스턴스(LOAD BALANCER FOR APP SERVICE B)가 배치되어 각각의 서비스 처리를 위한 로드 밸런싱을 수행할 수 있다.
따라서, 어플리케이션 서비스 A를 사용하는 사용자 단말(DEVICE USING APP SERVICE A, 이하 A 서비스 사용 단말)들과 어플리케이션 서비스 B를 사용하는 사용자 단말(DEVICE USING APP SERVICE B, 이하 B 서비스 사용 단말)은 시간적으로나 공간적(지역적)으로 다양하게 분산되어 있지만, 해당 서비스의 접속 URL을 통해 각각 서비스 노드 2(320)와 서비스 노드 4(330)에서 제공하는 부하 분산 서비스 인스턴스로 접속하여 각각의 서비스 처리를 요청할 수 있다.
또한, 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 방법은, 컨테이너 오케스트레이션 장치가, 지역적으로 분산된 다중 클라우드 환경 기반의 컨테이너 오케스트레이션 클러스터(CONTAINER ORCHESTRATION CLUSTER)에 대한 자동 스케줄링(AUTO SCHEDULING)을 기반으로 서비스 요청을 처리하기 위한 서비스 노드(SERVICE NODE) 및 서비스 인스턴스(SERVICE INSTANCE)를 동적 배치한다(S120).
이 때, 서비스 사용 단말에 대한 네트워크 근접성을 고려하여 서비스 인스턴스 실행 부하를 분산시키는 방향으로 서비스 노드 및 서비스 인스턴스를 동적 배치할 수 있다.
예를 들어, 도 3에 도시된 A 서비스 사용 단말로부터 A 어플리케이션에 대한 서비스 요청이 수신되었다고 가정할 수 있다. 이 때, 서비스 노드 2(320)의 부하 분산 서비스 인스턴스(LOAD BALANCER FOR APP SERVICE A)는, A 서비스 사용 단말에 대한 네트워크 근접성을 고려하여 어떤 서비스 노드의 어떤 서비스 인스턴스로 해당 서비스 요청의 처리를 전달할지 결정할 수 있다.
이 때, 네트워크 근접성은 서비스 사용 단말과 서비스 노드 간의 지리적 거리 차이를 기반으로 추정된 평균 네트워크 지연 시간에 상응할 수 있다. 이 때, 평균 네트워크 지연 시간은 다음과 같이 다양한 방법으로 확인할 수 있다.
예를 들어, A 서비스 사용 단말과 A 서비스 인스턴스가 실행되는 A 서비스 노드와의 네트워크 지연 시간을 N번 측정하여 산출된 평균 값을 평균 네트워크 지연 시간으로 활용할 수 있다.
다른 예를 들어, 사전에 수집된 A 서비스 사용 단말의 IP 주소 대역과 A 서비스 노드의 IP 주소 대역 간의 평균 네트워크 지연 시간을 활용할 수 있다.
또 다른 예를 들어, IP 주소를 이용한 지역정보 데이터베이스(GEOLOCATION DATABASE)를 기반으로 A 서비스 사용 단말의 IP 주소에 상응하는 단말의 지리적 위치를 파악하고, A 서비스 인스턴스가 실행 중인 서비스 노드들과 A 서비스 사용 단말 간의 지리적 거리를 네트워크 지연 시간으로 변환하여 활용할 수도 있다.
이와 같은 방식으로 네트워크 근접성을 고려하여 서비스 노드 및 서비스 인스턴스를 동적 배치함으로써 종래의 컨테이너 오케스트레이션 플랫폼에서 네트워크 근접성을 고려하지 않아 서비스 응답이 지연되는 문제점을 해결할 수 있다.
이 때, 서비스 사용 단말에 의한 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하는 경우, 과거 서비스 요청을 처리한 서비스 인스턴스를 통해 서비스 요청을 처리할 수 있다.
도 3을 참조하여 예를 들면, 서비스 노드 3(340)의 서비스 인스턴스 A가 A 서비스 사용 단말에 의한 서비스 요청을 처리하고 있었다면, 이후에도 A 서비스 사용 단말로부터 수신되는 서비스 요청은 서비스 노드 3(340)의 서비스 인스턴스 A가 처리하도록 전달할 수 있다.
그러나, 서비스 사용 단말에 의한 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하지 않는다면, 다음과 같은 과정을 통해 서비스 요청을 처리할 서비스 인스턴스를 결정할 수 있다.
먼저, 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 서비스 요청에 상응하는 서비스 인스턴스를 포함하는 적어도 하나의 후보 서비스 노드를 추출할 수 있다.
이 때, 적어도 하나의 후보 서비스 노드 중 평균 네트워크 지연시간이 기설정된 기준 이하인지 여부와 서비스 인스턴스 실행 부하의 분산을 고려하여 선택된 어느 하나의 후보 서비스 노드를 타겟 서비스 노드로 선택할 수 있다.
이 때, 타겟 서비스 노드에 배치된 타겟 서비스 인스턴스를 통해 서비스 요청을 처리할 수 있다.
예를 들어, 도 3과 같은 컨테이너 오케스트레이션 클러스터로 A 서비스 사용 단말에 의한 A 어플리케이션 서비스 요청이 수신되었다면, A 서비스 인스턴스를 포함하는 서비스 노드 3(340), 서비스 노드 6(360)이 후보 서비스 노드로 추출될 수 있다. 이 후, A 서비스 사용 단말과 각 후보 서비스 노드 간의 네트워크 근접성 및 각 후보 서비스 노드에서 실행중인 A 서비스 인스턴스들의 실행 부하를 고려하여 타겟 서비스 노드와 타겟 서비스 인스턴스를 선택할 수 있다.
즉, 네트워크 근접성은 높으면서 서비스 인스턴스 실행 부하는 낮은 어느 하나의 A 서비스 인스턴스를 타겟 서비스 인스턴스로 선택하여 A 서비스 사용 단말에 의한 서비스 요청을 처리하도록 전달할 수 있다.
이 때, 서비스 인스턴스 실행 부하는 각각의 서비스 인스턴스의 CPU 사용률이나 절대 사용량, 메모리 사용률이나 절대 사용량, IO 사용률이나 절대 사용량 등을 기준으로 판단될 수 있다.
상기에서 설명한 과정은 도 4와 같이 정리할 수 있다. 즉, 도 4를 참조하면, 서비스 사용 단말로부터 서비스 요청이 수신되면(S410), 해당 서비스 사용 단말의 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하는지 여부를 판단할 수 있다(S415).
단계(S415)의 판단결과 서비스 사용 단말의 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하면, 해당 서비스 인스턴스를 선택하여(S420) 서비스 요청을 처리할 수 있다(S460).
또한, 단계(S415)의 판단결과 서비스 사용 단말의 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하지 않으면, 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 서비스 요청에 상응하는 서비스 인스턴스를 포함하는 적어도 하나의 후보 서비스 노드를 추출할 수 있다(S415).
이 후, 적어도 하나의 후보 서비스 노드 중 평균 네트워크 지연시간이 기설정된 기준 이하인지 여부와 서비스 인스턴스 실행 부하의 분산을 고려하여 타겟 서비스 노드를 선택하고(S440), 타겟 서비스 노드에 생성된 타겟 서비스 인스턴스를 선택하여(S450) 서비스 요청을 처리할 수 있다(S460).
또한, 도 1에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 방법은, 컨테이너 오케스트레이션 장치가, 서비스 노드 단위 및 서비스 인스턴스 단위 각각에 대한 자원 활용도를 기반으로 컨테이너 오케스트레이션 클러스터를 스케줄링한다.
이 때, 서비스 종류마다 서비스 인스턴스 단위로 측정된 서비스 인스턴스 자원 활용도가 기설정된 서비스 인스턴스 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 인스턴스를 추가하거나 삭제할 수 있다.
예를 들어, 도 3에 도시된 클러스터 컨트롤러(311)는 동일 서비스 인스턴스 단위로 측정된 자원 활용도가 클러스터 관리자나 해당 어플리케이션 서비스 관리자가 설정한 목표값에 도달하면, 자동으로 클러스터 스케줄러(312)에게 해당 서비스 인스턴스를 추가 또는 제거하도록 요청함으로써 자원 활용도가 목표값 범위 내로 유지되도록 동작할 수 있다. 이 때, 자원 활용도는 CPU 사용률이나 절대 사용량, 메모리 사용량이나 절대 사용량, IO 사용률이나 절대 사용량 등을 포함할 수 있다.
만약, A 서비스 인스턴스들의 자원 활용도를 측정하다가 설정한 목표값에 도달하면, 새로운 A 서비스 인스턴스를 추가하거나 기존의 A 서비스 인스턴스를 제거하여 A 서비스 인스턴스들의 자원 활용도가 목표값 범위 내로 유지되도록 할 수 있다.
이 때, 제1 서비스를 제공하는 적어도 하나의 제1 서비스 인스턴스를 대상으로 측정된 서비스 인스턴스 자원 활용도가 기설정된 서비스 인스턴스 자원 활용 목표 범위를 벗어난 경우, 적어도 하나의 제1 서비스 인스턴스를 포함하는 적어도 하나의 제1 서비스 노드에 대한 네트워크 근접성, 기설정된 기간 동안의 서비스 사용 단말 접속 증가율 및 접속 빈도를 고려하여 서비스 인스턴스를 추가하거나 삭제할 수 있다.
예를 들어, A 서비스 인스턴스들의 자원 활용도를 기반으로 개별 서비스 인스턴스들의 목표값 또는 평균 서비스 인스턴스들의 목표값 등의 범위 내에 있는지 확인할 수 있다.
만약, A 서비스 인스턴스 자원 활용도가 기설정된 A 서비스 인스턴스 자원 활용 목표 범위의 상한 목표값을 초과한 경우, 모든 A 서비스 인스턴스들을 대상으로 최근 일정 기간 동안의 A 서비스 사용 단말들의 접속 증가율 및 접속 빈도를 확인할 수 있다.
이 후, 접속 증가율이 높거나 접속 빈도가 높은 A 서비스 인스턴스가 포함된 서비스 노드들을 대상으로 신규 A 서비스 인스턴스를 추가 가능한지 여부를 체크할 수 있다. 즉, 해당 서비스 노드의 자원 활용도가 신규 A 서비스 인스턴스의 자원 요구사항, 서비스 품질 요구사항, 우선 순위 및 기타 제약 조건 등을 만족하는지 확인할 수 있다.
이 때, 신규 A 서비스 인스턴스를 추가할 수 있는 서비스 노드가 존재한다면, 해당 서비스 노드의 노드 에이전트에게 신규 A 서비스 인스턴스를 생성하도록 요청하고, A 서비스를 위한 부하 부산 서비스 인스턴스에 신규 A 서비스 인스턴스의 정보 등록을 요청할 수 있다.
그러나, 신규 A 서비스 인스턴스를 추가할 수 있는 서비스 노드가 존재하지 않으면, 신규 A 서비스 인스턴스는 생성되지 않고 대기 상태로 유지될 수 있다.
또한, A 서비스 인스턴스 자원 활용도가 기설정된 A 서비스 인스턴스 자원 활용 목표 범위의 하한 목표값 이하인 경우, 모든 A 서비스 인스턴스들을 대상으로 최근 일정 기간 동안의 A 서비스 사용 단말들의 접속 감소율 및 접속 빈도를 확인할 수 있다.
이 후, 접속 감소율이 높거나 접속 빈도가 낮은 A 서비스 인스턴스가 포함된 서비스 노드들을 대상으로 기존의 A 서비스 인스턴스를 삭제해도 되는지 또는 제약 조건 등을 만족하는지 여부를 체크할 수 있다.
이 때, 기존 A 서비스 인스턴스를 삭제할 수 있는 서비스 노드가 존재한다면, 해당 서비스 노드의 노드 에이전트에게 A 서비스 인스턴스를 삭제하도록 요청하고, A 서비스를 위한 부하 분산 서비스 인스턴스에게 삭제된 A 서비스 인스턴스에 대한 해지 요청을 전달할 수 있다.
이와 같은 서비스 인스턴스 스케줄링 과정은 도 5와 같이 나타낼 수 있다.
도 5를 참조하면, 서비스 인스턴스 단위로 자원 활용도를 측정하고(S510), 측정된 자원 활용도가 기설정된 상한 목표값을 초과하는지 여부를 판단할 수 있다(S515).
단계(S515)의 판단결과 서비스 인스턴스 자원 활용도가 기설정된 상한 목표값을 초과하면, 서비스 인스턴스를 추가하는 과정을 수행할 수 있다(S520).
이 후, 단계(S510)부터 반복적으로 서비스 인스턴스 스케줄링 과정을 수행함으로써 서비스 인스턴스 실행 부하가 분산되도록 지속적으로 관리할 수 있다.
또한, 단계(S515)의 판단결과 서비스 인스턴스 자원 활용도가 기설정된 상한 목표 값을 초과하지 않으면, 서비스 인스턴스 자원 활용도가 기설정된 하한 목표값 이하인지 여부를 판단할 수 있다(S525).
단계(S525)의 판단결과 서비스 인스턴스 자원 활용도가 기설정된 하한 목표값 이하이면, 서비스 인스턴스를 삭제하는 과정을 수행할 수 있다(S530).
이 후, 단계(S510)부터 반복적으로 서비스 인스턴스 스케줄링 과정을 수행함으로써 서비스 인스턴스 실행 부하가 분산되도록 지속적으로 관리할 수 있다.
또한, 단계(S525)의 판단결과 서비스 인스턴스 자원 활용도가 기설정된 하한 목표값 이하가 아니면, 단계(S510)부터 반복적으로 서비스 인스턴스 스케줄링 과정을 수행함으로써 서비스 인스턴스 실행 부하가 분산되도록 지속적으로 관리할 수 있다.
이 때, 서비스 노드 단위로 측정된 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 노드를 추가하거나 삭제할 수 있다.
예를 들어, 도 3에 도시된 클러스터 컨트롤러(311)는 서비스 노드 단위로 측정된 자원 활용도가 클러스터 관리자가 설정한 목표값에 도달하면, 자동으로 클러스터 스케줄러(312)에게 서비스 노드를 추가 또는 제거하도록 요청함으로써 클러스터의 자원 활용도가 목표값 범위 내로 유지되도록 동작할 수 있다.
만약, 클러스터의 자원 활용도가 설정한 목표값에 도달하면, 새로운 서비스 노드를 추가하거나 또는 기존의 서비스 노드를 제거하여 클러스터의 자원 활용도가 목표값 범위 내로 유지되도록 할 수 있다.
이 때, 서비스 노드 자원 활용도를 기반으로 측정된 클러스터 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위를 벗어난 경우, 접속 증가율 및 접속 빈도를 고려하여 군집화된 서비스 사용 단말 군집과 클라우드 리전(CLOUD REGION) 간의 네트워크 근접성 및 서비스 노드 자원 활용도를 고려하여 서비스 노드를 추가하거나 삭제할 수 있다.
이 때, 클러스터 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위의 상한 목표 값을 초과하는 경우, 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위의 상한 목표 값을 초과하는 서비스 노드가 포함된 제1 클라우드 리전 및 서비스 사용 단말 군집과 상기 클라우드 리전 간의 네트워크 근접성을 고려하여 탐색된 제2 클라우드 리전을 대상으로 신규 서비스 노드를 추가할 타겟 클라우드 리전을 선택할 수 있다.
예를 들어, 클러스터의 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위의 상한 목표값을 초과한 경우, 클러스터 스케줄러에 의해 서비스 노드에 배치되지 않고 대기 상태인 새로운 서비스 인스턴스를 대상으로 최근 일정 기간 동안의 해당 서비스 사용 단말들의 접속 증가율 및 접속 빈도를 확인할 수 있다.
이 후, 접속 증가율이 높거나 접속 빈도가 높은 서비스 인스턴스가 포함된 서비스 노드를 확인하고, 해당 서비스 노드가 포함된 클라우드 리전(제1 클라우드 리전)을 확인할 수 있다.
이 후, 최근 일정 기간 동안에 접속 증가율이 높거나 접속 빈도가 높은 서비스 사용 단말들로 군집화된 서비스 사용 단말 군집에 대해서 네트워크 근접성이 높은 클라우드 리전(제2 클라우드 리전)을 탐색할 수 있다. 이 때, 탐색 범위는 현재 클러스터를 구성하는 클라우드 리전들 뿐만 아니라 접근 가능한 모든 클라우드 리전들을 대상으로 할 수 있다.
이 후, 확인된 제1 클라우드 리전과 탐색된 제2 클라우드 리전을 대상으로 새로운 서비스 노드, 즉 가상 머신을 생성할 클라우드 리전을 선택할 수 있다.
이 후, 선택된 클라우드 리전을 대상으로 새로운 서비스 노드를 할당받아 노드 에이전트를 설치하고, 현재 클러스터의 워커로 등록하여 관리할 수 있다.
또한, 클러스터의 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위의 하한 목표값 이하인 경우, 클러스터에 포함된 모든 서비스 노드들 중 자원 활용도가 낮은 순서대로 서비스 노드를 순차적으로 제거할 수 있다. 이 때, 자원 활용도가 낮은 서비스 노드들 중에서도 실행 중인 서비스 인스턴스가 적은 노드들부터 제거하되, 클러스터의 자원 활용도가 하한 목표값보다 높아지도록 반복적으로 서비스 노드 제거를 수행할 수 있다. 이 후, 제거된 서비스 노드의 가상 머신 및 관련 클라우드 자원은 모두 해당 클라우드 리전으로 반환할 수 있다.
이와 같은 서비스 노드 스케줄링 과정은 도 6과 같이 나타낼 수 있다.
도 6을 참조하면, 서비스 노드 단위로 자원 활용도를 측정하고(S610), 이를 기반으로 측정된 클러스터 자원 활용도가 기설정된 상한 목표값을 초과하는지 여부를 판단할 수 있다(S615).
단계(S615)의 판단결과 클러스터 자원 활용도가 기설정된 상한 목표값을 초과하면, 클라우드 리전을 선택하여(S620) 서비스 노드를 추가하는 과정을 수행할 수 있다(S630).
이 후, 단계(S610)부터 반복적으로 서비스 노드 스케줄링 과정을 수행함으로써 서비스 노드 실행 부하가 분산되도록 지속적으로 관리할 수 있다.
또한, 단계(S615)의 판단결과 클러스터 자원 활용도가 기설정된 상한 목표 값을 초과하지 않으면, 클러스터 자원 활용도가 기설정된 하한 목표값 이하인지 여부를 판단할 수 있다(S635).
단계(S635)의 판단결과 클러스터 자원 활용도가 기설정된 하한 목표값 이하이면, 자원 활용도가 가장 낮은 서비스 노드부터 삭제하는 과정을 수행할 수 있다(S640).
이 후, 단계(S610)부터 반복적으로 서비스 노드 스케줄링 과정을 수행함으로써 서비스 노드 실행 부하가 분산되도록 지속적으로 관리할 수 있다.
또한, 단계(S635)의 판단결과 클러스터 자원 활용도가 기설정된 하한 목표값 이하가 아니면, 단계(S610)부터 반복적으로 서비스 노드 스케줄링 과정을 수행함으로써 서비스 노드 실행 부하가 분산되도록 지속적으로 관리할 수 있다.
이와 같은 컨테이너 오케스트레이션 방법을 통해, 지역적으로 분산된 복수의 클라우드들의 가상 머신 및 지역 물리 머신들을 서비스 요청에 대해 동적으로 적절히 배치함으로써 서비스 지연 시간을 최소화하면서도 시스템 전체 자원을 효율적으로 사용할 수 있어 서비스 운영 비용을 최소화할 수 있다.
도 7는 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 장치를 나타낸 블록도이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 컨테이너 오케스트레이션 장치(700)는 프로세서(710), 버스(720), 메모리(730), 사용자 입력 장치(740), 사용자 출력 장치(750), 스토리지(760) 및 네트워크 인터페이스(770)로 구성될 수 있다.
프로세서(710)는 서비스 사용 단말로부터 서비스 요청을 수신한다.
이 때, 서비스 요청은 시간적/지역적으로 분산된 다수 사용자들의 서비스 사용 단말로부터 수신되는 것일 수 있다.
또한, 프로세서(710)는 지역적으로 분산된 다중 클라우드 환경 기반의 컨테이너 오케스트레이션 클러스터(CONTAINER ORCHESTRATION CLUSTER)에 대한 자동 스케줄링(AUTO SCHEDULING)을 기반으로 서비스 요청을 처리하기 위한 서비스 노드(SERVICE NODE) 및 서비스 인스턴스(SERVICE INSTANCE)를 동적 배치한다.
이 때, 서비스 사용 단말에 대한 네트워크 근접성을 고려하여 서비스 인스턴스 실행 부하를 분산시키는 방향으로 서비스 노드 및 서비스 인스턴스를 동적 배치할 수 있다.
이 때, 네트워크 근접성은 서비스 사용 단말과 서비스 노드 간의 지리적 거리 차이를 기반으로 추정된 평균 네트워크 지연 시간에 상응할 수 있다.
이 때, 서비스 사용 단말에 의한 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하는 경우, 과거 서비스 요청을 처리한 서비스 인스턴스를 통해 서비스 요청을 처리할 수 있다.
이 때, 서비스 사용 단말에 의한 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하지 않는 경우, 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 서비스 요청에 상응하는 서비스 인스턴스를 포함하는 적어도 하나의 후보 서비스 노드를 추출할 수 있다.
이 때, 적어도 하나의 후보 서비스 노드 중 평균 네트워크 지연시간이 기설정된 기준 이하인지 여부와 서비스 인스턴스 실행 부하의 분산을 고려하여 선택된 어느 하나의 후보 서비스 노드를 타겟 서비스 노드로 선택할 수 있다.
이 때, 타겟 서비스 노드에 배치된 타겟 서비스 인스턴스를 통해 서비스 요청을 처리할 수 있다.
또한, 프로세서(710)는 서비스 노드 단위 및 서비스 인스턴스 단위 각각에 대한 자원 활용도를 기반으로 컨테이너 오케스트레이션 클러스터를 스케줄링한다.
이 때, 서비스 종류마다 서비스 인스턴스 단위로 측정된 서비스 인스턴스 자원 활용도가 기설정된 서비스 인스턴스 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 인스턴스를 추가하거나 삭제할 수 있다.
이 때, 제1 서비스를 제공하는 적어도 하나의 제1 서비스 인스턴스를 대상으로 측정된 서비스 인스턴스 자원 활용도가 기설정된 서비스 인스턴스 자원 활용 목표 범위를 벗어난 경우, 적어도 하나의 제1 서비스 인스턴스를 포함하는 적어도 하나의 제1 서비스 노드에 대한 네트워크 근접성, 기설정된 기간 동안의 서비스 사용 단말 접속 증가율 및 접속 빈도를 고려하여 서비스 인스턴스를 추가하거나 삭제할 수 있다.
이 때, 서비스 노드 단위로 측정된 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 노드를 추가하거나 삭제할 수 있다.
이 때, 서비스 노드 자원 활용도를 기반으로 측정된 클러스터 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위를 벗어난 경우, 접속 증가율 및 접속 빈도를 고려하여 군집화된 서비스 사용 단말 군집과 클라우드 리전(CLOUD REGION) 간의 네트워크 근접성 및 서비스 노드 자원 활용도를 고려하여 서비스 노드를 추가하거나 삭제할 수 있다.
이 때, 클러스터 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위의 상한 목표 값을 초과하는 경우, 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위의 상한 목표 값을 초과하는 서비스 노드가 포함된 제1 클라우드 리전 및 서비스 사용 단말 군집과 상기 클라우드 리전 간의 네트워크 근접성을 고려하여 탐색된 제2 클라우드 리전을 대상으로 신규 서비스 노드를 추가할 타겟 클라우드 리전을 선택할 수 있다.
메모리(730)는 컨테이너 오케스트레이션 클러스터의 상태 정보를 저장한다.
또한, 메모리(730)는 상술한 바와 같이 본 발명의 일실시예에 따른 지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치에서 발생하는 다양한 정보를 저장한다.
실시예에 따라, 메모리(730)는 컨테이너 오케스트레이션 장치와 독립적으로 구성되어 컨테이너 오케스트레이션을 위한 기능을 지원할 수 있다. 이 때, 메모리(730)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수도 있다.
이와 같은 컨테이너 오케스트레이션 장치를 이용하여, 지역적으로 분산된 복수의 클라우드들의 가상 머신 및 지역 물리 머신들을 서비스 요청에 대해 동적으로 적절히 배치함으로써 서비스 지연 시간을 최소화하면서도 시스템 전체 자원을 효율적으로 사용할 수 있어 서비스 운영 비용을 최소화할 수 있다.
또한, 도 7을 참조하면, 본 발명의 실시예는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템에서 구현될 수 있다. 예를 들어, 도 7에 도시된 바와 같이, 컴퓨터 시스템은 버스(720)를 통하여 서로 통신하는 하나 이상의 프로세서(710), 메모리(730), 사용자 입력 장치(740), 사용자 출력 장치(750) 및 스토리지(760)를 포함할 수 있다. 또한, 컴퓨터 시스템(700)은 네트워크(780)에 연결되는 네트워크 인터페이스(770)를 더 포함할 수 있다. 프로세서(710)는 중앙 처리 장치 또는 메모리(730)나 스토리지(760)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(730) 및 스토리지(760)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(731)이나 RAM(732)을 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행 가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 측면에 따른 방법을 수행할 수 있다.
이상에서와 같이 본 발명에 따른 지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
210, 220: 공개형 클라우드 리전 230: 폐쇄형 클라우드 리전
240: 물리 머신 그룹 250: 인터넷
300: 컨테이너 오케스트레이션 클러스터
310~390: 서비스 노드 311: 클러스터 컨트롤러
312: 클러스터 스케줄러 313: 데이터베이스
700: 컨테이너 오케스트레이션 장치 710: 프로세서
720: 버스 730: 메모리
731: 롬 732: 램
740: 사용자 입력 장치 750: 사용자 출력 장치
760: 스토리지 770: 네트워크 인터페이스
780: 네트워크

Claims (20)

  1. 컨테이너 오케스트레이션(CONTAINER ORCHESTRATION) 장치가, 서비스 사용 단말로부터 서비스 요청을 수신하는 단계; 및
    상기 컨테이너 오케스트레이션 장치가, 지역적으로 분산된 다중 클라우드 환경 기반의 컨테이너 오케스트레이션 클러스터(CONTAINER ORCHESTRATION CLUSTER)에 대한 자동 스케줄링(AUTO SCHEDULING)을 기반으로 상기 서비스 요청을 처리하기 위한 서비스 노드(SERVICE NODE) 및 서비스 인스턴스(SERVICE INSTANCE)를 동적 배치하는 단계
    를 포함하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  2. 청구항 1에 있어서,
    상기 동적 배치하는 단계는
    상기 서비스 사용 단말에 대한 네트워크 근접성을 고려하여 서비스 인스턴스 실행 부하를 분산시키는 방향으로 서비스 노드 및 서비스 인스턴스를 동적 배치하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  3. 청구항 2에 있어서,
    상기 네트워크 근접성은
    서비스 사용 단말과 서비스 노드 간의 지리적 거리 차이를 기반으로 추정된 평균 네트워크 지연 시간에 상응하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  4. 청구항 3에 있어서,
    상기 동적 배치하는 단계는
    상기 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 상기 서비스 요청에 상응하는 서비스 인스턴스를 포함하는 적어도 하나의 후보 서비스 노드를 추출하는 단계;
    상기 적어도 하나의 후보 서비스 노드 중 상기 평균 네트워크 지연시간이 기설정된 기준 이하인지 여부와 상기 서비스 인스턴스 실행 부하의 분산을 고려하여 선택된 어느 하나의 후보 서비스 노드를 타겟 서비스 노드로 선택하는 단계; 및
    상기 타겟 서비스 노드에 배치된 타겟 서비스 인스턴스를 통해 상기 서비스 요청을 처리하는 단계를 포함하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  5. 청구항 2에 있어서,
    상기 동적 배치하는 단계는
    상기 서비스 사용 단말에 의한 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하는 경우, 상기 과거 서비스 요청을 처리한 서비스 인스턴스를 통해 상기 서비스 요청을 처리하는 단계를 포함하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  6. 청구항 1에 있어서,
    상기 컨테이너 오케스트레이션 장치가, 서비스 노드 단위 및 서비스 인스턴스 단위 각각에 대한 자원 활용도를 기반으로 상기 컨테이너 오케스트레이션 클러스터를 스케줄링하는 단계를 더 포함하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  7. 청구항 6에 있어서,
    상기 스케줄링하는 단계는
    서비스 종류마다 상기 서비스 인스턴스 단위로 측정된 서비스 인스턴스 자원 활용도가 기설정된 서비스 인스턴스 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 인스턴스를 추가하거나 삭제하는 서비스 인스턴스 스케줄링 단계; 및
    상기 서비스 노드 단위로 측정된 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 노드를 추가하거나 삭제하는 서비스 노드 스케줄링 단계를 포함하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  8. 청구항 7에 있어서,
    상기 서비스 인스턴스 스케줄링 단계는
    제1 서비스를 제공하는 적어도 하나의 제1 서비스 인스턴스를 대상으로 측정된 상기 서비스 인스턴스 자원 활용도가 상기 기설정된 서비스 인스턴스 자원 활용 목표 범위를 벗어난 경우, 상기 적어도 하나의 제1 서비스 인스턴스를 포함하는 적어도 하나의 제1 서비스 노드에 대한 네트워크 근접성, 기설정된 기간 동안의 서비스 사용 단말 접속 증가율 및 접속 빈도를 고려하여 상기 서비스 인스턴스를 추가하거나 삭제하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  9. 청구항 8에 있어서,
    상기 서비스 노드 스케줄링 단계는
    상기 서비스 노드 자원 활용도를 기반으로 측정된 클러스터 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위를 벗어난 경우, 상기 접속 증가율 및 접속 빈도를 고려하여 군집화된 서비스 사용 단말 군집과 클라우드 리전(CLOUD REGION) 간의 네트워크 근접성 및 상기 서비스 노드 자원 활용도를 고려하여 상기 서비스 노드를 추가하거나 삭제하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  10. 청구항 9에 있어서,
    상기 서비스 노드 스케줄링 단계는
    상기 클러스터 자원 활용도가 상기 기설정된 클러스터 자원 활용 목표 범위의 상한 목표 값을 초과하는 경우, 상기 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 상기 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위의 상한 목표 값을 초과하는 서비스 노드가 포함된 제1 클라우드 리전 및 상기 서비스 사용 단말 군집과 상기 클라우드 리전 간의 네트워크 근접성을 고려하여 탐색된 제2 클라우드 리전을 대상으로 신규 서비스 노드를 추가할 타겟 클라우드 리전을 선택하는 단계를 포함하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  11. 청구항 1에 있어서,
    상기 서비스 노드는
    클라우드 기반의 가상 머신 또는 물리 머신에 상응하는 것을 특징으로 하는 컨테이너 오케스트레이션 방법.
  12. 서비스 사용 단말로부터 서비스 요청을 수신하고, 지역적으로 분산된 다중 클라우드 환경 기반의 컨테이너 오케스트레이션 클러스터(CONTAINER ORCHESTRATION CLUSTER)에 대한 자동 스케줄링(AUTO SCHEDULING)을 기반으로 상기 서비스 요청을 처리하기 위한 서비스 노드(SERVICE NODE) 및 서비스 인스턴스(SERVICE INSTANCE)를 동적 배치하는 프로세서; 및
    상기 컨테이너 오케스트레이션 클러스터의 상태 정보를 저장하는 메모리
    를 포함하는 것을 특징으로 하는 컨테이너 오케스트레이션 장치.
  13. 청구항 12에 있어서,
    상기 프로세서는
    상기 서비스 사용 단말에 대한 네트워크 근접성을 고려하여 서비스 인스턴스 실행 부하를 분산시키는 방향으로 서비스 노드 및 서비스 인스턴스를 동적 배치하는 것을 특징으로 하는 컨테이너 오케스트레이션 장치.
  14. 청구항 13에 있어서,
    상기 네트워크 근접성은
    서비스 사용 단말과 서비스 노드 간의 지리적 거리 차이를 기반으로 추정된 평균 네트워크 지연 시간에 상응하는 것을 특징으로 하는 컨테이너 오케스트레이션 장치.
  15. 청구항 14에 있어서,
    상기 프로세서는
    상기 컨테이너 오케스트레이션 클러스터를 구성하는 복수개의 서비스 노드들 중 상기 서비스 요청에 상응하는 서비스 인스턴스를 포함하는 적어도 하나의 후보 서비스 노드를 추출하고, 상기 적어도 하나의 후보 서비스 노드 중 상기 평균 네트워크 지연시간이 기설정된 기준 이하인지 여부와 상기 서비스 인스턴스 실행 부하의 분산을 고려하여 선택된 어느 하나의 후보 서비스 노드를 타겟 서비스 노드로 선택하고, 상기 타겟 서비스 노드에 배치된 타겟 서비스 인스턴스를 통해 상기 서비스 요청을 처리하는 것을 특징으로 하는 컨테이너 오케스트레이션 장치.
  16. 청구항 13에 있어서,
    상기 프로세서는
    상기 서비스 사용 단말에 의한 과거 서비스 요청을 처리한 서비스 인스턴스가 존재하는 경우, 상기 과거 서비스 요청을 처리한 서비스 인스턴스를 통해 상기 서비스 요청을 처리하는 것을 특징으로 하는 컨테이너 오케스트레이션 장치.
  17. 청구항 12에 있어서,
    상기 프로세서는
    서비스 노드 단위 및 서비스 인스턴스 단위 각각에 대한 자원 활용도를 기반으로 상기 컨테이너 오케스트레이션 클러스터를 스케줄링하는 것을 특징으로 하는 컨테이너 오케스트레이션 장치.
  18. 청구항 17에 있어서,
    상기 프로세서는
    서비스 종류마다 상기 서비스 인스턴스 단위로 측정된 서비스 인스턴스 자원 활용도가 기설정된 서비스 인스턴스 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 인스턴스를 추가하거나 삭제하는 서비스 인스턴스 스케줄링을 수행하고, 상기 서비스 노드 단위로 측정된 서비스 노드 자원 활용도가 기설정된 서비스 노드 자원 활용 목표 범위에 만족하는지 여부를 고려하여 서비스 노드를 추가하거나 삭제하는 서비스 노드 스케줄링을 수행하는 것을 특징으로 하는 컨테이너 오케스트레이션 장치.
  19. 청구항 18에 있어서,
    상기 프로세서는
    제1 서비스를 제공하는 적어도 하나의 제1 서비스 인스턴스를 대상으로 측정된 상기 서비스 인스턴스 자원 활용도가 상기 기설정된 서비스 인스턴스 자원 활용 목표 범위를 벗어난 경우, 상기 적어도 하나의 제1 서비스 인스턴스를 포함하는 적어도 하나의 제1 서비스 노드에 대한 네트워크 근접성, 기설정된 기간 동안의 서비스 사용 단말 접속 증가율 및 접속 빈도를 고려하여 상기 서비스 인스턴스를 추가하거나 삭제하는 것을 특징으로 하는 컨테이너 오케스트레이션 장치.
  20. 청구항 19에 있어서,
    상기 프로세서는
    상기 서비스 노드 자원 활용도를 기반으로 측정된 클러스터 자원 활용도가 기설정된 클러스터 자원 활용 목표 범위를 벗어난 경우, 상기 접속 증가율 및 접속 빈도를 고려하여 군집화된 서비스 사용 단말 군집과 클라우드 리전(CLOUD REGION) 간의 네트워크 근접성 및 상기 서비스 노드 자원 활용도를 고려하여 상기 서비스 노드를 추가하거나 삭제하는 것을 특징으로 하는 컨테이너 오케스트레이션 장치.
KR1020210047164A 2021-04-12 2021-04-12 지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법 KR102650892B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210047164A KR102650892B1 (ko) 2021-04-12 2021-04-12 지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법
US17/518,267 US20220329651A1 (en) 2021-04-12 2021-11-03 Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210047164A KR102650892B1 (ko) 2021-04-12 2021-04-12 지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법

Publications (2)

Publication Number Publication Date
KR20220141070A true KR20220141070A (ko) 2022-10-19
KR102650892B1 KR102650892B1 (ko) 2024-03-26

Family

ID=83509713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210047164A KR102650892B1 (ko) 2021-04-12 2021-04-12 지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법

Country Status (2)

Country Link
US (1) US20220329651A1 (ko)
KR (1) KR102650892B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102569002B1 (ko) * 2022-12-16 2023-08-23 스트라토 주식회사 멀티 클러스터 환경에서의 가상 머신 자동 최적화를 위한 장치 및 방법
KR102569001B1 (ko) * 2022-12-16 2023-08-23 스트라토 주식회사 클라우드의 가상 머신 자동 최적화를 위한 장치 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115756823B (zh) * 2022-10-20 2024-04-16 广州汽车集团股份有限公司 服务发布方法、装置、车辆及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140099497A (ko) 2012-02-24 2014-08-12 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 지리적 위치 기반 로드 밸런싱
KR102071176B1 (ko) * 2019-05-14 2020-01-29 아콘소프트 주식회사 분산 연합형 컨테이너 플랫폼 시스템

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9775008B2 (en) * 2015-01-14 2017-09-26 Kodiak Networks, Inc. System and method for elastic scaling in a push to talk (PTT) platform using user affinity groups
US10944621B2 (en) * 2016-05-09 2021-03-09 Telefonaktiebolaget Lm Ericsson (Publ) Orchestrator for a virtual network platform as a service (VNPAAS)
US10977086B2 (en) * 2018-11-14 2021-04-13 Vmware, Inc. Workload placement and balancing within a containerized infrastructure
US11711268B2 (en) * 2019-04-30 2023-07-25 Intel Corporation Methods and apparatus to execute a workload in an edge environment
KR20220167635A (ko) * 2021-06-14 2022-12-21 한국전자통신연구원 가상 멀티 클라우드 서비스 제공 장치 및 방법
US20220113790A1 (en) * 2021-11-16 2022-04-14 Kshitij Arun Doshi Intent-driven power management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140099497A (ko) 2012-02-24 2014-08-12 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 지리적 위치 기반 로드 밸런싱
KR102071176B1 (ko) * 2019-05-14 2020-01-29 아콘소프트 주식회사 분산 연합형 컨테이너 플랫폼 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102569002B1 (ko) * 2022-12-16 2023-08-23 스트라토 주식회사 멀티 클러스터 환경에서의 가상 머신 자동 최적화를 위한 장치 및 방법
KR102569001B1 (ko) * 2022-12-16 2023-08-23 스트라토 주식회사 클라우드의 가상 머신 자동 최적화를 위한 장치 및 방법

Also Published As

Publication number Publication date
US20220329651A1 (en) 2022-10-13
KR102650892B1 (ko) 2024-03-26

Similar Documents

Publication Publication Date Title
CN110737442B (zh) 一种边缘应用管理方法及系统
JP6113849B2 (ja) クラウド内に地理的分散型のアプリケーションを自動的に配備する方法および装置
KR102650892B1 (ko) 지역적으로 분산된 다중 클라우드 환경에서의 컨테이너 오케스트레이션 장치 및 이를 이용한 방법
US8424059B2 (en) Calculating multi-tenancy resource requirements and automated tenant dynamic placement in a multi-tenant shared environment
Zhang et al. Cloud computing: state-of-the-art and research challenges
CN102694868B (zh) 一种集群系统实现及任务动态分配方法
US8930731B2 (en) Reducing power consumption in data centers having nodes for hosting virtual machines
WO2021227999A1 (zh) 云计算服务系统和方法
KR102101120B1 (ko) 사용자 특성을 반영한 클러스터 기반 가상 네트워크 기능의 자원 할당 방법
CN103200020A (zh) 一种资源部署方法和系统
CN104050042A (zh) Etl作业的资源分配方法及装置
CN109343931B (zh) 一种在IaaS环境中面向负载均衡的应用感知虚拟机调度方法
CN110020061B (zh) 一种智慧城市时空信息云平台服务引擎
CN110086726A (zh) 一种自动切换Kubernetes主节点的方法
Kang et al. A cluster-based decentralized job dispatching for the large-scale cloud
Attaoui et al. Multi-criteria virtual machine placement in cloud computing environments: a literature review
Rajalakshmi et al. An improved dynamic data replica selection and placement in cloud
CN112994937A (zh) 智融标识网络中虚拟cdn的部署与迁移系统
Stankovski et al. Implementing time-critical functionalities with a distributed adaptive container architecture
US11144359B1 (en) Managing sandbox reuse in an on-demand code execution system
CN117149445B (zh) 一种跨集群负载均衡方法及装置、设备及存储介质
US11606415B2 (en) Method, apparatus and system for processing an access request in a content delivery system
US20230412671A1 (en) Distributed cloud system, data processing method of distributed cloud system, and storage medium
JP2013182509A (ja) 仮想化システム、負荷分散装置、負荷分散方法、及び負荷分散プログラム
Aldwyan et al. Elastic deployment of container clusters across geographically distributed cloud data centers for web applications

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant