KR20220064785A - Apparatus and method for neural network group connection - Google Patents

Apparatus and method for neural network group connection Download PDF

Info

Publication number
KR20220064785A
KR20220064785A KR1020200151274A KR20200151274A KR20220064785A KR 20220064785 A KR20220064785 A KR 20220064785A KR 1020200151274 A KR1020200151274 A KR 1020200151274A KR 20200151274 A KR20200151274 A KR 20200151274A KR 20220064785 A KR20220064785 A KR 20220064785A
Authority
KR
South Korea
Prior art keywords
profile
container
kubernetes
service
node
Prior art date
Application number
KR1020200151274A
Other languages
Korean (ko)
Inventor
전재호
강성주
이준희
전인걸
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020200151274A priority Critical patent/KR20220064785A/en
Publication of KR20220064785A publication Critical patent/KR20220064785A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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

Abstract

Disclosed are a device and method for generating a container profile. The device for generating a container profile according to one embodiment of the present invention comprises: a profile setting part that defines a container profile considering the characteristics of a service in a Kubernetes environment, and generates the profile information in which a priority of the container profile is set; a profile generating part that receives the profile information and generates the container profile for the service; a collection part that collects an indicator on a system corresponding to the Kubernetes environment; and a processing part that outputs a result of operating the container profile based on the indicator. Therefore, the present invention is capable of providing an efficient initial allocation placement of the container.

Description

컨테이너 프로파일 생성 장치 및 방법 {APPARATUS AND METHOD FOR NEURAL NETWORK GROUP CONNECTION}Apparatus and method for creating container profile {APPARATUS AND METHOD FOR NEURAL NETWORK GROUP CONNECTION}

본 발명은 컨테이너 프로파일 생성 기술에 관한 것으로, 보다 상세하게는 쿠버네티스 환경에서 컨테이너 프로파일을 생성하는 기술에 관한 것이다. The present invention relates to a technology for creating a container profile, and more particularly, to a technology for creating a container profile in a Kubernetes environment.

마이크로서비스는 클라우드에 배포 된 고도로 모듈화 된 애플리케이션을 구축하기 위한 새로운 소프트웨어 아키텍처로 간주된다. 마이크로서비스 아키텍처를 기반으로 개발 된 애플리케이션은 각각 독립적으로 배포 할 수 있는 서로 다른 소규모 서비스로 구성된다.Microservices are seen as a new software architecture for building highly modular applications deployed in the cloud. An application developed based on a microservices architecture consists of different small services that can each be deployed independently.

마이크로서비스는 주로 가상 머신 (VM)에 비해 경량 가상화로 컨테이너에 패키징된다. 이는 상당한 시간이 소요될 수 있는 운영 체제를 시작하거나 중지 할 필요가 없기 때문이다. 경량 특성으로 인해 매우 동적으로 인스턴스화, 종료 및 관리 할 수 있고 이러한 경량 컨테이너 기반 가상화를 활용하면 VM을 사용하는 것보다 더 빠르고 효율적으로 애플리케이션 응답 시간과 리소스 활용 측면 모두에서 자동 확장을 개선 할 수 있다. 현재 확장 가능한 마이크로서비스를 배포하기 위해 Kubernetes와 같은 다양한 오픈 소스 컨테이너 관리 플랫폼이 제공되고 있다. 오늘날 소프트웨어 엔지니어에서 사이트 안정성 엔지니어에 이르기까지 거의 모든 엔지니어링 직책은 Kubernetes를 사용합니다. 사이트 안정성 엔지니어는 런타임 시 서비스 품질 (QoS) 저하에 대한 대응뿐만 아니라 성능 및 용량 계획과 같은 운영 측면을 위한 자동화 된 솔루션을 개발한다. Kubernetes와 같은 컨테이너 관리 플랫폼은 시간이 지남에 따라 변화하는 워크로드에서 작동하기 위해 일련의 정적 규칙을 기반으로 반응형 자동 확장 방법을 제공한다. 일반적인 관행은 주로 고정 된 인프라 수준의 CPU 기반 자동 확장 규칙을 사용하여 수요에 따라 특정 서비스에 할당 된 컨테이너 인스턴스의 수를 늘리거나 줄이는 것이다. 고정 된 규칙을 사용하는 이러한 기존의 사후 자동 확장 방법은 클라우드 기반 애플리케이션의 일부 기본 시나리오에 적합 할 수 있지만 특정 동적 워크로드 시나리오가 있는 환경에서 바람직하지 않은 QoS 또는 낮은 리소스 사용률을 초래할 수 있다. Microservices are often packaged in containers with lightweight virtualization compared to virtual machines (VMs). This is because there is no need to start or stop the operating system, which can take a significant amount of time. Because of their lightweight nature, they can be instantiated, terminated, and managed very dynamically, and leveraging this lightweight container-based virtualization can improve autoscaling in both application response times and resource utilization, both faster and more efficiently than using VMs. Various open source container management platforms such as Kubernetes are currently available for deploying scalable microservices. Today, almost every engineering position, from software engineer to site reliability engineer, uses Kubernetes. Site reliability engineers develop automated solutions for operational aspects such as performance and capacity planning, as well as responding to quality of service (QoS) degradation at runtime. Container management platforms like Kubernetes provide reactive autoscaling methods based on a set of static rules to operate on workloads that change over time. A common practice is primarily to use fixed infrastructure-level CPU-based autoscaling rules to increase or decrease the number of container instances allocated to a particular service based on demand. This traditional post-auto-scaling method using fixed rules may be suitable for some basic scenarios of cloud-based applications, but may lead to undesirable QoS or low resource utilization in environments with certain dynamic workload scenarios.

기존 쿠버네티스 스케줄러는 모든 파드에 동일한 알고리즘 정책을 적용한다. 하지만 마이크로서비스 아키텍처가 발전하면서 사용자는 하나 또는 복수의 응용(컨테이너)에서 다양한 서비스를 끊김 없이 지원받을 수 있기를 원한다. 기존 쿠버네티스 스케줄러는 이러한 서비스 별 컨테이너에 대한 독립적인 우선순위를 정의하지 않고 일괄적인 배포 정책을 적용하기 때문에, 서비스 별로 파드의 요구사항이 다른 상황에서 유연한 대처를 하지 못하는 단점이 있다. 이러한 문제들을 해결하기 위해서 쿠버네티스 환경에서 컨테이너를 생성하기 전에 선별적 우선순위를 정의하는 컨테이너 프로파일 생성 시스템 및 방법이 필요하다.The existing Kubernetes scheduler applies the same algorithm policy to all Pods. However, as the microservice architecture evolves, users want to be able to receive seamless support of various services from one or multiple applications (containers). The existing Kubernetes scheduler does not define an independent priority for containers for each service and applies a batch deployment policy, so it has the disadvantage of not being able to respond flexibly in situations where the requirements of Pods for each service are different. In order to solve these problems, a container profile creation system and method that define selective priorities before creating containers in a Kubernetes environment are needed.

