KR102488390B1 - 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템 - Google Patents

클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템 Download PDF

Info

Publication number
KR102488390B1
KR102488390B1 KR1020210175274A KR20210175274A KR102488390B1 KR 102488390 B1 KR102488390 B1 KR 102488390B1 KR 1020210175274 A KR1020210175274 A KR 1020210175274A KR 20210175274 A KR20210175274 A KR 20210175274A KR 102488390 B1 KR102488390 B1 KR 102488390B1
Authority
KR
South Korea
Prior art keywords
container
cluster
node
controller
session
Prior art date
Application number
KR1020210175274A
Other languages
English (en)
Inventor
김준기
신정규
박종현
Original Assignee
래블업 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 래블업 주식회사 filed Critical 래블업 주식회사
Priority to KR1020210175274A priority Critical patent/KR102488390B1/ko
Priority to US18/246,895 priority patent/US11977911B2/en
Priority to JP2023519334A priority patent/JP2023552036A/ja
Priority to PCT/KR2021/019445 priority patent/WO2023106503A1/ko
Application granted granted Critical
Publication of KR102488390B1 publication Critical patent/KR102488390B1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust

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 And Data Communications (AREA)

Abstract

본 발명은 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법에 관한 것이다. 본 발명의 실시예에 따르면, 다중 컨테이너 자동 스케일링 방법은 노드컨트롤러가 컨테이너엔진으로부터 컨테이너에 대한 이벤트정보 및 통계정보를 수신하는 단계와, 상기 노드컨트롤러가 감지된 이벤트정보 및 통계정보를 클러스터 컨트롤러에게 전달하는 단계와, 상기 클러스터 컨트롤러가 수신된 이벤트정보 및 통계정보에 기초하여 특정세션에 대한 컨테이너 추가 또는 삭제 여부를 판단하는 단계와, 상기 클러스터 컨트롤러가 판단 결과에 따라 특정세션의 노드컨트롤러에 컨테이너 추가 또는 삭제 명령을 전달하는 단계와, 상기 클러스터 컨트롤러가 기존에 있는 노드만으로 컨테이너 추가가 불가능한지 여부 또는 컨테이너 삭제가 필요한 경우를 판단하여, 노드 추가 또는 삭제 여부를 판단하는 단계를 포함한다.

Description

