KR20220165050A - 파드를 배치하는 서버, 방법 및 컴퓨터 프로그램 - Google Patents

파드를 배치하는 서버, 방법 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20220165050A
KR20220165050A KR1020210073520A KR20210073520A KR20220165050A KR 20220165050 A KR20220165050 A KR 20220165050A KR 1020210073520 A KR1020210073520 A KR 1020210073520A KR 20210073520 A KR20210073520 A KR 20210073520A KR 20220165050 A KR20220165050 A KR 20220165050A
Authority
KR
South Korea
Prior art keywords
pod
pivot
mapped
worker
new
Prior art date
Application number
KR1020210073520A
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 KR1020210073520A priority Critical patent/KR20220165050A/ko
Publication of KR20220165050A publication Critical patent/KR20220165050A/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
    • 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

파드를 배치하는 서버는 대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드(Pivot Pod)를 생성하고, 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 피봇 파드에 대한 파드 명세서에 레이블 정보로 설정하는 피봇 파드 관리부, 물리 객체에 매핑된 신규 파드를 생성하고, 물리 객체가 위치하는 영역의 위치 정보를 신규 파드에 대한 파드 명세서에 레이블 정보로 설정하는 신규 파드 관리부 및 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 피봇 파드를 배치하고, 피봇 파드에 대한 파드 명세서 및 상기 신규 파드에 대한 파드 명세서에 기초하여 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 신규 파드를 배치하는 배치부를 포함할 수 있다.

Description