한편, 한국등록특허 제 10-2114339 호“액티브/스탠바이 모델을 지원하는 쿠버네티스 시스템의 동작 방법”는 모니터링 프로세서에서 복수의 포드들의 오류 상태를 점검하고, 상기 모니터링 프로세서에서 상기 복수의 포드들 중에서 액티브 포드가 존재하는지 판별하고, 상기 모니터링 프로세서에서 상기 복수의 포드들 중에서 상기 액티브 포드가 존재하지 않을 때, 상기 오류 상태를 점검한 결과로써 상기 복수의 포드들 중에서 오류가 존재하지 않는 어느 하나의 포드를 액티브 포드로 설정 변경하도록 쿠버네티스 서버로 요청하는 액티브/스탠바이 모델을 지원하는 쿠버네티스 시스템의 동작 방법에 관하여 개시하고 있다.Meanwhile, Korean Patent Registration No. 10-2114339 “Operation method of a Kubernetes system supporting active/standby model” checks the error state of a plurality of pods in a monitoring processor, and checks the error status of a plurality of pods in the monitoring processor It is determined whether an active pod exists, and when the active pod does not exist among the plurality of pods in the monitoring processor, as a result of checking the error state, any one pod that does not have an error among the plurality of pods Disclosed is a method of operating a Kubernetes system that supports the active/standby model that requests the Kubernetes server to change the configuration of the pod to the active pod.

본 발명은 쿠버네티스 환경에서 사용자가 필요로 하는 서비스에 대한 프로파일을 정의하고, 정의 된 프로파일을 기반으로 컨테이너의 효과적인 초기 할당 배치를 제공하는 것을 목적으로 한다.An object of the present invention is to define a profile for a service required by a user in a Kubernetes environment, and to provide effective initial allocation of containers based on the defined profile.

또한, 본 발명은 컨테이너의 효과적인 초기 할당 배치를 통해 응용 프로그램에 대한 QoS를 보장하고 효율적인 컴퓨팅 자원의 분배를 제공하는 것을 목적으로 한다.Another object of the present invention is to ensure QoS for application programs and provide efficient distribution of computing resources through effective initial allocation and placement of containers.

상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 장치는 쿠버네티스 환경에서 서비스의 특성을 고려한 컨테이너 프로파일을 정의하고, 상기 컨테이너 프로파일의 우선순위를 설정한 프로파일 정보를 생성하는 프로파일 설정부; 상기 프로파일 정보를 입력 받아 상기 서비스에 대한 컨테이너 프로파일을 생성하는 프로파일 생성부; 상기 쿠버네티스 환경에 상응하는 시스템 상의 지표를 수집하는 수집부 및 상기 지표에 기반하여 상기 컨테이너 프로파일을 연산한 결과를 출력하는 처리부를 포함한다.In order to achieve the above object, an apparatus for generating a container profile according to an embodiment of the present invention defines a container profile in consideration of service characteristics in a Kubernetes environment, and generates profile information in which the priority of the container profile is set. Profile setting unit; a profile generator configured to receive the profile information and generate a container profile for the service; and a collection unit that collects an indicator on a system corresponding to the Kubernetes environment, and a processing unit that outputs a result of calculating the container profile based on the indicator.

또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 방법은 쿠버네티스 환경에서 서비스의 특성을 고려한 컨테이너 프로파일을 정의하고, 상기 컨테이너 프로파일의 우선순위를 설정한 프로파일 정보를 생성하는 단계; 상기 프로파일 정보를 입력 받아 상기 서비스에 대한 컨테이너 프로파일을 생성하는 단계; 상기 쿠버네티스 환경에 상응하는 시스템 상의 지표를 수집하는 단계 및 상기 지표에 기반하여 상기 컨테이너 프로파일을 연산한 결과를 출력하는 단계를 포함한다.In addition, the container profile creation method according to an embodiment of the present invention for achieving the above object defines a container profile in consideration of service characteristics in a Kubernetes environment, and collects profile information that sets the priority of the container profile. generating; receiving the profile information and generating a container profile for the service; collecting an index on a system corresponding to the Kubernetes environment; and outputting a result of calculating the container profile based on the index.

본 발명은 쿠버네티스 환경에서 사용자가 필요로 하는 서비스에 대한 프로파일을 정의하고, 정의 된 프로파일을 기반으로 컨테이너의 효과적인 초기 할당 배치를 제공할 수 있다.The present invention can define a profile for a service required by a user in a Kubernetes environment, and provide effective initial allocation of containers based on the defined profile.

또한, 본 발명은 컨테이너의 효과적인 초기 할당 배치를 통해 응용 프로그램에 대한 QoS를 보장하고 효율적인 컴퓨팅 자원의 분배를 제공할 수 있다.In addition, the present invention can guarantee QoS for application programs and provide efficient distribution of computing resources through effective initial allocation of containers.

도 1은 본 발명의 일실시예에 따른 쿠버네티스 시스템 환경을 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 장치를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 방법을 나타낸 동작흐름도이다.
도 4는 본 발명의 일실시예에 따른 쿠버네티스 시스템의 작업 수행 동작을 나타낸 시퀀스 다이어그램이다.
도 5는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
1 is a block diagram illustrating a Kubernetes system environment according to an embodiment of the present invention.
2 is a block diagram illustrating an apparatus for generating a container profile according to an embodiment of the present invention.
3 is an operation flowchart illustrating a method for generating a container profile according to an embodiment of the present invention.
4 is a sequence diagram illustrating a task execution operation of a Kubernetes system according to an embodiment of the present invention.
5 is a diagram illustrating a computer system according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will be described in detail with reference to the accompanying drawings as follows. Here, repeated descriptions, well-known functions that may unnecessarily obscure the gist of the present invention, and detailed descriptions of configurations will be omitted. The embodiments of the present invention are provided in order to more completely explain the present invention to those of ordinary skill in the art. Accordingly, the shapes and sizes of elements in the drawings may be exaggerated for clearer description.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part "includes" a certain element, it means that other elements may be further included, rather than excluding other elements, unless otherwise stated.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 쿠버네티스 시스템 환경을 나타낸 블록도이다.1 is a block diagram illustrating a Kubernetes system environment according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 쿠버네티스 시스템은 쿠버네티스 마스터(100) 및 복수개의 쿠버네티스 노드들(200)을 포함한다.Referring to FIG. 1 , a Kubernetes system according to an embodiment of the present invention includes a Kubernetes master 100 and a plurality of Kubernetes nodes 200 .