클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템{Method and system for automatic scaling of multi-container-based computational sessions on a cluster}
본 발명은 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템에 관한 것으로, 특히 분산 병렬처리가 가능한 연산 워크로드 수행 중 클러스터 자체의 노드를 추가 및 삭제하거나 세션 소속 컨테이너들의 각 역할별로 컨테이너의 복제본을 추가 및 삭제가 가능한 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템에 관한 것이다.
컨테이너는 컴퓨터 프로그램을 가상화된 환경에서 실행하는 기법 중 하나로, 가상의 물리적 컴퓨터를 시뮬레이션하는 가상 머신과 달리, 운영체제 내의 다양한 리소스를 가상화하여 하나의 운영체제를 공유하면서도 각 프로그램은 마치 자신만이 존재하는 전용 운영체제를 사용하는 것과 같은 효과를 구현하는 기술이다. 가상 머신과 비교하였을 때 프로그램들 간의 격리 수준(isolation level)은 다소 떨어지지만 성능 오버헤드가 적고 오버레이 파일 시스템과 결합하여 소프트웨어 배포를 쉽게 해준다는 점에서 최근 수년 간 클라우드 및 데이터센터 환경에서 각광받고 있다.
컨테이너 오케스트레이션 프레임워크는 다수의 컨테이너를 다수의 서버 노드에서 실행하고자 할 때, 개별 컨테이너를 운영자가 일일이 명령어를 내려 생성 및 삭제하지 않아도 컨테이너로 구성된 서비스 별로 필요한 자원 양과 복제본의 개수, 네트워크 연결 방식(포트 매핑 및 로드밸런서, 컨테이너 간의 라우팅 경로 등)을 정의하고, 등록하면 자동으로 서버 노드 별로 분산 배포하여 목표한 상태를 유지하도록 컨테이너 생성·삭제·재시작 및 노드의 자원 사용량 모니터링 등을 자동으로 수행하는 소프트웨어를 지칭한다.
기존의 오픈소스 컨테이너 오케스트레이션 프레임워크로는 구글사에서 개발하여 공개한 쿠버네티스(Kubernetes)가 잘 알려져 있다. 사실상 업계 표준으로 활용되고 있는 Kubernetes에서 지원하는 자동 스케일링 기법은 크게 HPA(horizontal pod auto-scaling)와 VPA(vertical pod auto-scaling) 로 구분되며, 이를 통해 클러스터 및 기본 실행단위인 'pod'에 할당되는 연산 자원의 양을 자동 조절하는 기능을 제공하고 있다. 'pod'는 본 명세서에서 언급하는 “세션” 개념과 대응하며, 여러 개의 서로 다른 역할을 가진 컨테이너를 묶은 실행단위이다. 예를 들면, 웹서버 컨테이너와 DB 컨테이너를 묶은 “웹서비스” pod를 정의할 수 있다. HPA는 pod 자체를 여러 개 복제하고 그 복제본의 개수를 조절하는 방식으로 할당된 연산자원량을 조절하고, VPA는 pod의 실행 도중 CPU와 메모리의 용량 변경을 지정한 범위 내에서 자동으로 수행하는 기능을 제공하고 있다. 예를 들면 OOM(out-of-memory) 이벤트가 감지되었을 때 컨테이너에 할당된 메모리 용량을 자동으로 늘리는 식이다. 개별 컨테이너의 CPU 및 메모리 할당량을 실행 도중 변경하는 기능은 도커(Docker)의 경우 “docker update” 명령어를 통해 이미 지원하고 있으며 쿠버네티스 또한 같은 방법으로 지원하고 있다.
선행특허로는 공개특허 제10-2020-0070933호(네트워크 기능 가상화 환경에서 동적 자원 스케일링 장치 및 방법)이 있으나, 가상화 환경을 컨테이너 기반으로 변경하여, 동일 서버에서 운영되는 가상 네트워크 기능(VNF)간 자원을 공유하는 네트워크 기능 가상화 환경에서 동적 자원 스케일링 방법을 개시하고 있을 뿐이다.
전술한 문제점을 해결하기 위하여 본 발명이 해결하고자 하는 과제는, 세션의 복제본을 추가 및 삭제하는 HPA 기술과 개별 컨테이너의 CPU/메모리 할당량 자체를 조절하는 VPA 기술과 달리 클러스터 자체의 노드를 추가 및 삭제하거나 세션 소속 컨테이너들의 각 역할별로 컨테이너의 복제본을 추가 및 삭제가 가능한 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템 을 제공하는 데 있다.
전술한 기술적 과제를 해결하기 위한 수단으로서, 본 발명의 실시예에 따르면, 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 은 노드컨트롤러가 컨테이너엔진으로부터 컨테이너에 대한 이벤트정보 및 통계정보를 수신하는 단계와, 상기 노드컨트롤러가 감지된 이벤트정보 및 통계정보를 클러스터 컨트롤러에게 전달하는 단계와, 상기 클러스터 컨트롤러가 수신된 이벤트정보 및 통계정보에 기초하여 특정세션에 대한 컨테이너 추가 또는 삭제 여부를 판단하는 단계와, 상기 클러스터 컨트롤러가 판단 결과에 따라 특정세션의 노드컨트롤러에 컨테이너 추가 또는 삭제 명령을 전달하는 단계를 포함한다. 또한, 특정세션의 노드컨트롤러가 컨테이너 엔진에 컨테이너 추가 또는 삭제 명령을 전달하는 단계와, 컨테이너엔진이 컨테이너 추가 또는 삭제를 실행하는 단계를 더 포함한다.
또한, 상기 클러스터 컨트롤러가 모든 노드 컨트롤러에 컨테이너의 변경내용을 전달하는 단계와, 각각의 노드 컨트롤러가 각각의 컨테이너 에이전트에 컨테이너의 변경내용을 전달하는 단계를 더 포함한다.
상기 컨테이너 에이전트가 사용자 프로세스가 미리 등록한 스크립트 또는 콜백함수를 실행하여 컨테이너의 변경내용을 사용자 프로세스에 전달하는 단계와, 사용자프로세스가 컨테이너의 변경내용에 따라 추가된 컨테이너를 연산작업에 포함시키거나 삭제된 컨테이너를 제외하는 단계를 더 포함한다.
본 발명의 다른 실시예에 따르면, 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법은 API핸들러가 특정세션에 대한 컨테이너 추가 또는 삭제 API요청을 수신하여 클러스터 컨트롤러에 전달하는 단계와, 상기 클러스터 컨트롤러가 특정세션에 대한 컨테이너 추가 또는 삭제여부를 판단하는 단계와, 상기 클러스터 컨트롤러가 판단 결과에 따라 특정세션의 노드컨트롤러에 컨테이너 추가 또는 삭제 명령을 전달하는 단계를 포함한다. 또한, 특정세션의 노드컨트롤러가 컨테이너엔진에 컨테이너 추가 또는 삭제 명령을 전달하는 단계와, 컨테이너엔진이 컨테이너 추가 또는 삭제를 실행하는 단계를 더 포함한다. 또한, 상기 클러스터 컨트롤러가 노드 추가 또는 삭제 여부를 판단하는 단계와, 상기 클러스터 컨트롤러가 기존에 있는 노드만으로 컨테이너 추가가 불가능한지 여부 또는 컨테이너 삭제가 필요한 경우를 판단하여, 노드 추가 또는 삭제 여부를 판단하는 단계를 더 포함한다.
본 발명에 의하면 분산 병렬처리가 가능한 연산 워크로드 수행 중 필요한 연산량이 많아지거나 적어지는 경우, 연산 워크로드의 수행 시간을 줄이고 불필요하게 점유하는 자원의 낭비를 줄일 수 있다.
도 1과 도 2는 본 발명의 실시예에 따른 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법을 설명하는 도면이다.
도 3과 도 4는 본 발명의 실시예에 따른 기존 컨테이너들에게 변경내용을 알리는 방법을 설명하는 도면이다.
도 5와 도 6은 본 발명의 다른 실시예에 따른 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법을 설명하는 도면이다.
도 7과 도 8은 본 발명의 또 다른 실시예에 따른 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법을 설명하는 도면이다.
도 9와 도 10은 본 발명의 또 다른 실시예에 따른 클러스터 자체의 노드를 추가 또는 삭제하는 자동 스케일링 방법을 설명하는 도면이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시 된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 또는 대체물을 포함한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서 "클러스터"는 여러 대의 컴퓨터(서버 노드)가 하나의 단일 네트워크로 묶여 있는 것을 의미한다. 여기서 단일 네트워크는 이더넷(Ethernet), 인피니밴드(Infiniband)와 같은 다양한 L2/L3 패킷 프로토콜 기반 LAN이 될 수도 있고, 물리적으로는 별도의 공간에 분산되어 있지만 VPN이나 네트워크 터널링 소프트웨어를 사용하여 하나처럼 보이도록 묶은 네트워크일 수도 있다. 같은 네트워크에 속한 노드들끼리는 별도의 방화벽을 거치지 않고 직접 통신이 가능하다.
"클러스터 컨트롤러"는 사용자로부터 세션 생성, 삭제 및 코드 실행 등의 요청을 API 형태로 받아 처리하고, 클러스터 소속 노드들의 자원 가용량, 할당량 및 사용량을 모니터링하며, 스케줄러를 통해 요청받은 세션 생성, 삭제 요청을 노드의 자원 상태에 따라 노드를 선택하거나 노드 컨트롤러를 호출하여 해당 요청이 실제 수행되도록 중계하는 역할을 하는 데몬이다.
"노드컨트롤러"는 클러스터 소속의 각 노드에 설치되어 노드의 컨테이너 엔진을 호출하여 실제 컨테이너의 생성 및 삭제를 수행하고, 그러한 동작 및 컨테이너 자체의 수명주기 활동(오류 또는 작업 완료로 인해 스스로 종료되는 등)으로 인해 현재 노드의 자원 할당량이 변경될 때 이를 클러스터 컨트롤러에 보고하는 역할을 하는 데몬이다.
"컨테이너 엔진"은 컨테이너 제어 인터페이스를 API 형태로 제공하는 데몬 형태의 독립된 소프트웨어이다.
"컨테이너 에이전트"는 노드 컨트롤러의 제어를 받아 사용자의 코드 실행, 컨테이너 내부의 애플리케이션 실행 및 컨테이너 내부 모니터링을 수행하는 작은 데몬이다. 컨테이너 내에서 사용자 프로세스와 동일한 권한을 사용하여 실행된다.
"세션"은 사용자가 독립된 연산 작업을 실행하는 기본 단위로서, 하나의 세션은 반드시 최소 1개 이상의 컨테이너로 이루어지며, 사용자는 개별 컨테이너를 생성·삭제하는 것이 아니라 세션을 생성·삭제하는 명령을 내리는 것이고 클러스터 컨트롤러와 노드 컨트롤러가 실제 필요한 컨테이너들을 생성·삭제한다.
컨테이너 여러 개를 하나의 연산 세션으로 추상화하는 구조는 오버레이 네트워크 활용하여 구현가능하며, 싱글노드 및 멀티노드 케이스로 구분된다. 싱글노드는 로컬 브릿지 네트워크로 활용되고, 멀티노드는 가상 오버레이 네트워크로 활용된다. 오버레이 네트워크의 구현은 docker swarm과 같은 고수준 추상화를 이용할 수도 있고, 직접 Linux kernel의 netfliter (iptables) 설정을 조작하거나 netlink 커널 API를 이용하여 커널의 라우팅 테이블을 조작하는 방법 모두 가능하다.
실제 생성된 세션의 컨테이너들은 자신이 싱글노드용인지 멀티노드용인지 상관 없이 동일한 방법으로 상호 인식 가능하도록 hostname 및 SSH 관련 설정이 자동으로 적용된다.
세션 템플릿 기능으로, 하나의 세션에 속하는 컨테이너들을 역할별로 나누어 자원할당량, 사용할 이미지, 복제할 개수를 서로 달리할 수 있다 최소한 메인 컨테이너 1개는 존재하여야 하고, 싱글노드 클러스터 세션 컨테이너 추가 시 클러스터 컨트롤러가 해당 세션이 속한 노드의 가용 자원 조회가 가능하고, 로컬 브릿지 네트워크에 컨테이너의 네트워크 네임스페이스 소속 인터페이스를 신규 등록이 가능하다. 세션이 속한 노드에 컨테이너 생성할 수 있다.
멀티노드 클러스터 세션 컨테이너 추가 시 클러스터 컨트롤러가 해당 세션이 속한 리소스 그룹의 가용 자원 조회 및 할당 가능한 노드 컨트롤러의 목록 작성이 가능하고, 오버레이 네트워크에 컨테이너의 네트워크 네임스페이스 신규 등록이 가능하고, 할당된 노드에 다수개의 컨테이너들을 생성할 수 있다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다.
도 1과 도 2는 본 발명의 실시예에 따른 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법을 설명하는 도면이다.
도 1과 도 2를 참조하면, 본 발명의 실시예에 따른 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법은 먼저 노드컨트롤러(210a)가 컨테이너엔진(220a)으로부터 컨테이너(230a)에 대한 이벤트정보 및 통계정보를 수신한다(S101). 컨테이너에 대한 이벤트정보는 OOM(out-of-memory) 이벤트와 같은 연산자원 부족 이벤트일 수 있으나 이에 대해 한정하는 것은 아니다. 상기 통계정보는 연산자원 사용량 통계일 수 있으나 이에 대해 한정하는 것은 아니다. 컨테이너엔진(220a)은 상기 이벤트정보와 통계정보를 실시간으로 감지하여 노드컨트롤러(210a)에 전달할 수 있다. 컨테이너엔진(220a)과 함께 노드의 호스트 운영체제가 상기 이벤트정보와 통계정보를 실시간으로 감지할 수 있다.
노드컨트롤러(210a)가 감지된 이벤트정보 및 통계정보를 클러스터 컨트롤러(100)에게 전달한다(S103). 상기 이벤트정보는 하나의 세션에서 out-of-memory 등의 이벤트가 특정 횟수 이상 발생하는 경우에 생성된다. 상기 통계정보는 특정 주기마다 세션들을 검사하여 평균 CPU 사용률 또는 GPU 사용률이 일정수준을 넘는 경우에 생성된다. 예컨대, 5분마다 한번씩 세션들을 검사하여, 마지막 1분간 평균 CPU 사용률 또는 GPU 사용률이 85%를 넘는 경우 동일 자원 할당량을 가진 컨테이너 개수를 1개씩 추가하고, 마지막 1분간 평균 CPU 사용률 또는 GPU 사용률이 30%를 넘지 못하는 경우 컨테이너 개수를 1개씩 감소할 수 있다. 이때, 설정에 따라 컨테이너 개수는 제한될 수 있고, 최소 1개는 유지되야 한다.
클러스터 컨트롤러(100)가 수신된 이벤트정보 및 통계정보에 기초하여 특정세션에 대한 컨테이너 추가 또는 삭제 여부를 판단한다(S105). 클러스터 컨트롤러(100)는 수신된 이벤트정보와 통계정보를 분석하여 특정세션에 대한 컨테이너 추가 또는 삭제가 필요한지 여부, 특정세션 및 특정세션 소유자가 해당 결정을 수행할 권한이 있는지, 특정세션에서 실제로 수행할 수 있는 자원이 충분히 있는지를 고려하여 컨테이너 추가 또는 삭제여부를 판단한다.
클러스터 컨트롤러가 판단 결과에 따라 특정세션의 노드컨트롤러(210b)에 컨테이너 추가 또는 삭제 명령을 전달한다(S107). 특정세션의 노드컨트롤러(210b)가 컨테이너 엔진(220b)에 컨테이너 추가 또는 삭제 명령을 전달한다(S109). 명령을 수신한 컨테이너 엔진(220b)이 컨테이너(230b) 추가 또는 삭제를 실행한다(S111).
이후에, 클러스터 컨트롤러가 노드 추가 또는 삭제 여부를 판단한다. 기존에 있는 노드만으로 컨테이너 추가가 불가능한지를 판단하여, 최대 허용 노드 개수 및 신규 노드의 사양 옵션을 규정한 관리자 설정에 따라 노드 추가 여부를 판단한다. 컨테이너 삭제가 필요한 경우를 판단하여, 최소 유지 노드 개수 등을 규정한 관리자 설정에 따라 노드 삭제 여부를 판단한다.
즉, 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 시스템 (10)은 클러스터 컨트롤러(100)와 다수개의 노드들(200a, 200b, 200c, ... , 200n)로 구성된다. 제1노드(200a)는 제1노드컨트롤러(210a), 제1컨테이너엔진(220a), 제1컨테이너(230a)로 구성되고, 제2노드(200b)는 제2노드컨트롤러(210b), 제2컨테이너엔진(220b), 제2컨테이너(230b)로 구성되고, 제3노드(200c)는 제3노드컨트롤러(210c), 제3컨테이너엔진(220c), 제3컨테이너(230c)로 구성된다. 제1노드(200a)의 컨테이너에서 이벤트가 발생하여 노드컨트롤러(210a)가 감지된 이벤트정보 및 통계정보를 클러스터 컨트롤러(100)에게 전달하면, 클러스터 컨트롤러(100)에서 이벤트정보 및 통계정보에 기초하여 특정세션의 컨테이너에 추가가 가능한지 판단하고, 예컨대 제2노드의 컨테이너 추가가 가능하면, 제2노드(200b)의 노드 컨트롤러에게 명령을 전달하여 컨테이너를 추가할 수 있다.
도 3과 도 4는 본 발명의 실시예에 따른 기존 컨테이너들에게 변경내용을 알리는 방법을 설명하는 도면이다.
도 3과 도 4를 참조하면, 클러스터 컨트롤러가 모든 노드 컨트롤러에 컨테이너의 변경내용을 전달한다(S201). 상기 변경내용은 컨테이너 추가 또는 삭제에 대한 내용이고, 클러스터 컨트롤러가 특정세션의 컨테이너 추가 또는 삭제를 수행함을 결정하였을 때 특정세션 소속의 컨테이너들이 실행 중인 모든 기존 노드의 노드 컨트롤러에게 컨테이너의 추가 또는 삭제가 발생한다는 사실을 알린다. 또한, 클러스터 컨트롤러가 노드 컨트롤러에게 네트워크를 통한 원격 프로시저 호출(Remote procedure call; RPC)을 하거나 별도의 이벤트 중계자 노드에 해당 사실을 이벤트 형태로 발행하고, 그 노드의 이벤트를 수신 API를 사용하는 이벤트 버스 방식으로도 가능하다.
각각의 노드 컨트롤러가 각각의 컨테이너 에이전트에 컨테이너의 변경내용을 전달한다(S203). 컨테이너 에이전트가 사용자 프로세스가 미리 등록한 스크립트 또는 콜백함수를 실행하여 컨테이너의 변경내용을 사용자 프로세스에 전달한다(S205).
사용자프로세스가 컨테이너의 변경내용에 따라 추가된 컨테이너를 연산작업에 포함시키거나 삭제된 컨테이너를 제외한다(S207). 위와 같은 프로세스를 통해 컨테이너 추가 또는 삭제 과정에서 세션 소속의 기존 컨테이너들에게 추가 또는 삭제 사실을 알려줄 수 있다.
클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 시스템(10a)에서 다수개의 컨테이너 중 메인 컨테이너(230b)내의 컨테이너 에이전트(240b), 사용자프로세스(250b)에 의해 컨테이너의 변경내용을 전달할 수 있다.
도 5와 도 6은 본 발명의 다른 실시예에 따른 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법을 설명하는 도면이다.
도 5와 도 6을 참조하면, 본 발명의 다른 실시예에 따른 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법은 API핸들러가 특정세션에 대한 컨테이너 추가 또는 삭제 API요청을 수신하여 클러스터 컨트롤러에 전달한다(S301). API핸들러는 사용자 또는 관리자의 요청에 의해 특정 세션에 대한 컨테이너 추가 또는 삭제 API 요청을 수신할 수 있다.
상기 클러스터 컨트롤러가 특정세션에 대한 컨테이너 추가 또는 삭제여부를 판단한다(S303). 클러스터 컨트롤러(100)는 API를 수신하여 특정세션에 대한 컨테이너 추가 또는 삭제가 필요한지 여부, 특정세션 및 특정세션 소유자가 해당 결정을 수행할 권한이 있는지, 특정세션에서 실제로 수행할 수 있는 자원이 충분히 있는지를 고려하여 컨테이너 추가 또는 삭제여부를 판단한다.
상기 클러스터 컨트롤러가 판단 결과에 따라 특정세션의 노드컨트롤러에 컨테이너 추가 또는 삭제 명령을 전달한다(S305). 특정세션의 노드컨트롤러가 컨테이너엔진에 컨테이너 추가 또는 삭제 명령을 전달한다(S307). 컨테이너엔진이 컨테이너 추가 또는 삭제를 실행한다(S309). 사용자 단말 또는 관리자 단말로부터 컨테이너 추가 또는 삭제 요청에 의해 컨테이너 변경이 가능하다.
즉, 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 시스템 (10b)은 클러스터 컨트롤러(100)와 다수개의 노드들(200a, 200b, 200c, ... , 200n), API핸들러(300)로 구성된다. API핸들러(300)는 사용자단말 또는 관리자단말의 요청에 의해 특정 세션에 대한 컨테이너 추가 또는 삭제 API 요청을 수신하고 클러스터 컨트롤러(100)에 전달할 수 있다.
도 7과 도 8은 본 발명의 또 다른 실시예에 따른 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법을 설명하는 도면이다.
도 7과 도 8을 참조하면, 사용자프로세스가 컨테이너 추가 또는 삭제 요청을 컨테이너 에이전트에 전달한다(S401). 사용자프로세스는 스스로의 판단으로 컨테이너 추가 또는 삭제 요청을 컨테이너 에이전트에게 전달할 수 있다.
컨테이너 에이전트가 노드 컨트롤러에 해당 요청을 전달한다(S403). 노드 컨트롤러가 컨테이너 생성 시 자동으로 마운트하여 제공하는 UNIX 도메인 소켓을 이용하는 방식, 노드 컨트롤러가 컨테이너 내부에서 169.254.169.254와 같은 사설 IP 주소로의 접근을 가로채는 방식, 컨테이너 에이전트가 컨테이너 내부의 로컬호스트에 열고 있는 TCP 포트로 접속하고 컨테이너 에이전트가 상기 방법으로 노드 컨트롤러와 통신하는 방식 중 하나 이상을 조합하여 사용자 프로세스(A), 컨테이너 에이전트(B), 노드 컨트롤러(C)가 ZeroMQ, HTTP, 웹소켓 등의 애플리케이션 프로토콜을 활용하여 상호 양방향(A<->B, B<->C, A<->C 모두 가능) 통신하는 방법을 활용할 수 있다. 사용자 프로세스가 해당 요청을 보낼 때 어느 컨테이너 소속인지 여부를 노드 컨트롤러가 판단할 수 있도록 인증키를 컨테이너 생성 시 심어두거나 노드컨트롤러가 해당 요청 출발지 IP 주소로 어느 컨테이너인지 판단하는 로직을 가지고 있어서 그것이 허용 가능한 요청인지 판별할 수 있다. 즉 기존 클라우드 서비스에서도 가상머신을 대상으로 169.254.169.254와 같은 사설 IP 주소를 통한 metadata API 서비스를 제공하고 있으나, 본 발명은 유사한 메커니즘을 가상머신이 아닌 컨테이너에 적용한다는 것이 차별점이다.
노드 컨트롤러가 클러스터 컨트롤러에 해당 요청을 전달한다(S405). 또한, 이벤트 버스 방식 또는 노드 컨트롤러가 클러스터 컨트롤러를 직접 원격프로시저호출(RPC)하는 방식으로 이용할 수 있다.
클러스터 컨트롤러가 특정세션에 대한 컨테이너 추가 또는 삭제 여부를 판단한다(S407). 클러스터 컨트롤러(100)는 특정세션에 대한 컨테이너 추가 또는 삭제가 필요한지 여부, 특정세션 및 특정세션 소유자가 해당 결정을 수행할 권한이 있는지, 특정세션에서 실제로 수행할 수 있는 자원이 충분히 있는지를 고려하여 컨테이너 추가 또는 삭제여부를 판단한다.
특정세션의 노드컨트롤러가 컨테이너엔진에 컨테이너 추가 또는 삭제 명령을 전달한다(S409). 컨테이너엔진이 컨테이너 추가 또는 삭제를 실행한다(S411). 즉, 사용자프로세스의 스스로의 판단에 의해 컨테이너의 추가 또는 삭제가 가능하다.
즉, 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 시스템(10c)은 클러스터 컨트롤러(100)와 다수개의 노드들(200a, 200b, 200c, ... , 200n)로 구성된다. 제1노드(200a)는 제1노드컨트롤러(210a), 제1메인컨테이너(230a), 제1컨테이너에이전트(240a), 사용자프로세스(250a)로 구성된다. 사용자프로세스(250a)가 컨테이너 추가 또는 삭제 요청을 컨테이너 에이전트에게 전달하여 컨테이너 변경이 가능하다.
도 9와 도 10은 본 발명의 또 다른 실시예에 따른 클러스터 자체의 노드를 추가 또는 삭제하는 자동 스케일링 방법을 설명하는 도면이다.
도 9와 도 10을 참조하면, API핸들러가 특정세션에 대한 컨테이너 추가 또는 삭제 API요청을 수신하여 클러스터 컨트롤러에 전달한다(S501). API핸들러는 사용자 또는 관리자의 요청에 의해 특정 세션에 대한 컨테이너 추가 또는 삭제 API 요청을 수신할 수 있다.
상기 클러스터 컨트롤러가 특정세션에 대한 컨테이너 추가 또는 삭제여부를 판단한다(S503). 클러스터 컨트롤러(100)는 API를 수신하여 특정세션에 대한 컨테이너 추가 또는 삭제가 필요한지 여부, 특정세션 및 특정세션 소유자가 해당 결정을 수행할 권한이 있는지, 특정세션에서 실제로 수행할 수 있는 자원이 충분히 있는지를 고려하여 컨테이너 추가 또는 삭제여부를 판단한다.
상기 클러스터 컨트롤러가 판단 결과에 따라 특정세션의 노드컨트롤러에 컨테이너 추가 또는 삭제 명령을 전달한다(S505). 특정세션의 노드컨트롤러가 컨테이너엔진에 컨테이너 추가 또는 삭제 명령을 전달한다(S507). 컨테이너엔진이 컨테이너 추가 또는 삭제를 실행한다(S509). 사용자 단말 또는 관리자 단말로부터 컨테이너 추가 또는 삭제 요청에 의해 컨테이너 변경이 가능하다.
이후에, 클러스터 컨트롤러가 노드 추가 또는 삭제 여부를 판단한다(S511). 기존에 있는 노드만으로 컨테이너 추가가 불가능한지를 판단하여, 최대 허용 노드 개수 및 신규 노드의 사양 옵션을 규정한 관리자 설정에 따라 노드 추가 여부를 판단한다. 컨테이너 삭제가 필요한 경우를 판단하여, 최소 유지 노드 개수 등을 규정한 관리자 설정에 따라 노드 삭제 여부를 판단한다.
노드 추가가 필요한 경우, 클러스터 컨트롤러는 클러스터 플랫폼(400)의 API를 호출하여 새로운 노드(200n+1)를 추가하고, 노드 삭제가 필요한 경우 삭제가 필요한 노드에 컨테이너가 있는지 여부를 확인하여 클러스터 플랫폼(400)이 노드를 삭제한다(S513). 노드 삭제가 필요한 경우, 1개 이상의 노드에 대해 실행중인 컨테이너가 있는지 여부를 확인하여 신규 컨테이너의 스케줄링을 차단하고, 노드 컨트롤러를 통해 대기 또는 강제 종료한다.
즉, 클러스터 상에서 클러스터 자체의 노드를 추가 또는 삭제하는 자동 스케일링 시스템(10d)은 클러스터 컨트롤러(100)와 다수개의 노드들(200a, 200b, 200c, ... , 200n), API핸들러(300), 클러스터 플랫폼(400)으로 구성된다. API핸들러(300)는 사용자단말 또는 관리자단말의 요청에 의해 특정 세션에 대한 컨테이너 추가 또는 삭제 API 요청을 수신하고 클러스터 컨트롤러(100)에 전달할 수 있다. 클러스터 플랫폼(400)은 클러스터 컨트롤러로부터 노드의 추가 또는 삭제여부를 전달받아 노드를 추가하거나 삭제한다. 구체적으로, 해당 노드를 삭제할 것이라고 클러스터 컨트롤러가 표시(mark)를 하고 신규 컨테이너를 더 이상 할당하지 않도록 하고, batch 세션인 경우 관리자 설정에 따라 작업이 완료될 때까지 기다리거나 일정 시간 후 강제 종료한 후 해당 노드를 삭제하고, interactive 세션인 경우 관리자 설정에 따라 사용자에 의해 종료될 때까지 기다리거나 해당 컨테이너의 사용자에게 경고를 보내고 일정 시간이 지난 후 강제 종료하는 작업한 후 해당 노드를 삭제한다. 실행 중인 컨테이너가 없는 경우 즉시 해당 노드를 삭제한다. 즉, 기존 클라우드의 자동 스케일링은 사용자의 요청 작업이 매우 짧은 시간만 소요되어 노드 중단을 임의 시점에 할 수 있다는 가정 하에서 동작하는 것인데, 본 발명에서는 개별 컨테이너의 작업이 매우 오랜 시간 수행되기 때문에 임의 중단이 어려워 그 가정이 성립하지 않는 경우를 지원하기 위한 것이다.
발명의 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10; 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 시스템
100; 클러스터 컨트롤러 200a; 제1노드 200b; 제2노드 300c; 제3노드
210a; 제1노드컨트롤러 210b; 제2노드컨트롤러 210c; 제3노드컨트롤러
220a; 제1컨테이너엔진 220b; 제2컨테이너엔진 220c; 제3컨테이너엔진
230a; 제1컨테이너 230b; 제2컨테이너 230c; 제3컨테이너
240b; 제1컨테이너에이전트 240c; 제2컨테이너에이전트
250a; 제1사용자프로세스 250b; 제2사용자프로세스 250c; 제3사용자프로세스