파드를 배치하는 서버, 방법 및 컴퓨터 프로그램{SERVER, METHOED AND COMPUTER PROGRAM FOR ASSIGNING POD}
본 발명은 파드를 배치하는 서버, 방법 및 컴퓨터 프로그램에 관한 것이다.
가상화 기술은 물리적인 자원을 효율적으로 사용하면서 보안을 높이기 위한 목적으로 물리 자원과 어플리케이션 사이에 추상화된 계층을 제공하는 기술이다.
서버 가상화 기술에는 '하이퍼바이저' 기반의 가상화 기술과 '컨테이너' 기반의 가상화 기술이 있다.
'하이퍼바이저' 기반의 가상화 기술은 하이퍼바이저를 통해 하드웨어를 에뮬레이션하는 방법으로 가상 이미지마다 게스트 운영체제를 사용한다.
'컨테이너' 기반의 가상화 기술은 커널을 공유하는 방법으로 하나의 호스트 운영체제에서 복수개의 운영체제를 가상화한다.
이러한, '컨테이너' 기반의 가상화 기술은 가상머신에 비해 적은 자원을 사용하고 호스트 운영체제를 공유하여 사용하기 때문에 실행 부하가 적어서 최근에 각광받고 있는 가상화 기술이다.
한편, 컨테이너의 생명주기 관리(즉, 컨테이너의 생성, 배치, 실행 시작 및 중지, 삭제 등) 및 컨테이너 오케스트레이션(Orchestration)은 쿠버네티스(Kubernetes)에서 가장 활발히 이루어지고 있다. 여기서, 쿠버네티스는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일 등을 제공하는 관리 시스템이다.
이러한, 쿠버네티스는 제어평면 역할을 하는 마스터 노드(Master Node) 및 신규 파드(Pod)를 실행하는 워커 노드(Worker Node)로 구성되어 있다. 여기서, 신규 파드는 사용자의 워크로드(Workload)를 실행하는 주체로서, 하나 이상의 컨테이너로 구성된다.
도 1a을 참조하면, 사용자 단말의 웹 브라우저 또는 쉘 명령행 인터페이스(Shell Command Line Interface)으로부터 신규 파드의 실행 명령을 수신하면, 마스터 노드는 스케쥴러를 통해 복수의 워커 노드 중 선정된 특정 워커 노드에 신규 파드를 배치하여 실행시킨다.
이 때, 마스터 노드가 신규 파드를 실행시킬 워커 노드를 선정하기 위해, 신규 파드의 요구사항(즉, 신규 파드가 요구하는 CPU와 메모리 용량)을 만족하는 워커 노드를 필터링하는 필터링 단계와 필터링된 워커 노드들 중에서 최적의 워커 노드를 선정하는 스코어링 단계가 수행된다.
필터링 단계에서는 신규 파드가 요구하는 CPU와 메모리 용량을 제공할 수 있는 워커 노드들만 후보 노드로서 한정시키는 쿠버네티스 스케줄링 규칙들(nodeSelector 규칙, nodeAffinity 규칙, podAffinity 규칙) 중 하나가 적용된다.
여기서, nodeSelector 규칙과 nodeAffinity 규칙은 복수의 워커 노드 중에서 신규 파드에 대한 파드 명세서에 표기된 레이블과 동일한 레이블을 가지는 워커 노드에 해당 신규 파드를 배치하는 규칙이다.
podAffinity 규칙은 신규 파드에 대한 파드 명세서에 표기된 레이블과 매칭되는 레이블을 가지는 파드가 실행중인 워커 노드에 신규 파드를 배치하는 규칙이다. 구체적으로, podAffinity 규칙은 신규 파드에 대한 파드 명세서에 워커 노드나 이미 실행 중인 파드의 레이블에 대한 규칙을 부여함으로써 신규 파드가 배치될 워커 노드를 선정하는 방식을 갖는다.
도 2는 nodeAffinity 규칙과 podAffinity 규칙이 적용된 파드 명세서의 예시 도면이다. 도 2를 참조하면, nodeAffinity 규칙이 적용된 파드 명세서(10)에는 'nodetype'이 'ssd' 레이블 또는 'gpu' 레이블을 가지고 있는 워커 노드에 신규 파드를 배치하라는 내용이 기재되어 있다.
이러한, nodeAffinity 규칙이 적용된 파드 명세서(10)는 고속 장치나 고속 그래픽 처리 장치를 구비한 워커 노드에 신규 파드를 배치할 때 사용할 수 있는 명세서이다.
nodeAffinity 규칙이 적용된 파드 명세서(10)에 따라 워커 노드의 스케줄링이 수행되기 위해서는 쿠버네티스 관리자가 쿠버네티스 명령행 인터페이스를 사용하여 사전에 'ssd' 레이블와 'gpu' 레이블을 워커 노드의 레이블에 명시해놔야 한다.
podAffinity 규칙이 적용된 파드 명세서(20)에는 'db' 레이블을 가진 파드가 이미 실행되고 있는 워커 노드에 신규 파드를 배치하라는 내용이 기재되어 있다.
이러한, podAffinity 규칙이 적용된 파드 명세서(20)는 빈번한 DB 접근이 필요한 WAS(Web Application Server) 파드를 데이터베이스를 제공하는 파드와 동일한 워커 노드에 배치하여 성능을 높이려고 할 경우나, 데이터베이스를 제공하는 파드들을 동일한 워커 노드에 몰아서 KSM에 의한 메모리 절감 효과를 극대화하고자 할 때 사용할 수 있는 명세서이다.
podAffinity 규칙이 적용된 파드 명세서(20)에 따라 워커 노드의 스케줄링이 수행되기 위해서는 쿠버네티스 관리자는 이미 실행중인 각 파드가 어떤 레이블을 가지고 있는지를 미리 파악하고, 신규 파드의 명세서에 해당 레이블을 명시할 수 있어야 한다.
도 1b를 참조하면, 물리 객체간 통신이 가상 객체를 매개로 제공될 경우, 서로 근접한 물리 객체들에 매핑된 가상 객체들이 쿠버네티스 스케줄링 규칙에 의해 서로 다른 워커 노드에 배치될 수 있다.
이로 인해 워커 노드 A에 배치된 가상 객체와 워커 노드 B에 배치된 가상 객체 간에 통신 지연시간이 증가하게 되고, 불필요한 인트라넷 트래픽이 유발하게 된다.
한국등록특허공보 제2101120호 (2020.04.08. 등록) 일본등록특허공보 제6374841호 (2018.07.27 등록)
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 물리 객체의 위치 정보를 이용하여 물리 객체에 매핑된 신규 파드를 복수의 워커 노드 중 어느 하나의 워커 노드에 배치하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 파드를 배치하는 서버는 대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드(Pivot Pod)를 생성하고, 상기 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 상기 피봇 파드에 대한 파드 명세서에 레이블 정보로 설정하는 피봇 파드 관리부; 물리 객체에 매핑된 신규 파드를 생성하고, 상기 물리 객체가 위치하는 영역의 위치 정보를 상기 신규 파드에 대한 파드 명세서에 레이블 정보로 설정하는 신규 파드 관리부; 및 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 피봇 파드를 배치하고, 상기 피봇 파드에 대한 파드 명세서 및 상기 신규 파드에 대한 파드 명세서에 기초하여 상기 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 신규 파드를 배치하는 배치부를 포함할 수 있다.
본 발명의 제 2 측면에 따른 파드 배치 서버에 의해 수행되는 파드를 배치하는 방법은 대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드(Pivot Pod)를 생성하는 단계; 상기 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 상기 피봇 파드에 대한 파드 명세서에 레이블 정보로 설정하는 단계; 물리 객체에 매핑된 신규 파드를 생성하는 단계; 상기 물리 객체가 위치하는 영역의 위치 정보를 상기 신규 파드에 대한 파드 명세서에 레이블 정보로 설정하는 단계; 및 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 피봇 파드를 배치하고, 상기 피봇 파드에 대한 파드 명세서 및 상기 신규 파드에 대한 파드 명세서에 기초하여 상기 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 신규 파드를 배치하는 단계를 포함할 수 있다.
본 발명의 제 3 측면에 따른 파드를 배치하는 명령어들의 시퀀스를 포함하는 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우, 대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드(Pivot Pod)를 생성하고, 상기 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 상기 피봇 파드에 대한 파드 명세서에 레이블 정보로 설정하고, 물리 객체에 매핑된 신규 파드를 생성하고, 상기 물리 객체가 위치하는 영역의 위치 정보를 상기 신규 파드에 대한 파드 명세서에 레이블 정보로 설정하고, 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 피봇 파드를 배치하고, 상기 피봇 파드에 대한 파드 명세서 및 상기 신규 파드에 대한 파드 명세서에 기초하여 상기 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 신규 파드를 배치하는 명령어들의 시퀀스를 포함할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 본 발명은 물리 객체의 위치 정보를 이용하여 물리 객체에 매핑된 신규 파드를 복수의 워커 노드 중 어느 하나의 워커 노드에 배치할 수 있다.
또한, 본 발명은 물리 객체의 위치 정보를 이용하여 서로 인접한 위치에 있는 물리 객체들에 매핑된 신규 파드들을 동일한 워커 노드에 배치함으로써 신규 파드들 간의 통신 효율을 높일 수 있다.
또한, 본 발명은 서로 인접한 위치에 있는 물리 객체들 간에 상호 작용을 제공함에 있어, 각 물리 객체 마다 일대일로 매핑되는 신규 파드를 생성하고, 물리 객체들의 위치 정보를 이용하여 각 물리 객체에 매핑된 신규 파드들을 동일한 또는 인접한 워커 노드에 배치함으로써 신규 파드들 간의 통신 지연시간을 단축시킬 수 있고, 불필요한 인트라넷 트래픽의 발생을 사전에 방지할 수 있다.
도 1a 내지 1b는 기존의 컨테이너 가상화 방법을 설명하기 위한 도면이다.
도 2는 다양한 방법의 스케쥴링 규칙이 적용된 파드 명세서를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른, 파드 배치 시스템의 구성도이다.
도 4는 본 발명의 일 실시예에 따른, 도 3에 도시된 파드 배치 서버의 블록도이다.
도 5는 본 발명의 일 실시예에 따른, 파드를 배치하는 방법을 설명하기 위한 도면이다.
도 6a 내지 6c는 본 발명의 다른 실시예에 따른, 파드를 배치하는 방법을 설명하기 위한 도면이다.
도 7a 내지 7b는 본 발명의 다른 실시예에 따른, 파드를 배치하는 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 다른 실시예에 따른, 파드를 배치하는 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른, 파드 배치 방법을 나타낸 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하, 첨부된 구성도 또는 처리 흐름도를 참고하여, 본 발명의 실시를 위한 구체적인 내용을 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른, 파드 배치 시스템의 구성도이다.
도 3을 참조하면, 파드 배치 시스템은 대상 공간이 분할된 복수의 영역에 매핑된 복수의 피봇 파드(Pivot Pod)를 이용하여 신규 파드를 복수의 워커 노드(110) 중 어느 하나의 워커 노드로 배치하는 파드 배치 서버(100)를 포함할 수 있다.
다만, 도 3의 파드 배치 시스템은 본 발명의 일 실시예에 불과하므로 도 3을 통해 본 발명이 한정 해석되는 것은 아니며, 본 발명의 다양한 실시예들에 따라 도 3과 다르게 구성될 수도 있다.
일반적으로, 도 3의 파드 배치 시스템의 각 구성요소들은 네트워크 (미도시)를 통해 연결된다. 네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.
각 구성요소들은 네트워크(미도시)를 통해 연결된다. 네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷 (WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 블루투스 통신, 적외선 통신, 초음파 통신, 가시광 통신(VLC: Visible Light Communication), 라이파이(LiFi) 등이 포함되나 이에 한정되지는 않는다.
파드 배치 서버(100)는 대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드를 생성할 수 있다.
파드 배치 서버(100)는 각 피봇 파드별로 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 피봇 파드에 대한 파드 명세서에 레이블 정보로서 설정할 수 있다.
여기서, 피봇 파드는 특별한 기능을 수행하지 않고, 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 레이블 정보로서 가지는 더미 파드(Dummy Pod)일 수 있다. 여기서, 위치 정보는 영역에 대한 지오해시 정보를 포함할 수 있다.
파드 배치 서버(100)는 물리 객체가 대상 공간에 위치한 경우, 물리 객체에 매핑된 신규 파드를 생성하고, 물리 객체가 위치하는 영역의 위치 정보를 신규 파드에 대한 파드 명세서에 레이블 정보로서 설정할 수 있다.
파드 배치 서버(100)는 복수의 워커 노드 중 어느 하나의 워커 노드에 피봇 파드를 배치할 수 있다. 예를 들어, 파드 배치 서버(100)는 워커 노드마다 하나씩 피봇 파드를 배치할 수 있다. 또는, 파드 배치 서버(100)는 워커 노드마다 기설정된 개수의 피봇 파드까지 피봇 파드를 배치할 수도 있다.
파드 배치 서버(100)는 각 피봇 파드별 피봇 파드에 대한 파드 명세서 및 물리 객체에 매핑된 신규 파드에 대한 파드 명세서에 기초하여 복수의 워커 노드 중 어느 하나의 워커 노드에 물리 객체에 매핑된 신규 파드를 배치할 수 있다.
예를 들어, 파드 배치 서버(100)는 물리 객체의 위치 정보와 동일한 위치 정보를 갖는 피봇 파드가 매핑된 워커 노드에 해당 물리 객체에 매핑된 신규 파드를 배치할 수 있다.
이하에서는 도 3의 파드 배치 시스템의 각 구성요소의 동작에 대해 보다 구체적으로 설명한다.
도 4는 본 발명의 일 실시예에 따른, 도 3에 도시된 파드 배치 서버(100)의 블록도이다.
도 4를 참조하면, 파드 배치 서버(100)는 피봇 파드 관리부(400), 신규 파드 관리부(410), 배치부(420) 및 워커 노드 관리부(430)를 포함할 수 있다. 다만, 도 4에 도시된 파드 배치 서버(100)는 본 발명의 하나의 구현 예에 불과하며, 도 4에 도시된 구성요소들을 기초로 하여 여러 가지 변형이 가능하다.
이하에서는 도 5 내지 7b를 함께 참조하여 도 4를 설명하기로 한다.
피봇 파드 관리부(400)는 대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드를 생성할 수 있다. 예를 들어, 피봇 파드 관리부(400)는 지오해시(Geo-Hash) 방법을 이용하여 대상 공간을 복수의 영역으로 분할할 수 있다. 여기서, 지오해시는 대상 공간을 격자(Grid) 형태로 분할하는 계층적 공간 데이터 구조를 의미한다. 이러한 지오해시 방법은 지오더 커브(Z-Order Curve), 공간 채움 커브(Space-Filling Curve) 등과 같은 2차원 공간을 분할하는 분할 기술 중 하나이다.
예를 들어, 피봇 파드 관리부(400)는 강남 지역을 격자(Grid) 형태로 복수의 영역으로 분할하고, 각 분할된 영역마다 식별자 정보가 다른 피봇 파드를 생성할 수 있다.
피봇 파드 관리부(400)는 각 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 각 피봇 파드에 대한 파드 명세서에 레이블 정보로서 설정할 수 있다.
여기서, 각 피봇 파드에 대한 파드 명세서에는 각 피봇 파드가 매핑된 영역에 대한 위치 정보에 해당하는 지오해시 정보가 포함될 수 있다.
예를 들어, 강남대로변에 해당하는 영역에 매핑된 피봇 파드에 대한 파드 명세서는 강남대로변에 해당하는 영역에 대한 지오해시 정보를 포함할 수 있다. 여기서, 지오해시 정보는 강남대로변에 해당하는 영역을 표현하는 GPS 좌표인 (37.49984981340243451, 127.02627271413803101)를 문자열 'wydm6d9sqw0'으로 표현한 정보일 수 있다.
지오해시 정보는 GPS 좌표 정보로 표현하는 것보다 더 짧은 문자열로 특정한 위치 영역을 표현할 수 있고, 이등분을 반복하는 횟수를 조정함으로써 큰 영역부터 작은 영역까지 모두 표현이 가능하다.
또한, 지오해시 정보는 GPS 좌표 정보처럼 한 지점(Point)을 표현하는 것이 아니라 특정 지점을 포함하는 영역을 표현하기 때문에 '강남역 주변'과 같이 일정한 위치 영역을 하나의 문자열로 표현하는데 유리하다.
또한, 지오해시 정보는 서로 근접한 영역들에 대한 지오해시 문자열들의 접두사(Prefix)가 일치하는 특성을 가지고 있기 때문에 둘 이상의 영역이 서로 얼마나 가까이에 위치하는지 판단할 때, 각 영역에 대한 지오해시 문자열의 접두사를 비교함으로써 단 시간에 영역 간의 근접도를 판단할 수 있다.
예를 들어, 역삼세무서 앞인 GPS 좌표 (37.498530, 127.030084)에 대한 길이 9인 지오해시 정보('wydm6dkkz')와 역삼세무서 길 건너편에서 2블록 떨어진 역삼1동 우체국 앞인 GPS 좌표 (37.499986, 127.032927)에 대한 길이 9인 지오해시 정보('wydm6dwt3')를 비교하면 지오해시 문자열의 접두사가 'wydm6d'로 동일하다.
비록, 남극(-90도), 북극(+90도), 본초자오선(-180도 및 +180도)과 같이 가장자리 부근에 위치한 영역들끼리는 지오해시 정보의 접두사가 일치하지 않는 문제가 있지만, 이미 다양한 방법으로 가장자리 부근에 위치한 영역들끼리 근접도를 계산할 수 있는 해법들이 존재하기 때문에 본 발명에서는 별도의 설명을 생략하기로 한다.
배치부(420)는 복수의 워커 노드 중 어느 하나의 워커 노드에 피봇 파드를 배치할 수 있다.
예를 들어, 배치부(420)는 쿠버네티스의 podAffinity 규칙을 사용하여 각 영역별로 생성된 피봇 파드를 복수의 워커 노드 중 어느 하나에 배치할 수 있다.
신규 파드 관리부(410)는 물리 객체에 매핑된 신규 파드를 생성할 수 있다.
신규 파드 관리부(410)는 물리 객체가 위치하는 영역의 GPS 좌표 정보를 지오해시 정보로 변환할 수 있다.
신규 파드 관리부(410)는 물리 객체가 위치하는 영역의 위치 정보를 물리 객체에 매핑된 신규 파드에 대한 파드 명세서에 레이블 정보로서 설정할 수 있다. 여기서, 위치 정보는 지오해시 정보를 포함할 수 있다.
예를 들어, 신규 파드 관리부(410)는 쿠버네티스의 podAffinity 규칙에 기초하여 물리 객체가 위치하는 영역의 위치 정보를 신규 파드에 대한 파드 명세서에 기재할 수 있다.
배치부(420)는 물리 객체에 매핑된 신규 파드가 생성된 이후, 각 영역별로 매핑된 피봇 파드에 대한 파드 명세서 및 물리 객체에 매핑된 신규 파드에 대한 파드 명세서에 기초하여 복수의 워커 노드 중 어느 하나의 워커 노드에 해당 신규 파드를 배치할 수 있다.
예를 들어, 배치부(420)는 쿠버네티스의 podAffinity 규칙에 따라 물리 객체에 매핑된 신규 파드에 대한 파드 명세서에 포함된 위치 정보와 동일한 값을 갖는 피봇 파드에 대한 파드 명세서가 있는 경우, 해당 피봇 파드가 실행중인 워커 노드에 물리 객체에 매핑된 신규 파드를 배치할 수 있다.
배치부(420)는 복수의 피봇 파드에 대한 파드 명세서에 포함된 위치 정보 및 물리 객체에 매핑된 신규 파드에 대한 파드 명세서에 포함된 위치 정보 간의 거리값을 계산할 수 있다.
배치부(420)는 계산된 거리값이 기설정된 거리값 내에 해당되는지 여부에 기초하여 복수의 피봇 파드 중 어느 하나의 피봇 파드를 선택할 수 있다.
배치부(420)는 복수의 워커 노드 중 선택된 피봇 파드가 배치되는 워커 노드를 선택하고, 선택된 워커 노드에 물리 객체에 매핑된 신규 파드를 배치할 수 있다.
예를 들어, 도 5를 참조하면, 제 1 피봇파드(
Figure pat00001
, 501)가 매핑된 영역에 물리 객체 A(50) 및 물리 객체 C(52)가 위치해 있을 경우, 배치부(420)는 물리 객체 A(50) 및 물리 객체 C(52)가 위치한 영역에 해당하는 위치 정보에 따른 쿠버네티스의 podAffinity 규칙에 따라, 물리 객체 A(50)에 매핑된 신규 파드(
Figure pat00002
)와 물리 객체 C(52)에 매핑된 신규 파드(
Figure pat00003
)를 제 1 피봇파드(
Figure pat00004
, 501)가 실행중인 제 1 워커 노드에 배치할 수 있다.
또한, 제 2 피봇파드(
Figure pat00005
, 503)가 매핑된 영역에 물리 객체 B(54)가 위치해 있을 경우, 배치부(420)는 물리 객체 B(54)가 위치한 영역에 해당하는 위치 정보에 따른 쿠버네티스의 podAffinity 규칙에 따라, 물리 객체 B(54)에 매핑된 신규 파드(
Figure pat00006
)를 제 2 피봇파드(
Figure pat00007
, 503)가 실행중인 제 N 워커 노드에 배치할 수 있다.
또한, 물리 객체 D(56)에 매핑된 신규 파드(
Figure pat00008
)가 생성되어 복수의 워커 노드 중 어느 하나의 워커 노드로 스케줄링하고자 할 경우, 배치부(420)는 물리 객체 D(56)에 매핑된 신규 파드(
Figure pat00009
)에 대한 파드 명세서에 포함된 위치 정보와 동일한 위치 정보를 가지는 제 3 피봇파드(
Figure pat00010
, 505)가 실행중인 제 2 워커 노드에 물리 객체 D(56)에 매핑된 신규 파드(
Figure pat00011
)를 배치할 수 있다.
또는, 복수의 피봇 파드 중 제 3 피봇파드(
Figure pat00012
, 505)에 대한 파드 명세서에 포함된 위치 정보와 물리 객체 D(56)에 매핑된 신규 파드(
Figure pat00013
)에 대한 파드 명세서에 포함된 위치 정보 간의 거리값이 기설정된 거리값 내에 포함되는 경우, 배치부(420)는 제 3 피봇파드(
Figure pat00014
, 505)가 배치된 제 2 워커 노드에 물리 객체 D(56)에 매핑된 신규 파드(
Figure pat00015
)를 배치할 수 있다.
앞서 상술한 바와 같이, 지오해시 정보를 파드 명세서의 레이블 정보로 가지는 피봇 파드를 활용하면, 기존 쿠버네티스의 podAffinity 규칙을 사용해서 지리적으로 가까운 물리 객체들에 매핑된 신규 파드들을 동일한 워커 노드로 배치할 수 있다.
따라서, 지리적으로 가까운 물리 객체들 간의 상호작용을 동일한 워커 노드에서 실행중인 신규 파드들 간의 상호작용으로 제공할 수 있다. 이에 따라 보다 낮은 지연시간으로 통신 서비스를 제공할 수 있고, 상호 작용에 소모되는 네트워크 트래픽을 경감시킬 수 있다.
만일, 복수개의 피봇 파드가 하나의 워커 노드에 배치될 경우, 피봇 파드들이 실행중인 워커 노드로 복수의 물리 객체에 매핑된 신규 파드들이 배치될 수 있다. 특정 시점 이후에 해당 워커 노드로는 추가로 진입하는 신규 파드들이 배치되지 못하고, 다른 워커 노드로 배치되게 된다. 이는 지우해시 정보를 활용한 기존 쿠버네티스의 podAffinity 규칙에 따른 효과를 훼손시키는 결과를 낳게 된다.
이러한 문제점이 발생되지 않기 위해, 복수의 피봇 파드 각각을 복수의 워커 노드 중 어느 하나로 배치할 때, 각 피봇 파드를 각 워커 노드에 균등하게 분산시켜 주는 것이 필요하다.
따라서, 배치부(420)는 피봇 파드가 배치되어 있는 워커 노드에 추가적인 피봇 파드를 배치하지 않는다. 예를 들어, 배치부(420)는 각 피봇 파드에 대한 파드 명세서에 설정된 레이블 정보에 특정 워커 노드에 대한 식별 정보가 존재하는지 여부를 검사함으로써 이미 피봇 파드가 배치된 워커 노드에 다른 피봇 파드를 배치하지 않도록 할 수 있다.
잠시, 도 6a를 참조하면, 도 6a는 제 1 영역(예컨대, 역삼세무서 주변)에 매핑된 제 1 피봇 파드를 다른 피봇 파드가 배치되지 않은 워커 노드에 배치하는 내용이 기재된 제 1 피봇 파드에 대한 파드 명세서(601)를 도시한 도면이고, 제 1 피봇 파드가 실행중인 워커 노드에 물리 객체에 매핑된 신규 파드를 배치하기 위한 신규 파드에 대한 파드 명세서(603)를 도시한 도면이다.
강남역과 같이 가상화 대상이 되는 물리 객체의 밀도가 높은 지역의 경우, 해당 지역의 특정 영역에 위치한 복수의 물리 객체에 매핑된 신규 파드들을 해당 특정 영역에 매핑된 워커 노드에서 모두 수용할 수 없는 상황이 발생될 수 있다.
예를 들어, 쿠버네티스의 podAffinity 규칙에 따라, 제 1 워커 노드로 배치되어야 할 신규 파드가 제 1 워커 노드가 수용할 수 있는 파드 개수의 한계로 인해 제 1 워커 노드로 배치되지 않고, 제 2 워커 노드로 배치될 수 있다. 지리적으로 인접한 복수의 신규 파드들이 제 1 워커 노드 및 제 2 워커 노드로 분산되어 배치됨으로써 신규 파드들 간의 상호작용에 있어 지연 시간이 늘어나게 된다.
이러한 문제점을 해결하기 위해, 본 발명은 특정 명령어(예컨대, kubectl label nodes <node-name> geoHash=wydm6d)를 사용하여 워커 노드마다 워커 노드에 대한 위치 정보 레이블을 설정하고, 쿠버네티스의 nodeSelector 또는 nodeAffinity 규칙을 사용하여 워커 노드에 피봇 파드를 배치할 수 있다.
구체적으로, 워커 노드 관리부(430)는 대상 지역에 대한 복수의 영역 중 적어도 하나의 영역에 해당하는 위치 정보를 복수의 워커 노드 중 적어도 어느 하나의 워커 노드에 대한 위치 정보 레이블로 설정할 수 있다.
워커 노드 관리부(430)는 위치 정보 레이블이 설정된 워커 노드를 적어도 하나의 영역을 관리하는 노드 관리 장치(예를 들어, 랙(Rack)에 매핑시킬 수 있다. 예를 들어, 워커 노드 관리부(430)는 대상 지역에 대한 각 영역에 워커 노드들이 매핑되도록 위치 정보 레이블이 설정된 워커 노드들을 해당 대상 지역을 관리하는 노드 관리 장치에 매핑시킬 수 있다.
배치부(420)는 워커 노드에 대한 위치 정보 레이블에 기초하여 복수의 워커 노드 중 어느 하나의 워커 노드에 피봇 파드를 배치할 수 있다.
배치부(420)는 복수의 워커 노드 중 피봇 파드에 대한 파드 명세서에 포함된 레이블 정보와 동일한 위치 정보 레이블을 갖는 워커 노드에 해당 피봇 파드를 배치할 수 있다.
예를 들어, 도 7a를 참조하면, 물리 객체의 밀도가 높은 제 1 지역(예컨대, 강남, 701)의 경우, 제 1 지역에 위치한 물리 객체들에 매핑된 신규 파드들 간의 트래픽이 해당 지역을 관리하는 노드 관리 장치로부터 벗어나지 않도록 하기 위해, 해당 노드 관리 장치에 매핑된 워커 노드 각각에 피봇 파드을 배치할 수 있다. 예를 들어, 배치부(420)는 제 1 지역을 관리하는 노드 관리 장치에 매핑된 복수의 워커 노드에 대하여, 제 1 지역의 제 1 영역에 매핑된 제 1 피봇 파드(
Figure pat00016
)에 제 1 워커 노드를 배치하고, 제 2 영역에 매핑된 제 2 피봇 파드(
Figure pat00017
)에 제 2 워커 노드를 배치하고, 제 3 영역에 매핑된 제 3 피봇 파드(
Figure pat00018
)에 제 3 워커 노드를 배치하고, 제 4 영역에 매핑된 제 4 피봇 파드(
Figure pat00019
)에 제 4 워커 노드를 배치함으로써 제 1 지역에 위치한 복수의 물리 객체에 매핑된 신규 파드들 간에 원할한 통신 및 상호 작용이 이루어지도록 할 수 있다.
예를 들어, 도 7b를 참조하면, 물리 객체의 밀도가 낮은 지역(예컨대, 강원도, 705)의 경우, 복수의 피봇 파드(
Figure pat00020
,
Figure pat00021
,
Figure pat00022
,
Figure pat00023
)가 하나의 워커 노드에서 실행될 수 있도록 동일 워커 노드로 복수의 피봇 파드(
Figure pat00024
,
Figure pat00025
,
Figure pat00026
,
Figure pat00027
)를 배치하는 것이 효율적이다. 이를 위해, 배치부(420)는 지리적으로 인접한 각 영역의 지오해시 정보에 대하여 podAffinity 규칙을 적용함으로써 인접한 지역에 매핑된 피봇 파드들을 동일한 워커 노드에 배치할 수 있다.
다시 도 4로 돌아오면, 워커 노드 관리부(430)는 노드 관리 장치에 복수의 워커 노드를 매핑시킬 수 있다.
배치부(420)는 노드 관리 장치에 매핑된 워커 노드마다 기실정된 개수의 피봇 파드까지 실행할 수 있도록 피봇 파드를 배치할 수 있다.
배치부(420)는 적어도 하나의 영역에 위치한 물리 객체에 매핑된 신규 파드를 노드 관리 장치에 매핑된 복수의 워커 노드 중 하나의 워커 노드에 배치할 수 있다.
배치부(420)는 노드 관리 장치에 매핑된 복수의 워커 노드 중 물리 객체가 위치한 영역에 인접한 영역에 매핑된 피봇 파드가 배치된 워커 노드에 물리 객체에 매핑된 신규 파드를 배치할 수 있다.
. 예를 들어, 도 6b를 참조하면, 배치부(420)는 지오해시 정보가 'wydm6'인 영역에 매핑된 한 대의 노드 관리 장치에 9 개의 워커 노드가 매핑되어 있고, 워커 노드마다 최대 9개의 피봇 파드를 배치할 수 있다.
배치부(420)는 붉은색으로 표시된 영역(60)에 신규 피봇 파드를 매핑할 때, 노드 관리 장치에 매핑된 복수의 워커 노드 중 하나의 워커 노드에 신규 피봇 파드를 배치할 수 있다.
배치부(420)는 붉은색으로 표시된 영역(60)에 대하여, 상하좌우로 인접해 있는 영역에 매핑된 피봇 파드들이 배치된 워커 노드들 중 하나의 워커 노드를 선택하고, 선택된 워커 노드에 신규 피봇 파드를 배치할 수 있다. 도 6c는 도 6b의 붉은색으로 표시된 영역(60)에 대하여 상하좌우로 인접해 있는 영역(62, 64, 66, 68)에 매핑된 피봇 파드들이 배치된 워커 노드들 중 선택된 하나의 워커 노드에 신규 피봇 파드가 배치되기 위한 신규 피봇 파드에 대한 파드 명세서(605)를 도시한 도면이다.
다른 실시예에 따르면, 피봇 파드 관리부(400)는 특정 기능을 수행중인 파드에 대한 파드 명세서에, 해당 파드가 매핑된 영역에 해당하는 위치 정보를 레이블 정보로 설정함으로써 해당 파드가 피봇 파드의 역할을 담당하도록 설정할 수도 있다.
예를 들어, 도 8을 참조하면, 피봇 파드 관리부(400)는 특정 지역 내에서 운행중인 차량에 매핑된 차량 컨테이너를 관리하는 VCM(Vehicle Container Manager) 파드에 대한 파드 명세서에 VCM 파드가 매핑된 영역에 해당하는 위치 정보를 레이블 정보로서 설정하여 VCM 파드가 피봇 파드의 역할을 수행하도록 할 수 있다.
배치부(420)는 동일한 지역 내에서 운행중인 차량에 일대일로 매핑된 VC 파드(본 발명의 신규 파드와 동일함)에 대한 파드 명세서와 각 VC 파드의 생명주기를 관리하는 VCM 파드에 대한 파드 명세서 각각에 포함된 위치 정보가 동일한 값을 갖는 경우, 동일한 위치 정보를 갖는 VC 파드들에 동일한 워커 노드를 배치할 수 있다. 이를 통해, 차량 간 통신 V2X를 더욱 효율적으로 제공할 수 있다.
한편, 당업자라면, 피봇 파드 관리부(400), 신규 파드 관리부(410), 배치부(420) 및 워커 노드 관리부(430) 각각이 분리되어 구현되거나, 이 중 하나 이상이 통합되어 구현될 수 있음을 충분히 이해할 것이다.
도 9는 본 발명의 일 실시예에 따른, 파드 배치 방법을 나타낸 흐름도이다.
도 9를 참조하면, 단계 S901에서 파드 배치 서버(100)는 대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드를 생성할 수 있다.
단계 S903에서 파드 배치 서버(100)는 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 피봇 파드에 대한 파드 명세서에 레이블 정보로서 설정할 수 있다.
단계 S905에서 파드 배치 서버(100)는 물리 객체에 매핑된 신규 파드를 생성할 수 있다.
단계 S907에서 파드 배치 서버(100)는 물리 객체가 위치하는 영역의 위치 정보를 신규 파드에 대한 파드 명세서에 레이블 정보로서 설정할 수 있다.
단계 S909에서 파드 배치 서버(100)는 복수의 워커 노드 중 어느 하나의 워커 노드에 피봇 파드를 배치하고, 피봇 파드에 대한 파드 명세서 및 신규 파드에 대한 파드 명세서에 기초하여 복수의 워커 노드 중 어느 하나의 워커 노드에 신규 파드를 배치할 수 있다.
상술한 설명에서, 단계 S901 내지 S909는 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 파드 배치 서버
400: 피봇 파드 관리부
410: 신규 파드 관리부
420: 배치부
430: 워커 노드 관리부

Claims (20)

  1. 파드를 배치하는 서버에 있어서,
    대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드(Pivot Pod)를 생성하고, 상기 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 상기 피봇 파드에 대한 파드 명세서에 레이블 정보로 설정하는 피봇 파드 관리부;
    물리 객체에 매핑된 신규 파드를 생성하고, 상기 물리 객체가 위치하는 영역의 위치 정보를 상기 신규 파드에 대한 파드 명세서에 레이블 정보로 설정하는 신규 파드 관리부; 및
    복수의 워커 노드 중 어느 하나의 워커 노드에 상기 피봇 파드를 배치하고, 상기 피봇 파드에 대한 파드 명세서 및 상기 신규 파드에 대한 파드 명세서에 기초하여 상기 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 신규 파드를 배치하는 배치부
    를 포함하는 것인, 서버.
  2. 제 1 항에 있어서,
    상기 위치 정보는 상기 영역에 대한 지오해시 정보를 포함하는 것인, 서버.
  3. 제 1 항에 있어서,
    상기 배치부는
    상기 복수의 피봇 파드에 대한 파드 명세서에 포함된 위치 정보 및 상기 신규 파드에 대한 파드 명세서에 포함된 위치 정보 간의 거리값이 기설정된 거리값 내에 해당하는지 여부에 기초하여 상기 복수의 피봇 파드 중 어느 하나의 피봇 파드를 선택하고,
    상기 복수의 워커 노드 중 상기 선택된 피봇 파드가 배치되어 있는 워커 노드를 선택하고, 상기 선택된 워커 노드에 상기 신규 파드를 배치하는 것인, 서버.
  4. 제 1 항에 있어서,
    상기 배치부는 상기 피봇 파드가 배치되어 있는 워커 노드에 추가적인 피봇 파드를 배치하지 않는 것인, 서버.
  5. 제 1 항에 있어서,
    상기 복수의 영역 중 적어도 하나의 영역에 해당하는 위치 정보를 상기 복수의 워커 노드 중 적어도 어느 하나의 워커 노드에 대한 위치 정보 레이블로 설정하고,
    상기 위치 정보 레이블이 설정된 워커 노드를 상기 적어도 하나의 영역을 관리하는 노드 관리 장치에 매핑시키는 워커 노드 관리부
    를 더 포함하는 것인, 서버.
  6. 제 5 항에 있어서,
    상기 배치부는 상기 워커 노드에 대한 위치 정보 레이블에 기초하여 상기 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 피봇 파드를 배치하는 것인, 서버.
  7. 제 5 항에 있어서,
    상기 배치부는 상기 복수의 워커 노드 중 상기 피봇 파드에 대한 파드 명세서에 포함된 레이블 정보와 동일한 위치 정보 레이블을 갖는 워커 노드에 상기 피봇 파드를 배치하는 것인, 서버.
  8. 제 5 항에 있어서,
    상기 워커 노드 관리부는 상기 노드 관리 장치에 복수의 워커 노드를 매핑시키고,
    상기 배치부는 상기 노드 관리 장치에 매핑된 워커 노드마다 기설정된 개수의 피봇 파드까지 실행할 수 있도록 상기 피봇 파드를 배치하는 것인, 서버.
  9. 제 8 항에 있어서,
    상기 배치부는 상기 적어도 하나의 영역에 위치한 물리 객체에 매핑된 신규 파드를 상기 노드 관리 장치에 매핑된 복수의 워커 노드 중 하나의 워커 노드에 배치하는 것인, 서버.
  10. 제 8 항에 있어서,
    상기 배치부는 상기 노드 관리 장치에 매핑된 복수의 워커 노드 중 상기 물리 객체가 위치한 영역에 인접한 영역에 매핑된 피봇 파드가 배치된 워커 노드에 상기 물리 객체에 매핑된 신규 파드를 배치하는 것인, 서버.
  11. 파드 배치 서버에 의해 수행되는 파드를 배치하는 방법에 있어서,
    대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드(Pivot Pod)를 생성하는 단계;
    상기 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 상기 피봇 파드에 대한 파드 명세서에 레이블 정보로 설정하는 단계;
    물리 객체에 매핑된 신규 파드를 생성하는 단계;
    상기 물리 객체가 위치하는 영역의 위치 정보를 상기 신규 파드에 대한 파드 명세서에 레이블 정보로 설정하는 단계; 및
    복수의 워커 노드 중 어느 하나의 워커 노드에 상기 피봇 파드를 배치하고, 상기 피봇 파드에 대한 파드 명세서 및 상기 신규 파드에 대한 파드 명세서에 기초하여 상기 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 신규 파드를 배치하는 단계
    를 포함하는 파드 배치 방법.
  12. 제 11 항에 있어서,
    상기 위치 정보는 상기 영역에 대한 지오해시 정보를 포함하는 것인, 파드 배치 방법.
  13. 제 11 항에 있어서,
    상기 배치하는 단계는
    상기 복수의 피봇 파드에 대한 파드 명세서에 포함된 위치 정보 및 상기 신규 파드에 대한 파드 명세서에 포함된 위치 정보 간의 거리값이 기설정된 거리값 내에 해당하는지 여부에 기초하여 상기 복수의 피봇 파드 중 어느 하나의 피봇 파드를 선택하는 단계 및
    상기 복수의 워커 노드 중 상기 선택된 피봇 파드가 배치되어 있는 워커 노드를 선택하고, 상기 선택된 워커 노드에 상기 신규 파드를 배치하는 단계를 포함하는 것인, 파드 배치 방법.
  14. 제 11 항에 있어서,
    상기 복수의 영역 중 적어도 하나의 영역에 해당하는 위치 정보를 상기 복수의 워커 노드 중 적어도 어느 하나의 워커 노드에 대한 위치 정보 레이블로 설정하는 단계 및
    상기 위치 정보 레이블이 설정된 워커 노드를 상기 적어도 하나의 영역을 관리하는 노드 관리 장치에 매핑시키는 단계를 더 포함하는 것인, 파드 배치 방법.
  15. 제 14 항에 있어서,
    상기 배치하는 단계는
    상기 워커 노드에 대한 위치 정보 레이블에 기초하여 상기 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 피봇 파드를 배치하는 단계를 포함하는 것인, 파드 배치 방법.
  16. 제 14 항에 있어서,
    상기 배치하는 단계는
    상기 복수의 워커 노드 중 상기 피봇 파드에 대한 파드 명세서에 포함된 레이블 정보와 동일한 위치 정보 레이블을 갖는 워커 노드에 상기 피봇 파드를 배치하는 단계를 포함하는 것인, 파드 배치 방법.
  17. 제 14 항에 있어서,
    상기 노드 관리 장치에 복수의 워커 노드를 매핑시키는 단계를 더 포함하고,
    상기 배치하는 단계는
    상기 노드 관리 장치에 매핑된 워커 노드마다 기설정된 개수의 피봇 파드까지 실행할 수 있도록 상기 피봇 파드를 배치하는 단계를 포함하는 것인, 파드 배치 방법.
  18. 제 17 항에 있어서,
    상기 배치하는 단계는
    상기 적어도 하나의 영역에 위치한 물리 객체에 매핑된 신규 파드를 상기 노드 관리 장치에 매핑된 복수의 워커 노드 중 하나의 워커 노드에 배치하는 단계를 포함하는 것인, 파드 배치 방법.
  19. 제 17 항에 있어서,
    상기 배치하는 단계는
    상기 노드 관리 장치에 매핑된 복수의 워커 노드 중 상기 물리 객체가 위치한 영역에 인접한 영역에 매핑된 피봇 파드가 배치된 워커 노드에 상기 물리 객체에 매핑된 신규 파드를 배치하는 단계를 포함하는 것인, 파드 배치 방법.
  20. 파드를 배치하는 명령어들의 시퀀스를 포함하는 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은 컴퓨팅 장치에 의해 실행될 경우,
    대상 공간을 분할한 복수의 영역에 매핑되도록 복수의 피봇 파드(Pivot Pod)를 생성하고, 상기 피봇 파드가 매핑된 영역에 해당하는 위치 정보를 상기 피봇 파드에 대한 파드 명세서에 레이블 정보로 설정하고,
    물리 객체에 매핑된 신규 파드를 생성하고, 상기 물리 객체가 위치하는 영역의 위치 정보를 상기 신규 파드에 대한 파드 명세서에 레이블 정보로 설정하고,
    복수의 워커 노드 중 어느 하나의 워커 노드에 상기 피봇 파드를 배치하고, 상기 피봇 파드에 대한 파드 명세서 및 상기 신규 파드에 대한 파드 명세서에 기초하여 상기 복수의 워커 노드 중 어느 하나의 워커 노드에 상기 신규 파드를 배치하는 명령어들의 시퀀스를 포함하는, 컴퓨터 판독가능 기록매체에 저장된 컴퓨터 프로그램.
KR1020210073520A 2021-06-07 2021-06-07 파드를 배치하는 서버, 방법 및 컴퓨터 프로그램 KR20220165050A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210073520A KR20220165050A (ko) 2021-06-07 2021-06-07 파드를 배치하는 서버, 방법 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210073520A KR20220165050A (ko) 2021-06-07 2021-06-07 파드를 배치하는 서버, 방법 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR20220165050A true KR20220165050A (ko) 2022-12-14

Family

ID=84438425

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210073520A KR20220165050A (ko) 2021-06-07 2021-06-07 파드를 배치하는 서버, 방법 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR20220165050A (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6374841B2 (ja) 2015-08-03 2018-08-15 日本電信電話株式会社 仮想マシン配置装置および仮想マシン配置方法
KR102101120B1 (ko) 2018-12-28 2020-04-16 연세대학교 산학협력단 사용자 특성을 반영한 클러스터 기반 가상 네트워크 기능의 자원 할당 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6374841B2 (ja) 2015-08-03 2018-08-15 日本電信電話株式会社 仮想マシン配置装置および仮想マシン配置方法
KR102101120B1 (ko) 2018-12-28 2020-04-16 연세대학교 산학협력단 사용자 특성을 반영한 클러스터 기반 가상 네트워크 기능의 자원 할당 방법

Similar Documents

Publication Publication Date Title
US11210759B2 (en) Placement optimization for virtualized graphics processing
EP3552103B1 (en) Capacity reservation for virtualized graphics processing
EP3652645B1 (en) Graphical rendering using multiple graphics processors
US9223609B2 (en) Input/output operations at a virtual block device of a storage server
CN108399101B (zh) 资源调度的方法、装置和系统
US9465641B2 (en) Selecting cloud computing resource based on fault tolerance and network efficiency
WO2015196931A1 (zh) 基于磁盘io的虚拟资源分配方法及装置
WO2017113201A1 (zh) 一种网络服务的生命周期管理方法及设备
CN104951360A (zh) 基于Docker的配置管理方式及装置
US20170132747A1 (en) Scaling for virtualized graphics processing
CN110795029B (zh) 一种云硬盘管理方法、装置、服务器及介质
US11036535B2 (en) Data storage method and apparatus
US11915051B2 (en) Allocating resources for network function virtualization
CN105589660B (zh) 一种数据分布方法及装置
CN114418828A (zh) 显存管理方法、装置、设备、存储介质及程序产品
CN117061352A (zh) 多模态虚拟网元的实现方法、装置、设备及介质
CN103049546B (zh) 一种管理、访问系统日志的方法和装置
KR101936942B1 (ko) 분산형 컴퓨팅 가속화 플랫폼 장치 및 분산형 컴퓨팅 가속화 플랫폼 운영 방법
CN110795209B (zh) 一种控制方法和装置
KR101973946B1 (ko) 분산형 컴퓨팅 가속화 플랫폼 장치
KR20220165050A (ko) 파드를 배치하는 서버, 방법 및 컴퓨터 프로그램
CN107704618B (zh) 一种基于aufs文件系统的热迁徙方法和系统
CN114816665B (zh) 混合编排系统及超融合架构下虚拟机容器资源混合编排方法
CN113489701A (zh) 防火墙配置方法、系统、设备
CN109428743B (zh) QoS配置随虚拟机迁移的方法、服务器、交换机及系统