쿠버네티스 마스터(100)는 쿠버네티스의 설정 환경을 저장하고 전체 클러스터를 관리할 수 있다.The Kubernetes master 100 may store the Kubernetes configuration environment and manage the entire cluster.

쿠버네티스 마스터(100)는 API 서버(110), 스케줄러(120), 컨트롤러 매니저(130) 및 ETCD(140)를 포함한다.The Kubernetes master 100 includes an API server 110 , a scheduler 120 , a controller manager 130 , and an ETCD 140 .

API 서버(110)는 쿠버네티스의 모든 기능을 REST API를 통해서 제공하고 그에 대한 명령을 처리할 수 있다.The API server 110 may provide all functions of Kubernetes through the REST API and process commands therefor.

스케줄러(120)는 파드(POD), 서비스 등 각 리소스들을 적절한 노드에 할당할 수 있다.The scheduler 120 may allocate each resource, such as a pod (POD) and a service, to an appropriate node.

컨트롤러 매니저(130)는 컨트롤러(Replica controller, Service controller, Volume Controller, Node controller 등)를 생성하고, 컨트롤러를 각 노드에 배포하며, 컨트롤러를 관리할 수 있다.The controller manager 130 may create a controller (replica controller, service controller, volume controller, node controller, etc.), distribute the controller to each node, and manage the controller.

ETCD(140)는 쿠버네티스 클러스터의 데이터베이스 역할을 수행하며 클러스터의 상태나 설정 정보를 저장할 수 있다. The ETCD 140 serves as a database of the Kubernetes cluster and may store cluster state or configuration information.

쿠버네티스 노드(200)는 단일 컨테이너 또는 복수의 컨테이너의 집합인 파드처럼 쿠버네티스 위에서 동작하는 워크로드를 호스팅 할 수 있다.The Kubernetes node 200 may host a workload running on Kubernetes like a Pod, which is a single container or a set of multiple containers.

쿠버네티스 노드(200)는 KUBELET(210) 및 POD를 포함한다.A Kubernetes node 200 includes a KUBELET 210 and a POD.

KUBELET(210)은 노드에 배포되는 에이전트로, 쿠버네티스 마스터(100)의 API 서버(110)와 통신을 하면서, 노드가 수행해야 할 명령을 받아서 수행하고, 반대로 노드의 상태 및 자원 정보를 cAdvisor를 통해 수집할 수 있다.KUBELET (210) is an agent distributed to the node. While communicating with the API server 110 of the Kubernetes master 100, the KUBELET 210 receives and executes commands to be performed by the node. can be collected through

POD는 단일 컨테이너 또는 복수의 컨테이너의 집합을 포함할 수 있다.The POD may include a single container or a set of a plurality of containers.

이 때, 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 장치(220)는 하나의 파드에 포함되어 구동될 수 있다.At this time, the container profile generating apparatus 220 according to an embodiment of the present invention may be included in one pod and driven.

도 2는 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 장치를 나타낸 블록도이다.2 is a block diagram illustrating an apparatus for generating a container profile according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 장치(220)는 프로파일 설정부(221), 프로파일 생성부(222), 수집부(223) 및 처리부(224)를 포함한다.Referring to FIG. 2 , the container profile generating apparatus 220 according to an embodiment of the present invention includes a profile setting unit 221 , a profile generating unit 222 , a collecting unit 223 , and a processing unit 224 .

프로파일 설정부(221)는 쿠버네티스 환경에서 서비스 또는 애플리케이션의 특성을 고려하여 컨테이너 프로파일을 정의하고, 상기 컨테이너 프로파일의 우선순위를 설정한 프로파일 정보를 생성할 수 있다. 예를 들어, 우선순위는 1-4 로 설정될 수 있다. 이 때, 사용자는 사용자 단말 장치(10)를 통해 컨테이너 프로파일을 정의할 수도 있다.The profile setting unit 221 may define a container profile in consideration of the characteristics of a service or application in the Kubernetes environment, and generate profile information in which the priority of the container profile is set. For example, the priority may be set to 1-4. In this case, the user may define a container profile through the user terminal device 10 .

컨테이너 프로파일은 Bandwidth Critical Profile, Energy-Efficiency Profile, Memory-Intensive Profile, Compute-Intensive Profile, Persistence Critical Profile 및 Data-Intensive Profile 를 포함할 수 있다.The container profile may include a Bandwidth Critical Profile, an Energy-Efficiency Profile, a Memory-Intensive Profile, a Compute-Intensive Profile, a Persistence Critical Profile, and a Data-Intensive Profile.

Bandwidth Critical Profile 은 프로파일 설정부(221)의 구성 요소 중 Network Utilization을 최우선 순위로 설정할 수 있다.Bandwidth Critical Profile may set Network Utilization as the highest priority among the components of the profile setting unit 221 .

Energy-Efficiency Profile 은 프로파일 설정부(221)의 구성 요소 중 CPU Utilization을 최우선 순위로 설정하고, CPU Util.의 Downscaling Threshold를 target value로 설정할 수 있다(예: Upscaling Threshold: 80%, Downscaling Threshold: 30%)). Energy-Efficiency Profile may set CPU Utilization as the highest priority among the components of the profile setting unit 221 and may set Downscaling Threshold of CPU Util. as a target value (eg, Upscaling Threshold: 80%, Downscaling Threshold: 30) %)).

Memory Intensive Profile 은 프로파일 설정부(221)의 구성 요소 중 Memory Util.을 최우선 순위로 설정하고, Mem. Util의 Upscaling Threshold를 Target Value로 설정할 수 있다(예: Upscaling Threshold: 80%, Downscaling Threshold: 30%)).In the Memory Intensive Profile, among the components of the profile setting unit 221, Memory Util. is set as the highest priority, and Mem. Util's Upscaling Threshold can be set as Target Value (eg Upscaling Threshold: 80%, Downscaling Threshold: 30%).