Claims (6)

  1. 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법에 있어서,
    노드컨트롤러가 컨테이너엔진으로부터 컨테이너에 대한 이벤트정보 및 통계정보를 수신하는 단계;
    상기 노드컨트롤러가 감지된 이벤트정보 및 통계정보를 클러스터 컨트롤러에게 전달하는 단계;
    상기 클러스터 컨트롤러가 수신된 이벤트정보 및 통계정보에 기초하여 특정세션에 대한 컨테이너 추가 또는 삭제 여부를 판단하는 단계; 및
    상기 클러스터 컨트롤러가 판단 결과에 따라 특정세션의 노드컨트롤러에 컨테이너 추가 또는 삭제 명령을 전달하는 단계를 포함하고,
    특정세션의 노드컨트롤러가 컨테이너 엔진에 컨테이너 추가 또는 삭제 명령을 전달하는 단계; 및
    컨테이너엔진이 컨테이너 추가 또는 삭제를 실행하는 단계를 더 포함하고,
    상기 이벤트 정보는 하나의 세션에서 이벤트가 특정 횟수 이상 발생하는 경우에 생성되고, 상기 통계정보는 특정 주기마다 세션들을 검사하여 평균 CPU 사용률과 GPU 사용률 중 적어도 하나가 일정수준을 넘는 경우에 생성되는 것을 특징으로 하는 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법.


  2. 삭제
  3. 제1항에 있어서,
    상기 클러스터 컨트롤러가 모든 노드 컨트롤러에 컨테이너의 변경내용을 전달하는 단계;
    각각의 노드 컨트롤러가 각각의 컨테이너 에이전트에 컨테이너의 변경내용을 전달하는 단계를 더 포함하는 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법.
  4. 제3항에 있어서,
    컨테이너 에이전트가 사용자 프로세스가 미리 등록한 스크립트 또는 콜백함수를 실행하여 컨테이너의 변경내용을 사용자 프로세스에 전달하는 단계; 및
    사용자프로세스가 컨테이너의 변경내용에 따라 추가된 컨테이너를 연산작업에 포함시키거나 삭제된 컨테이너를 제외하는 단계를 더 포함하는 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법.
  5. 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법에 있어서,
    API핸들러가 특정세션에 대한 컨테이너 추가 또는 삭제 API요청을 수신하여 클러스터 컨트롤러에 전달하는 단계;
    상기 클러스터 컨트롤러가 특정세션에 대한 컨테이너 추가 또는 삭제여부를 판단하는 단계;
    상기 클러스터 컨트롤러가 판단 결과에 따라 특정세션의 노드컨트롤러에 컨테이너 추가 또는 삭제 명령을 전달하는 단계;
    특정세션의 노드컨트롤러가 컨테이너엔진에 컨테이너 추가 또는 삭제 명령을 전달하는 단계; 및
    컨테이너엔진이 컨테이너 추가 또는 삭제를 실행하는 단계를 포함하고,
    상기 클러스터 컨트롤러는 API를 수신하여 특정세션에 대한 컨테이너 추가 또는 삭제가 필요한지 여부, 특정세션 및 특정세션 소유자가 해당 결정을 수행할 권한이 있는지, 특정세션에서 실제로 수행할 수 있는 자원이 충분히 있는지를 고려하여 컨테이너 추가 또는 삭제 여부를 판단하는 것을 특징으로 하는 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법.

  6. 제5항에 있어서,
    상기 클러스터 컨트롤러가 노드 추가 또는 삭제 여부를 판단하는 단계; 및
    상기 클러스터 컨트롤러가 기존에 있는 노드만으로 컨테이너 추가가 불가능한지 여부 또는 컨테이너 삭제가 필요한 경우를 판단하여, 노드 추가 또는 삭제 여부를 판단하는 단계를 더 포함하는 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법.