Compute Intensive Profile 은 프로파일 설정부(221)의 구성 요소 중 CPU Util.을 최우선 순위로 설정하고, CPU. Util의 Upscaling Threshold를 Target Value로 설정할 수 있다(예: Upscaling Threshold: 80%, Downscaling Threshold: 30%)). 이 때, 프로파일 설정부(221)는 부가적으로 하드웨어 가속기(GPU, FPGA)와 함께 병렬처리 할 수 있는 상황에서는 CPU Util.과 가속기 Util.을 함께 우선순위로 설정하고, CPU Util과 가속기 Util.의 Upscaling Threshold를 Target Value로 설정할 수 있다. Compute Intensive Profile sets CPU Util. as the highest priority among the components of the profile setting unit 221, and CPU. Util's Upscaling Threshold can be set as Target Value (eg Upscaling Threshold: 80%, Downscaling Threshold: 30%). At this time, the profile setting unit 221 additionally sets the CPU Util. and the accelerator Util. as a priority together in a situation in which parallel processing can be performed together with the hardware accelerator (GPU, FPGA), and the CPU Util and the accelerator Util. Upscaling Threshold of can be set as Target Value.

Persistence Critical Profile 는 프로파일 설정부(221)의 구성요소 중 어느 것도 우선순위 설정을 두지 않을 수 있다. 다만, 각 구성요소에 "Adaptive value."을 0~10%로 설정해서 생성 된 Pod가 쿠버네티스의 Autoscaling 정책 적용 시 termination 되는 횟수를 최대한 줄이도록 하는데 목적을 둘 수 있다.In the Persistence Critical Profile, none of the components of the profile setting unit 221 may set priority. However, by setting “Adaptive value.” in each component to 0~10%, the purpose of the created Pod is to reduce the number of terminations as much as possible when the Kubernetes Autoscaling policy is applied.

Data-Intensive Profile 는 프로파일 설정부(221)의 구성 요소 중 Disk Util.을 최우선 순위로 설정할 수 있다.In the Data-Intensive Profile, Disk Util. among the components of the profile setting unit 221 may be set as the highest priority.

Adaptation value 는 잦은 Autoscaling 으로 인한 컨테이너 생성/종료에 따른 오버헤드를 줄이기 위해서 0~10% 범위의 임계치를 설정할 수 있다. Adaptation value는 각 프로파일에서 우선순위로 두는 자원의 utilization 값에서 adaptation value 만큼 더할 수 있다. Adaptation value can set a threshold in the range of 0 to 10% to reduce overhead caused by container creation/termination due to frequent autoscaling. Adaptation value can be added as much as adaptation value from utilization value of resource prioritized in each profile.

프로파일 생성부(222)는 프로파일 설정부(221)에서 설정한 프로파일 정보를 입력 받아 상기 서비스 또는 애플리케이션에 대한 컨테이너 프로파일을 생성할 수 있다.The profile generating unit 222 may receive the profile information set by the profile setting unit 221 and generate a container profile for the service or application.

이 때, 프로파일 생성부(222)는 전달받은 구성요소의 조합을 바탕으로 특정 서비스에 특화된 프로파일을 생성 또는 애플리케이션 특성에 맞는 프로파일을 생성할 수 있다.In this case, the profile generator 222 may generate a profile specialized for a specific service or a profile suitable for application characteristics based on the combination of the received components.

이 때, 프로파일 생성부(222)는 Network, Cpu, Memory, Disk 및 Adaptation Interval 를 포함할 수 있다.In this case, the profile generator 222 may include Network, CPU, Memory, Disk, and Adaptation Interval.

수집부(223)는 상기 쿠버네티스 환경에 상응하는 시스템 상의 지표를 수집할 수 있다.The collection unit 223 may collect indicators on the system corresponding to the Kubernetes environment.

즉, 수집부(223)는 쿠버네티스 노드(마스터, 워커)(200), 컨테이너, 호스트 컴퓨터의 리소스 등과 같은 다양한 시스템 상의 지표(메트릭)를 apiServer(110)와 프로메테우스와 같은 오프소스 모니터링 도구를 통해서 수집하는 시스템 모니터링을 수행할 수 있다.That is, the collection unit 223 collects indicators (metrics) on various systems such as Kubernetes nodes (masters, workers) 200, containers, and resources of the host computer, apiServer 110 and open-source monitoring tools such as Prometheus. System monitoring collected through

이 때, 수집부(223)는 Node metric 모듈, Container metric 모듈, Application metric 모듈, Kubernetes metric 모듈 및 Profile metric 모듈을 포함할 수 있다.In this case, the collection unit 223 may include a Node metric module, a Container metric module, an Application metric module, a Kubernetes metric module, and a Profile metric module.

이 때, 수집부(223)는 상기 5개의 모듈을 통해서 시스템 모니터링을 수행할 수 있다.In this case, the collection unit 223 may perform system monitoring through the five modules.

Node metric 모듈은 쿠버네티스 컨테이너를 실행하는 하드웨어 호스트(노드)에 대한 지표를 모니터링 할 수 있다.The Node metric module can monitor metrics for hardware hosts (nodes) running Kubernetes containers.

이 때, Node metric 모듈은 노드의 CPU, Memory, 디스크, 네트워크 사용량과 노드 OS와 커널에 대한 정보를 수집할 수 있다.At this time, the node metric module can collect information about the node's CPU, memory, disk, and network usage, as well as the node OS and kernel.

Container metric 모듈은 노드에서 기동되는 각각의 컨테이너에 대한 정보를 수집할 수 있다. The container metric module can collect information about each container started in a node.

이 때, Container metric 모듈은 컨테이너의 CPU, Memory, 디스크, 네트워크 사용량을 수집할 수 있다.At this time, the container metric module can collect CPU, memory, disk, and network usage of the container.

Application metric 모듈은 컨테이너 안에서 구동되는 개별 애플리케이션의 지표를 수집할 수 있다. 이 때, Application metric 모듈은 애플리케이션의 응답시간, 에러 빈도 등을 수집할 수 있다.Application metric module can collect metrics of individual applications running in containers. In this case, the application metric module may collect application response time, error frequency, and the like.

Kubernetes metric 모듈은 쿠버네티스 자체 자원인 서비스, Pod, 계정 정보 등을 수집할 수 있다.The Kubernetes metric module can collect Kubernetes' own resources, such as services, pods, and account information.

Profile metric 모듈은 프로파일 생성기를 통해서 생성 된 프로파일 정보를 수집할 수 있다. 이 때, 프로파일 정보는 프로파일 리스트 중 하나일 수 있다.Profile metric module can collect profile information created through the profile generator. In this case, the profile information may be one of the profile list.

처리부(224)는 수집부(223)에서 수집한 지표에 기반하여 상기 컨테이너 프로파일을 연산한 결과를 출력할 수 있다.The processing unit 224 may output a result of calculating the container profile based on the index collected by the collection unit 223 .

이 때, 처리부(224)는 수집한 지표를 바탕으로 최적의 프로파일 도출을 위한 연산을 처리할 수 있다.In this case, the processing unit 224 may process an operation for deriving an optimal profile based on the collected index.

이 때, 처리부(224)는 Proactive 연산을 수행하는 Proactive 연산부 및 Reactive 연산을 수행하는 Reactive 연산부를 포함할 수 있다.In this case, the processing unit 224 may include a proactive operation unit that performs a proactive operation and a reactive operation unit that performs a reactive operation.

Proactive 연산부는 설정 된 프로파일을 적용하기 위해서 필요한 자원량을 미리 예측할 수 있다.The proactive operation unit can predict in advance the amount of resources required to apply the set profile.

이 때, Proactive 연산부는 입력으로 Reactive 연산의 출력, Node Metric을 통한 노드의 자원사용량, Container Metric을 통한 컨테이너의 자원 사용량, Application Metric을 통한 응용프로그램의 수행시간 및 응답시간, Kubernetes Metric을 통한 서비스 및 Pod 정보, Profile Metric 값을 입력 받을 수 있다.At this time, the Proactive operation unit outputs reactive operation as input, node resource usage through node metric, container resource usage through container metric, application execution time and response time through application metric, service and Pod information and Profile Metric values can be input.

이 때, Proactive 연산부는 미래 생성될 컨테이너들의 자원을 미리 예측하는 모듈로서 과거 데이터(historical data)를 기본으로 연산을 수행하는데, 기본적으로 강화 학습 또는 뉴럴 네트워크와 같은 학습알고리즘(Learning Algorithm)을 사용한다. 연산과정에서 At this time, the Proactive operation unit is a module that predicts the resources of containers to be created in the future, and performs operations based on historical data. Basically, a learning algorithm such as reinforcement learning or a neural network is used. . in the process of calculation

이 때, Proactive 연산부는 출력으로 프로파일에서 정의한 우선순위 자원, 정의된 자원의 targetAverageUtilization value 및 app name = Profile name 을 출력할 수 있다.At this time, the Proactive operation unit may output the priority resource defined in the profile, the targetAverageUtilization value of the defined resource, and app name = Profile name as outputs.

이 때, Proactive 연산부는 연산의 출력을 HPA(20)에 전달해서 pod template을 정의하는데 참조하도록 할 수 있다.At this time, the Proactive operation unit may transmit the output of the operation to the HPA 20 to refer to defining the pod template.

Reactive 연산부는 특정 프로파일이 설정되지 않은 컨테이너들에 대한 연산을 수행할 수 있다.The reactive operation unit may perform an operation on containers for which a specific profile is not set.

이 때, Reactive 연산부는 새로 생성 될 컨테이너의 미래 자원 사용량을 예측하지 않기 때문에 현재 CPU 사용량을 기준으로 연산을 처리할 수 있다.At this time, since the reactive operation unit does not predict the future resource usage of the newly created container, it can process the calculation based on the current CPU usage.

이 때, Reactive 연산부는 출력으로 [클러스터 내 파드의 CPU 사용량의 합 / Target CPU 사용량 ]의 연산 결과로, 파드의 개수를 출력으로 정의할 수 있다.At this time, the reactive operation unit can define the number of pods as the output as the result of [sum of CPU usage of pods in the cluster / target CPU usage] as output.

도 3은 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 방법을 나타낸 동작흐름도이다.3 is an operation flowchart illustrating a method for generating a container profile according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 방법은 먼저 컨테이너 프로파일을 설정할 수 있다(S310).Referring to FIG. 3 , in the method for generating a container profile according to an embodiment of the present invention, a container profile may be set first ( S310 ).

즉, 단계(S310)는 쿠버네티스 환경에서 서비스 또는 애플리케이션의 특성을 고려하여 컨테이너 프로파일을 정의하고, 상기 컨테이너 프로파일의 우선순위를 설정한 프로파일 정보를 생성할 수 있다. 예를 들어, 우선순위는 1-4 로 설정될 수 있다. 이 때, 사용자는 사용자 단말 장치(10)를 통해 컨테이너 프로파일을 정의할 수도 있다.That is, in step S310, a container profile may be defined in consideration of the characteristics of a service or application in the Kubernetes environment, and profile information in which the priority of the container profile is set may be generated. For example, the priority may be set to 1-4. In this case, the user may define a container profile through the user terminal device 10 .

컨테이너 프로파일은 Bandwidth Critical Profile, Energy-Efficiency Profile, Memory-Intensive Profile, Compute-Intensive Profile, Persistence Critical Profile 및 Data-Intensive Profile 를 포함할 수 있다.The container profile may include a Bandwidth Critical Profile, an Energy-Efficiency Profile, a Memory-Intensive Profile, a Compute-Intensive Profile, a Persistence Critical Profile, and a Data-Intensive Profile.

Bandwidth Critical Profile 은 프로파일 설정부(221)의 구성 요소 중 Network Utilization을 최우선 순위로 설정할 수 있다.Bandwidth Critical Profile may set Network Utilization as the highest priority among the components of the profile setting unit 221 .

Energy-Efficiency Profile 은 프로파일 설정부(221)의 구성 요소 중 CPU Utilization을 최우선 순위로 설정하고, CPU Util.의 Downscaling Threshold를 target value로 설정할 수 있다(예: Upscaling Threshold: 80%, Downscaling Threshold: 30%)). Energy-Efficiency Profile may set CPU Utilization as the highest priority among the components of the profile setting unit 221 and may set Downscaling Threshold of CPU Util. as a target value (eg, Upscaling Threshold: 80%, Downscaling Threshold: 30) %)).

Memory Intensive Profile 은 프로파일 설정부(221)의 구성 요소 중 Memory Util.을 최우선 순위로 설정하고, Mem. Util의 Upscaling Threshold를 Target Value로 설정할 수 있다(예: Upscaling Threshold: 80%, Downscaling Threshold: 30%)).In the Memory Intensive Profile, among the components of the profile setting unit 221, Memory Util. is set as the highest priority, and Mem. Util's Upscaling Threshold can be set as Target Value (eg Upscaling Threshold: 80%, Downscaling Threshold: 30%).