KR1020210175274A 2021-12-09 2021-12-09 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템 KR102488390B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210175274A KR102488390B1 (ko) 2021-12-09 2021-12-09 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템
US18/246,895 US11977911B2 (en) 2021-12-09 2021-12-20 Method and system for automatically scaling multi-container-based computational session on cluster
JP2023519334A JP2023552036A (ja) 2021-12-09 2021-12-20 クラスタ上でマルチコンテナベースの演算セッションの自動スケーリング方法及びシステム
PCT/KR2021/019445 WO2023106503A1 (ko) 2021-12-09 2021-12-20 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210175274A KR102488390B1 (ko) 2021-12-09 2021-12-09 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR102488390B1 true KR102488390B1 (ko) 2023-01-13

Family

ID=84900233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210175274A KR102488390B1 (ko) 2021-12-09 2021-12-09 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템

Country Status (4)

Country Link
US (1) US11977911B2 (ko)
JP (1) JP2023552036A (ko)
KR (1) KR102488390B1 (ko)
WO (1) WO2023106503A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102680602B1 (ko) * 2023-11-07 2024-07-02 쿤텍 주식회사 분산 클러스터 환경의 허니팟 시스템 및 허니팟 운영 방법과 이를 수행하기 위한 컴퓨팅 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101740490B1 (ko) * 2015-12-29 2017-05-26 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 사전 오토 스케일링 시스템 및 그 방법
KR102032521B1 (ko) * 2018-12-26 2019-10-15 래블업(주) 컨테이너 기반의 gpu 가상화 방법 및 시스템
KR20200027783A (ko) * 2018-09-05 2020-03-13 주식회사 나눔기술 분산 지능모듈의 통합관리 시스템
KR20210067415A (ko) * 2019-11-29 2021-06-08 주식회사 데브스택 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10782990B1 (en) * 2015-11-24 2020-09-22 Amazon Technologies, Inc. Container telemetry
KR20170072552A (ko) * 2015-12-17 2017-06-27 에스케이텔레콤 주식회사 클라우드 개발 환경을 위한 컨테이너 서비스 방법 및 그 장치
US10135837B2 (en) * 2016-05-17 2018-11-20 Amazon Technologies, Inc. Versatile autoscaling for containers
US20190250946A1 (en) * 2018-02-13 2019-08-15 International Business Machines Corporation Migrating a software container taking into account resource constraints
KR20200070933A (ko) 2018-12-10 2020-06-18 주식회사 케이티 네트워크 기능 가상화 환경에서 동적 자원 스케일링 장치 및 방법
US11086683B2 (en) * 2019-05-16 2021-08-10 International Business Machines Corporation Redistributing workloads across worker nodes based on policy
US11182196B2 (en) * 2019-11-13 2021-11-23 Vmware, Inc. Unified resource management for containers and virtual machines
US11698820B2 (en) * 2020-02-25 2023-07-11 Hewlett Packard Enterprise Development Lp Autoscaling nodes of a stateful application based on role-based autoscaling policies
US20230062212A1 (en) * 2021-08-31 2023-03-02 International Business Machines Corporation Container lifecycle management
US20230125765A1 (en) * 2021-10-21 2023-04-27 International Business Machines Corporation Container pool management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101740490B1 (ko) * 2015-12-29 2017-05-26 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 사전 오토 스케일링 시스템 및 그 방법
KR20200027783A (ko) * 2018-09-05 2020-03-13 주식회사 나눔기술 분산 지능모듈의 통합관리 시스템
KR102032521B1 (ko) * 2018-12-26 2019-10-15 래블업(주) 컨테이너 기반의 gpu 가상화 방법 및 시스템
KR20210067415A (ko) * 2019-11-29 2021-06-08 주식회사 데브스택 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이예나. 다중 클러스터 환경 컴퓨팅 자원 기반 컨테이너 스케줄러. 2020년 12월 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102680602B1 (ko) * 2023-11-07 2024-07-02 쿤텍 주식회사 분산 클러스터 환경의 허니팟 시스템 및 허니팟 운영 방법과 이를 수행하기 위한 컴퓨팅 장치