Compute Intensive Profile 은 프로파일 설정부(221)의 구성 요소 중 CPU Util.을 최우선 순위로 설정하고, CPU. Util의 Upscaling Threshold를 Target Value로 설정할 수 있다(예: Upscaling Threshold: 80%, Downscaling Threshold: 30%)). 이 때, 프로파일 설정부(221)는 부가적으로 하드웨어 가속기(GPU, FPGA)와 함께 병렬처리 할 수 있는 상황에서는 CPU Util.과 가속기 Util.을 함께 우선순위로 설정하고, CPU Util과 가속기 Util.의 Upscaling Threshold를 Target Value로 설정할 수 있다. Compute Intensive Profile sets CPU Util. as the highest priority among the components of the profile setting unit 221, and CPU. Util's Upscaling Threshold can be set as Target Value (eg Upscaling Threshold: 80%, Downscaling Threshold: 30%). At this time, the profile setting unit 221 additionally sets the CPU Util. and the accelerator Util. as a priority together in a situation in which parallel processing can be performed together with the hardware accelerator (GPU, FPGA), and the CPU Util and the accelerator Util. Upscaling Threshold of can be set as Target Value.

Persistence Critical Profile 는 프로파일 설정부(221)의 구성요소 중 어느 것도 우선순위 설정을 두지 않을 수 있다. 다만, 각 구성요소에 "Adaptive value."을 0~10%로 설정해서 생성 된 Pod가 쿠버네티스의 Autoscaling 정책 적용 시 termination 되는 횟수를 최대한 줄이도록 하는데 목적을 둘 수 있다.In the Persistence Critical Profile, none of the components of the profile setting unit 221 may set priority. However, by setting “Adaptive value.” in each component to 0~10%, the purpose of the created Pod is to reduce the number of terminations as much as possible when the Kubernetes Autoscaling policy is applied.

Data-Intensive Profile 는 프로파일 설정부(221)의 구성 요소 중 Disk Util.을 최우선 순위로 설정할 수 있다.In the Data-Intensive Profile, Disk Util. among the components of the profile setting unit 221 may be set as the highest priority.

Adaptation value 는 잦은 Autoscaling 으로 인한 컨테이너 생성/종료에 따른 오버헤드를 줄이기 위해서 0~10% 범위의 임계치를 설정할 수 있다. Adaptation value는 각 프로파일에서 우선순위로 두는 자원의 utilization 값에서 adaptation value 만큼 더할 수 있다. Adaptation value can set a threshold in the range of 0 to 10% to reduce overhead caused by container creation/termination due to frequent autoscaling. Adaptation value can be added as much as adaptation value from utilization value of resource prioritized in each profile.

또한, 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 방법은 컨테이너 프로파일을 생성할 수 있다(S320).In addition, the method for generating a container profile according to an embodiment of the present invention may generate a container profile ( S320 ).

즉, 단계(S320)는 단계(S310)에서 설정한 프로파일 정보를 입력 받아 상기 서비스 또는 애플리케이션에 대한 컨테이너 프로파일을 생성할 수 있다.That is, in step S320, a container profile for the service or application may be generated by receiving the profile information set in step S310.

이 때, 단계(S320)는 전달받은 구성요소의 조합을 바탕으로 특정 서비스에 특화된 프로파일을 생성 또는 애플리케이션 특성에 맞는 프로파일을 생성할 수 있다.In this case, in step S320, a profile specialized for a specific service or a profile suitable for application characteristics may be created based on the combination of the received components.

이 때, 단계(S320)는 Network, Cpu, Memory, Disk 및 Adaptation Interval 를 포함할 수 있다.In this case, step S320 may include Network, CPU, Memory, Disk, and Adaptation Interval.

또한, 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 방법은 지표를 수집할 수 있다(S330).In addition, the method for generating a container profile according to an embodiment of the present invention may collect indicators ( S330 ).

즉, 단계(S330)는 상기 쿠버네티스 환경에 상응하는 시스템 상의 지표를 수집할 수 있다.That is, step S330 may collect indicators on the system corresponding to the Kubernetes environment.

이 때, 단계(S330)는 쿠버네티스 노드(마스터, 워커)(200), 컨테이너, 호스트 컴퓨터의 리소스 등과 같은 다양한 시스템 상의 지표(메트릭)를 apiServer(110)와 프로메테우스와 같은 오프소스 모니터링 도구를 통해서 수집하는 시스템 모니터링을 수행할 수 있다.At this time, in step S330, metrics (metrics) on various systems such as Kubernetes nodes (master, worker) 200, containers, and resources of the host computer, apiServer 110 and open source monitoring tools such as Prometheus System monitoring collected through

이 때, 단계(S330)는 Node metric 모듈, Container metric 모듈, Application metric 모듈, Kubernetes metric 모듈 및 Profile metric 모듈을 포함할 수 있다.In this case, step S330 may include a Node metric module, a Container metric module, an Application metric module, a Kubernetes metric module, and a Profile metric module.

이 때, 단계(S330)는 상기 5개의 모듈을 통해서 시스템 모니터링을 수행할 수 있다.In this case, in step S330, system monitoring may be performed through the five modules.

Node metric 모듈은 쿠버네티스 컨테이너를 실행하는 하드웨어 호스트(노드)에 대한 지표를 모니터링 할 수 있다.The Node metric module can monitor metrics for hardware hosts (nodes) running Kubernetes containers.

이 때, Node metric 모듈은 노드의 CPU, Memory, 디스크, 네트워크 사용량과 노드 OS와 커널에 대한 정보를 수집할 수 있다.At this time, the node metric module can collect information about the node's CPU, memory, disk, and network usage, as well as the node OS and kernel.

Container metric 모듈은 노드에서 기동되는 각각의 컨테이너에 대한 정보를 수집할 수 있다. The container metric module can collect information about each container started in a node.

이 때, Container metric 모듈은 컨테이너의 CPU, Memory, 디스크, 네트워크 사용량을 수집할 수 있다.At this time, the container metric module can collect CPU, memory, disk, and network usage of the container.

Application metric 모듈은 컨테이너 안에서 구동되는 개별 애플리케이션의 지표를 수집할 수 있다. 이 때, Application metric 모듈은 애플리케이션의 응답시간, 에러 빈도 등을 수집할 수 있다.Application metric module can collect metrics of individual applications running in containers. In this case, the application metric module may collect application response time, error frequency, and the like.

Kubernetes metric 모듈은 쿠버네티스 자체 자원인 서비스, Pod, 계정 정보 등을 수집할 수 있다.The Kubernetes metric module can collect Kubernetes' own resources, such as services, pods, and account information.

Profile metric 모듈은 프로파일 생성기를 통해서 생성 된 프로파일 정보를 수집할 수 있다. 이 때, 프로파일 정보는 프로파일 리스트 중 하나일 수 있다.Profile metric module can collect profile information created through the profile generator. In this case, the profile information may be one of the profile list.

또한, 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 방법은 지표에 기반한 연산을 처리할 수 있다(S340).Also, the method for generating a container profile according to an embodiment of the present invention may process an index-based operation (S340).

즉, 단계(S340)는 단계(S330)에서 수집한 지표에 기반하여 상기 컨테이너 프로파일을 연산한 결과를 출력할 수 있다.That is, step S340 may output the result of calculating the container profile based on the index collected in step S330 .

이 때, 단계(S340)는 수집한 지표를 바탕으로 최적의 프로파일 도출을 위한 연산을 처리할 수 있다.In this case, in step S340, an operation for deriving an optimal profile may be processed based on the collected index.

이 때, 단계(S340)는 Proactive 연산을 수행하는 Proactive 연산부 및 Reactive 연산을 수행하는 Reactive 연산부를 포함할 수 있다.In this case, step S340 may include a proactive operation unit that performs a proactive operation and a reactive operation unit that performs a reactive operation.

Proactive 연산부는 설정 된 프로파일을 적용하기 위해서 필요한 자원량을 미리 예측할 수 있다.The proactive operation unit can predict in advance the amount of resources required to apply the set profile.

이 때, Proactive 연산부는 입력으로 Reactive 연산의 출력, Node Metric을 통한 노드의 자원사용량, Container Metric을 통한 컨테이너의 자원 사용량, Application Metric을 통한 응용프로그램의 수행시간 및 응답시간, Kubernetes Metric을 통한 서비스 및 Pod 정보, Profile Metric 값을 입력 받을 수 있다.At this time, the Proactive operation unit outputs reactive operation as input, node resource usage through node metric, container resource usage through container metric, application execution time and response time through application metric, service and Pod information and Profile Metric values can be input.

이 때, Proactive 연산부는 미래 생성될 컨테이너들의 자원을 미리 예측하는 모듈로서 과거 데이터(historical data)를 기본으로 연산을 수행하는데, 기본적으로 강화 학습 또는 뉴럴 네트워크와 같은 학습알고리즘(Learning Algorithm)을 사용한다. 연산과정에서 At this time, the Proactive operation unit is a module that predicts the resources of containers to be created in the future, and performs operations based on historical data. Basically, a learning algorithm such as reinforcement learning or a neural network is used. . in the process of calculation

이 때, Proactive 연산부는 출력으로 프로파일에서 정의한 우선순위 자원, 정의된 자원의 targetAverageUtilization value 및 app name = Profile name 을 출력할 수 있다.In this case, the Proactive operation unit may output the priority resource defined in the profile, the targetAverageUtilization value of the defined resource, and app name = Profile name as outputs.

이 때, Proactive 연산부는 연산의 출력을 HPA(20)에 전달해서 pod template을 정의하는데 참조하도록 할 수 있다.At this time, the Proactive operation unit may transmit the output of the operation to the HPA 20 to refer to defining the pod template.

Reactive 연산부는 특정 프로파일이 설정되지 않은 컨테이너들에 대한 연산을 수행할 수 있다.The reactive operation unit may perform an operation on containers for which a specific profile is not set.

이 때, Reactive 연산부는 새로 생성 될 컨테이너의 미래 자원 사용량을 예측하지 않기 때문에 현재 CPU 사용량을 기준으로 연산을 처리할 수 있다.At this time, since the reactive operation unit does not predict the future resource usage of the newly created container, it can process the calculation based on the current CPU usage.

이 때, Reactive 연산부는 출력으로 [클러스터 내 파드의 CPU 사용량의 합 / Target CPU 사용량 ]의 연산 결과로, 파드의 개수를 출력으로 정의할 수 있다.At this time, the reactive operation unit can define the number of pods as output as the output of the [sum of CPU usage of pods in the cluster / Target CPU usage] as output.

도 4는 본 발명의 일실시예에 따른 쿠버네티스 시스템의 작업 수행 동작을 나타낸 시퀀스 다이어그램이다.4 is a sequence diagram illustrating a task execution operation of a Kubernetes system according to an embodiment of the present invention.

도 4를 참조하면, API Server(110)에서 Default ReplicaSet 을 생성할 수 있다(S401).Referring to FIG. 4 , the API Server 110 may create a Default ReplicaSet ( S401 ).

컨테이너 프로파일 생성 장치(220)은 Horizontal Pod Autoscaler(HPA)(30)에 컨테이너 프로파일 정보를 전달할 수 있다(S402)The container profile generating apparatus 220 may deliver container profile information to the Horizontal Pod Autoscaler (HPA) 30 (S402)

HPA(30)는 apiServer(110)로부터 metric 정보를 항상 모니터링 할 수 있다(S403). 여기서 HPA(30)는 전달받은 프로파일 정보와 쿠버네티스 리소스 정보를 바탕으로 pod template을 정의할 수 있다. Pod template는 새롭게 생성할 pod의 기본 정보(리소스 정의, app name, 디스크 볼륨 정의 등) 가 정의되어 있는 템플릿이다. The HPA 30 can always monitor the metric information from the apiServer 110 (S403). Here, the HPA 30 may define a pod template based on the received profile information and Kubernetes resource information. Pod template is a template in which basic information (resource definition, app name, disk volume definition, etc.) of a pod to be newly created is defined.

ReplicaSet Controller(130)는 apiServer(110)로부터 ReplicaSet 변경사항을 모니터링 할 수 있다(S404). HPA(30)에 의해서 replica 의 개수가 변경이 되면 변경 된 개수에 맞춰서 pod를 생성 또는 종료 요청을 보낼 수 있다(S405). ReplicaSet Controller 130 may monitor ReplicaSet changes from apiServer 110 (S404). When the number of replicas is changed by the HPA 30, a pod creation or termination request can be sent according to the changed number (S405).

Scheduler(120)는 apiServer(110)로부터 Node에 할당 대기중인 Pod들을 모니터링 할 수 있다(S406) .Scheduler 120 may monitor Pods waiting to be allocated to Node from apiServer 110 (S406).

Scheduler(120)는 Node가 준비가 되면 apiServer에 Pod의 할당을 요청할 수 있다(S407)Scheduler 120 may request allocation of Pod to apiServer when Node is ready (S407)

Kubelet(210)은 apiServer(110)로부터 Node에 Pod가 제대로 할당되었는지를 모니터링 할 수 있다(S408)The Kubelet 210 can monitor whether the Pod is properly assigned to the Node from the apiServer 110 (S408)

Kubelet(210)은 Docker Runtime Engine(40)에 컨테이너 실행을 요청할 수 있다(S409). The Kubelet 210 may request the Docker Runtime Engine 40 to run the container (S409).

Kubelet(210)은 컨테이너가 생성되면 Pod 상태가 업데이트 되었기 때문에 apiServer(110)에 Pod 상태를 Update 할 수 있다(S410).The Kubelet 210 can update the Pod state in the apiServer 110 because the Pod state is updated when the container is created (S410).

도 5는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.5 is a diagram illustrating a computer system according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 쿠버네티스 마스터(100), 쿠버네티스 노드(200) 및 컨테이너 프로파일 생성 장치(220)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 5에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.Referring to FIG. 5 , the Kubernetes master 100 , the Kubernetes node 200 , and the container profile generating apparatus 220 according to an embodiment of the present invention include a computer system such as a computer-readable recording medium ( 1100) can be implemented. As shown in FIG. 5 , the computer system 1100 includes one or more processors 1110 , a memory 1130 , a user interface input device 1140 , and a user interface output device 1150 that communicate with each other via a bus 1120 . and storage 1160 . In addition, the computer system 1100 may further include a network interface 1170 coupled to the network 1180 . The processor 1110 may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory 1130 or the storage 1160 . The memory 1130 and the storage 1160 may be various types of volatile or non-volatile storage media. For example, the memory may include a ROM 1131 or a RAM 1132 .

이상에서와 같이 본 발명의 일실시예에 따른 컨테이너 프로파일 생성 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, in the apparatus and method for generating a container profile according to an embodiment of the present invention, the configuration and method of the described embodiments are not limitedly applicable, but the embodiments are provided so that various modifications can be made. All or part of each embodiment may be selectively combined and configured.

100: 쿠버네티스 마스터 110: API 서버
120: 스케줄러 130: 컨트롤러 매니저
140: ETCD
200: 쿠버네티스 노드 210: KUBELET
220: 컨테이너 프로파일 생성 장치
221: 프로파일 설정부 222: 프로파일 생성부
223: 수집부 224: 처리부
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크
100: Kubernetes Master 110: API Server
120: scheduler 130: controller manager
140: ETCD
200: Kubernetes Node 210: KUBELET
220: container profile generating device
221: profile setting unit 222: profile generating unit
223: collection unit 224: processing unit
1100: computer system 1110: processor
1120: bus 1130: memory
1131: rom 1132: ram
1140: user interface input device
1150: user interface output device
1160: storage 1170: network interface
1180: network

Claims (1)

쿠버네티스 환경에서 서비스의 특성을 고려한 컨테이너 프로파일을 정의하고, 상기 컨테이너 프로파일의 우선순위를 설정한 프로파일 정보를 생성하는 프로파일 설정부;
상기 프로파일 정보를 입력 받아 상기 서비스에 대한 컨테이너 프로파일을 생성하는 프로파일 생성부;
상기 쿠버네티스 환경에 상응하는 시스템 상의 지표를 수집하는 수집부; 및
상기 지표에 기반하여 상기 컨테이너 프로파일을 연산한 결과를 출력하는 처리부;
를 포함하는 것을 특징으로 하는 컨테이너 프로파일 생성 장치.
a profile setting unit that defines a container profile in consideration of service characteristics in a Kubernetes environment and generates profile information that sets the priority of the container profile;
a profile generator configured to receive the profile information and generate a container profile for the service;
a collection unit for collecting indicators on a system corresponding to the Kubernetes environment; and
a processing unit for outputting a result of calculating the container profile based on the index;
Container profile generating device comprising a.
KR1020200151274A 2020-11-12 2020-11-12 Apparatus and method for neural network group connection KR20220064785A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200151274A KR20220064785A (en) 2020-11-12 2020-11-12 Apparatus and method for neural network group connection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200151274A KR20220064785A (en) 2020-11-12 2020-11-12 Apparatus and method for neural network group connection

Publications (1)

Publication Number Publication Date
KR20220064785A true KR20220064785A (en) 2022-05-19

Family

ID=81804962

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200151274A KR20220064785A (en) 2020-11-12 2020-11-12 Apparatus and method for neural network group connection

Country Status (1)

Country Link
KR (1) KR20220064785A (en)

Similar Documents

Publication Publication Date Title
US10963285B2 (en) Resource management for virtual machines in cloud computing systems
US11455193B2 (en) Method for deploying virtual machines in cloud computing systems based on predicted lifetime
EP3270289B1 (en) Container-based multi-tenant computing infrastructure
CN107222531B (en) Container cloud resource scheduling method
US10129101B2 (en) Application driven and adaptive unified resource management for data centers with Multi-Resource Schedulable Unit (MRSU)
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
US20170141944A1 (en) Verifier for network function virtualization resource allocation
KR20160087706A (en) Apparatus and method for resource allocation of a distributed data processing system considering virtualization platform
US10817323B2 (en) Systems and methods for organizing on-demand migration from private cluster to public cloud
US11652708B2 (en) Policies for analytics frameworks in telecommunication clouds
CN106133693A (en) The moving method of virtual machine, device and equipment
US11093288B2 (en) Systems and methods for cluster resource balancing in a hyper-converged infrastructure
US11838384B2 (en) Intelligent scheduling apparatus and method
US20220329651A1 (en) Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same
US11169844B2 (en) Virtual machine migration to multiple destination nodes
Rossi et al. Elastic deployment of software containers in geo-distributed computing environments
CN110532060B (en) Hybrid network environment data acquisition method and system
CN111555987B (en) Current limiting configuration method, device, equipment and computer storage medium
KR20220064785A (en) Apparatus and method for neural network group connection
CN110895504A (en) Scheduling simulation system and scheduling simulation method
US11729119B2 (en) Dynamic queue management of network traffic
US11843548B1 (en) Resource scaling of microservice containers
CN112597502B (en) Large-scale computing service configuration method and system based on trusted cloud
US11799822B2 (en) Proxyless network address translation with dynamic port allocation
WO2013114829A1 (en) Information processing system, data center, system migration method, and program