Also Published As

Publication number Publication date
US11977911B2 (en) 2024-05-07
JP2023552036A (ja) 2023-12-14
WO2023106503A1 (ko) 2023-06-15
US20230289206A1 (en) 2023-09-14

Similar Documents

Publication Publication Date Title
US10791168B1 (en) Traffic aware network workload management system
JP5160176B2 (ja) 仮想マシンのための多数コンフィギュレーションによる通信管理のためのシステム、方法、およびプログラム
CN102187315B (zh) 在虚拟环境中获取用于服务器负载均衡的反馈信息的方法和装置
US11893406B2 (en) Using virtual local area networks in a virtual computer system
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US8863138B2 (en) Application service performance in cloud computing
US8327355B2 (en) Method, computer program product, and hardware product for supporting virtual machine guest migration overcommit
EP2228719A1 (en) Method of executing a virtual machine, computing system and computer program
WO2018166111A1 (zh) 基于集中控制器及dci设备的负载均衡的方法、系统、电子装置及计算机可读存储介质
US9576332B1 (en) Systems and methods for remote graphics processing unit service
EP3188008B1 (en) Virtual machine migration method and device
US10652213B2 (en) Agent-less micro-segmentation of a network
CN112003877A (zh) 一种网络隔离方法、装置、电子设备及存储介质
CN104580124A (zh) 协议栈选择方法、装置及设备
US11102142B2 (en) Methods and apparatus to perform dynamic load balancing for a multi-fabric environment in network-based computing
KR20110083084A (ko) 가상화를 이용한 서버 운영 장치 및 방법
CN109726005A (zh) 用于管理资源的方法、服务器系统和计算机程序产品
KR102488390B1 (ko) 클러스터 상에서 다중 컨테이너 기반 연산 세션의 자동 스케일링 방법 및 시스템
Lee et al. High-performance software load balancer for cloud-native architecture
JP2013218449A (ja) クラウドコンピューティングシステム
Karo et al. The application level placement scheduler
US11595414B2 (en) Threat mitigation in a virtualized workload environment using segregated shadow workloads
Guay et al. Early experiences with live migration of SR-IOV enabled InfiniBand
US20230138867A1 (en) Methods for application deployment across multiple computing domains and devices thereof
US20170116016A1 (en) Screen compression service method and virtual network apparatus for performing the method

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant