KR20230060211A - Lightweight KubeEdge configuration method and apparatus for edge computing environment - Google Patents

Lightweight KubeEdge configuration method and apparatus for edge computing environment Download PDF

Info

Publication number
KR20230060211A
KR20230060211A KR1020210144683A KR20210144683A KR20230060211A KR 20230060211 A KR20230060211 A KR 20230060211A KR 1020210144683 A KR1020210144683 A KR 1020210144683A KR 20210144683 A KR20210144683 A KR 20210144683A KR 20230060211 A KR20230060211 A KR 20230060211A
Authority
KR
South Korea
Prior art keywords
edge
lightweight
master node
nodes
cube
Prior art date
Application number
KR1020210144683A
Other languages
Korean (ko)
Other versions
KR102582777B9 (en
KR102582777B1 (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 KR1020210144683A priority Critical patent/KR102582777B1/en
Publication of KR20230060211A publication Critical patent/KR20230060211A/en
Application granted granted Critical
Publication of KR102582777B1 publication Critical patent/KR102582777B1/en
Publication of KR102582777B9 publication Critical patent/KR102582777B9/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy 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/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

In accordance with the present invention, disclosed are a method and an apparatus for configuring a lightweight cube edge for an edge computing environment. In accordance with the present invention, the method for configuring a lightweight cube edge system for an edge computing environment by using a lightweight cube edge tool on a cube edge system including a cloud core and an edge core, includes: a step in which the lightweight cube edge tool generates a virtual machine by using a kernel virtual machine (KVM); a step in which all nodes including a master node on the side of the cloud core and a plurality of edge nodes on the side of the edge core installs a container and sets a container runtime; a step in which the master node generates a master node token; a step in which the plurality of edge nodes transmits the master node token to a worker node; and a step in which the worker node forms a cluster by combining the master node token to the master node. Therefore, the present invention is capable of constructing a lightweight edge cube system without a complex setting procedure.

Description

에지 컴퓨팅 환경을 위한 경량 큐브에지 구성 방법 및 장치{Lightweight KubeEdge configuration method and apparatus for edge computing environment}Lightweight KubeEdge configuration method and apparatus for edge computing environment}

본 발명은 에지 컴퓨팅 환경을 위한 경량 큐브에지 구성 방법 및 장치에 관한 것이다. The present invention relates to a lightweight cube edge configuration method and apparatus for an edge computing environment.

모바일 장치의 수가 급격히 증가함에 따라 서비스 제공업체는 서비스를 출시할 때 짧은 대기 시간 요구 사항과 함께 대용량 데이터에 적응하기 위해 에지 컴퓨팅을 적용하는 경향이 증가하고 있다. With the rapid increase in the number of mobile devices, service providers are increasingly adopting edge computing to adapt to large amounts of data with low latency requirements when launching their services.

애플리케이션 개발자는 대규모 클라우드 제공업체(Microsoft Azure, Amazon Web Service 등)와 함께 KubeEdge, Akri, Google Anthos와 같은 오픈 소스 프로젝트를 통해 에지에서 쿠버네티스(Kubernetes)를 구성하는 방향으로 진행하고 있다. Application developers are moving toward configuring Kubernetes at the edge through open source projects such as KubeEdge, Akri, and Google Anthos, along with large cloud providers (Microsoft Azure, Amazon Web Services, etc.).

쿠버네티스는 에지 컴퓨팅에 적합하지 않기 때문에 쿠버네티스를 경량화한 큐브에지(KubeEdge)가 제안되었다. Since Kubernetes is not suitable for edge computing, KubeEdge, a lightweight version of Kubernetes, has been proposed.

큐브에지를 사용하면 운영자가 중앙 집중식 관리 인터페이스를 통해 에지 측에서 컨테이너화로 서비스를 배포하고 관리할 수 있다. 큐브에지 시스템에서 서비스를 배포하려면 큐브에지 시스템에서 서비스를 설계하여야 한다. CubeEdge allows operators to deploy and manage services with containerization on the edge side through a centralized management interface. In order to distribute services in CubeEdge systems, services must be designed in CubeEdge systems.

따라서 서비스 개발을 가속화하기 위해서는 쉽고 빠른 큐브에지 시스템 구성 솔루션이 필요하나, 큐브에지 설치에는 많은 복잡한 구성과정이 요구된다.Therefore, an easy and fast CubeEdge system configuration solution is required to accelerate service development, but many complicated configuration processes are required for CubeEdge installation.

미국공개특허공보 2021-0232498US Patent Publication 2021-0232498

상기한 종래기술의 문제점을 해결하기 위해, 본 발명은 큐브에지 시스템을 자동으로 구성할 수 있는 에지 컴퓨팅 환경을 위한 경량 큐브에지 구성 방법 및 장치를 제안하고자 한다. In order to solve the problems of the prior art, the present invention proposes a lightweight cube edge construction method and apparatus for an edge computing environment capable of automatically configuring a cube edge system.

상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따르면, 클라우드 코어 및 에지 코어를 포함하는 큐브에지 시스템에 대해 경량 큐브에지 도구를 이용하여 에지 컴퓨팅 환경을 위한 경량 큐브에지 시스템을 구성하는 방법으로서, 상기 경량 큐브에지 도구가, 커널 기반 가상 머신(Kernal Virtual Machine, KVM)을 이용하여 가상 머신을 생성하고 네트워킹 환경을 구축하는 단계; 상기 클라우드 코어 측의 마스터 노드 및 상기 에지 코어 측의 복수의 에지 노드를 포함하는 모든 노드가, 컨테이너를 설치하고, 컨테이너 런타임을 설정하는 단계; 상기 마스터 노드가, 마스터 노드 토큰을 생성하는 단계; 상기 복수의 에지 노드가, 상기 마스터 노드 토큰을 워커 노드로 전달하는 단계; 및 상기 워커 노드가, 상기 마스터 노드 토큰을 이용하여 상기 마스터 노드와 결합하여 클러스터를 형성하는 단계를 포함하는 경량 큐브에지 시스템 구성 방법이 제공된다. In order to achieve the above object, according to an embodiment of the present invention, a lightweight cube edge system for an edge computing environment is configured using a lightweight cube edge tool for a cube edge system including a cloud core and an edge core As a method, the lightweight cube edge tool, using a kernel-based virtual machine (Kernal Virtual Machine, KVM) to create a virtual machine and build a networking environment; installing containers and setting container runtimes at all nodes including a master node on the cloud core side and a plurality of edge nodes on the edge core side; Generating, by the master node, a master node token; transmitting, by the plurality of edge nodes, the master node token to a worker node; and combining the worker node with the master node using the master node token to form a cluster.

상기 네트워킹 환경을 구축하는 단계는, 상기 경량 큐브에지 도구가, 상기 클라우드 코어 측 쿠버네티스 클러스터를 형성하기 위한 LAN과 상기 쿠버네티스 클러스터와 상기 복수의 에지 노드를 연결하기 위한 LAN을 설정하는 단계를 포함할 수 있다. In the step of establishing the networking environment, the lightweight cube edge tool sets up a LAN for forming the cloud core-side Kubernetes cluster and a LAN for connecting the Kubernetes cluster and the plurality of edge nodes. can include

상기 모든 노드가 컨테이너를 설치하는 단계 이전에, 상기 경량 큐브에지 도구가, 상기 모든 노드에 대한 스왑 메모리를 비활성화하는 단계를 더 포함할 수 있다. Prior to the step of installing containers in all nodes, the lightweight cube edge tool may further include inactivating swap memory for all nodes.

상기 모든 노드는 디바이스, CPU, RAM, 네트워크 액세스 등을 포함하는 커널의 특정 하위 시스템을 제어하기 위한 메커니즘으로 정의되는 Cgroup 드라이버를 상기 컨테이너 런타임으로 설정할 수 있다. All the nodes can set Cgroup drivers, which are defined as mechanisms for controlling specific subsystems of the kernel, including devices, CPU, RAM, network access, and the like, to the container runtime.

상기 마스터 노드는 쿠버네티스 API 서버일 수 있다. The master node may be a Kubernetes API server.

상기 마스터 노드 토큰을 생성하는 단계 이전에, 상기 마스터 노드가, 쿠버네티스 및 큐브에지를 설치하는 단계를 더 포함할 수 있다. Before the step of generating the master node token, the master node may further include installing Kubernetes and Cube Edge.

상기 마스터 노드 토큰을 상기 워커 노드로 전달하는 단계 이전에, 상기 복수의 에지 노드가 큐브에지를 설치하는 단계를 더 포함할 수 있다. Prior to the step of transferring the master node token to the worker node, the plurality of edge nodes may further include installing a cube edge.

본 발명의 다른 측면에 따르면 상기한 방법을 수행하는 프로그램이 저장된 컴퓨터 판독 가능한 기록매체가 제공된다. According to another aspect of the present invention, a computer readable recording medium storing a program for performing the above method is provided.

본 발명의 또 다른 측면에 따르면, 클라우드 코어 및 에지 코어를 포함하는 에지 컴퓨팅 환경을 위한 경량 큐브에지 시스템 구성 장치로서, 프로세서; 및 상기 프로세서에 연결되는 메모리를 포함하되, 상기 메모리는, 커널 기반 가상 머신(Kernal Virtual Machine, KVM)을 이용하여 가상 머신을 생성하고 네트워킹 환경을 구축하고, 상기 클라우드 코어 측의 마스터 노드 및 상기 에지 코어 측의 복수의 에지 노드를 포함하는 모든 노드가 컨테이너를 설치하도록 하고, 상기 모든 노드가 컨테이너 런타임을 설정하도록 하고, 상기 마스터 노드가 마스터 노드 토큰을 생성하도록 하고, 상기 복수의 에지 노드가 상기 마스터 노드 토큰을 워커 노드로 전달하도록 하고, 상기 워커 노드가 상기 마스터 노드 토큰을 이용하여 상기 마스터 노드와 결합하여 클러스터를 형성하도록, 상기 프로세서에 의해 실행되는 프로그램 명령어들을 저장하는 경량 큐브에지 시스템 구성 장치가 제공된다. According to another aspect of the present invention, a lightweight cube edge system configuration device for an edge computing environment including a cloud core and an edge core, comprising: a processor; And a memory connected to the processor, wherein the memory creates a virtual machine using a Kernel Virtual Machine (KVM) and builds a networking environment, and the cloud core-side master node and the edge All nodes, including a plurality of edge nodes on the core side, install containers, all nodes set container runtimes, and the master node generates master node tokens. A lightweight cube-edge system configuration device that stores program instructions executed by the processor so that the node token is transferred to the worker node, and the worker node combines with the master node using the master node token to form a cluster. Provided.

본 발명에 따르면, 복잡한 설정 과정 없이 자동으로 경량 큐브에지 시스템을 구축할 수 있는 장점이 있다. According to the present invention, there is an advantage of automatically building a lightweight cube edge system without a complicated setting process.

도 1은 일반적인 큐브에지 시스템의 상세 구성을 도시한 도면이다.
도 2는 본 실시예에 따른 경량 큐브에지 시스템을 구성하는 과정을 설명하기 위한 도면이다.
1 is a diagram showing the detailed configuration of a general cube edge system.
2 is a diagram for explaining a process of configuring a lightweight cube edge system according to the present embodiment.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.Since the present invention can make various changes and have various embodiments, specific embodiments are illustrated in the drawings and described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

큐브에지 시스템은 쿠버네티스 컨테이너형 조정 기능을 에지의 호스트로 확장하도록 설계한 오픈 소스 에지 컴퓨팅 플랫폼으로 클라우드와 에지 디바이스 간의 네트워크 애플리케이션 배포 및 메타데이터 동기화를 지원한다. The CubeEdge system is an open-source edge computing platform designed to extend Kubernetes containerized orchestration capabilities to hosts at the edge, enabling network application deployment and metadata synchronization between cloud and edge devices.

도 1은 일반적인 큐브에지 시스템의 상세 구성을 도시한 도면이다. 1 is a diagram showing the detailed configuration of a general cube edge system.

도 1을 참조하면, 큐브에지 시스템은 클라우드 코어(CloudCore, 100) 및 에지 코어(EdgeCore, 102)를 포함한다. Referring to FIG. 1 , the CubeEdge system includes a CloudCore 100 and an EdgeCore 102 .

클라우드 코어(100)는 식별된 에지 노드로 데이터를 전송하기 위한 에지 노드 및 파드(Pod)의 메타데이터를 제어하는 확장된 쿠버네티스 컨트롤러이다. The cloud core 100 is an extended Kubernetes controller that controls metadata of edge nodes and pods to transmit data to the identified edge nodes.

클라우드 코어(100)는 에지 컨트롤러(EdgeController, 110), 디바이스 컨트롤러(DeviceController, 112) 및 클라우드 허브(Cloud Hub, 114)를 포함할 수 있다. The cloud core 100 may include an edge controller 110 , a device controller 112 , and a cloud hub 114 .

에지 컨트롤러(110)는 에지 클러스터에 존재하는 복수의 에지 노드(디바이스)를 관리한다. The edge controller 110 manages a plurality of edge nodes (devices) existing in an edge cluster.

이를 위해 에지 컨트롤러(110)는 쿠버네티스 API 서버(K8s API Server, 마스터 노드, 130)와 복수의 에지 노드를 연결하고, 이를 통해 복수의 에지 노드들을 쿠버네티스 API 서버(130)에 등록한다. To this end, the edge controller 110 connects the Kubernetes API server (K8s API Server, master node, 130) and a plurality of edge nodes, and registers the plurality of edge nodes with the Kubernetes API server 130 through this. .

디바이스 컨트롤러(112)는 에지 클러스터 내의 에지 노드들의 메타데이터/상태를 관리하고, 에지 및 클라우드 간의 동기화를 통해 에지 노드를 관리한다. The device controller 112 manages metadata/states of edge nodes in the edge cluster, and manages the edge nodes through synchronization between the edge and the cloud.

클라우드 허브(114)는 클라우드 코어(100)와 에지 코어(102) 간, 특히 에지 컨트롤러(110)와 에지 노드 간의 통신 기능을 제공한다. The cloud hub 114 provides a communication function between the cloud core 100 and the edge core 102, particularly between the edge controller 110 and the edge node.

에지 코어(102)는 에지 허브(Edge Hub, 120), 메타관리자(MetaManager, 122), 에지D(EdgeD, 124) 및 디바이스 트윈(Device Twin, 126)을 포함할 수 있다. The Edge Core 102 may include an Edge Hub 120 , a MetaManager 122 , an EdgeD 124 , and a Device Twin 126 .

에지 허브(120)는 에지 컴퓨팅을 위해 클라우드 코어(100)와 상호 작용하며, 클라우드 코어(100)와 에지 코어(102) 간 통신 기능을 제공하여 에지 노드의 상태를 클라우드 측으로 보고하고 이들 사이의 리소스 업데이트를 동기화한다. The edge hub 120 interacts with the cloud core 100 for edge computing, and provides a communication function between the cloud core 100 and the edge core 102 to report the state of the edge node to the cloud side and to transfer resources between them. Synchronize updates.

메타관리자(122)는 에지D(124)를 통해 관리되는 에지 노드의 컨테이너의 상태를 관리한다. 이를 위해 메타관리자(122)는 디바이스 컨트롤러(112)와 메타데이터를 교환한다. The meta manager 122 manages the state of containers of edge nodes managed through the edge D 124 . To this end, the meta manager 122 exchanges metadata with the device controller 112 .

에지D(124)는 에지 노드의 컨테이너를 관리하며, 큐브에지 시스템에서 파드를 작동시킨다. EdgeD 124 manages the containers of the Edge node and operates Pods in the CubeEdge system.

모든 에지 노드에는 컨테이너를 운영하는 에이전트인 Kubelet이 있어야 한다. 에지 허브(120) 및 클라우드 허브(114)를 통해 쿠버네티스 API 서버(130)에 에지 노드를 등록한다. Kubelet은 쿠버네티스 API 서버(130)로부터 애플리케이션 컨테이너 시작, 중지 및 종료와 같은 각 에지 노드에서 수행할 작업을 수신한다. 또한 에지 노드 및 컨테이너 상태를 쿠버네티스 API 서버(130)로 다시 보낸다.Every edge node must have Kubelet, an agent that runs containers. Edge nodes are registered with the Kubernetes API server 130 through the Edge Hub 120 and the Cloud Hub 114. Kubelet receives tasks to be performed on each edge node, such as starting, stopping, and terminating application containers, from the Kubernetes API server 130. It also sends edge node and container state back to the Kubernetes API server (130).

디바이스 트윈(126)은 에지 노드의 상태를 저장하고, 리소스 상태를 관리한다. The device twin 126 stores the state of the edge node and manages the resource state.

디바이스 트윈(126)은 매퍼(Mapper, 140)를 통해 각 에지 노드의 리소스 상태를 수집하고, 이벤트 버스(Event Bus, 142)를 통해 수집된 리소스 상태를 수신하고, 자신의 DB에 저장한다. The device twin 126 collects the resource state of each edge node through the mapper 140, receives the collected resource state through the event bus 142, and stores it in its own DB.

이벤트 버스(142)는 MQTT 서버와 상호 작용하는 MQTT 클라이언트로, 다른 컴포넌트에 게시/구독(pub/sub) 기능을 제공한다. Event bus 142 is an MQTT client that interacts with the MQTT server, providing pub/sub functionality to other components.

이후 리소스 상태는 에지 허브(120) 및 클라우드 허브(114) 간 통신을 통해 디바이스 컨트롤러(112)로 전달되어 클라우드 측과 에지 측에 동일한 내용이 저장되어 관리될 수 있도록 동기화한다. Thereafter, the resource state is transmitted to the device controller 112 through communication between the edge hub 120 and the cloud hub 114, and synchronization is performed so that the same content can be stored and managed on the cloud side and the edge side.

서비스 버스(Service Bus, 144)는 에지 노드 리소스를 활용하려는 사용자로부터 메시지를 수신하고, 이를 메타관리자(122)를 통해 에지D(124)에 전달하여 컨테이너에서 사용자가 요청한 작업이 수행될 수 있도록 한다. The Service Bus (144) receives a message from a user who wants to utilize edge node resources and forwards it to the Edge D (124) through the Meta Manager 122 so that the container can perform the task requested by the user. .

에지 노드는 도커, 컨테이너 런타임 인터페이스 및 컨테이너 런타임을 포함할 수 있다. Edge nodes can include Docker, container runtime interfaces, and container runtimes.

이하에서는 이들 구성을 상세하게 설명한다. These configurations are described in detail below.

CRI(Container Runtime Interface)는 플러그인 인터페이스로서, kubelet에 다양한 컨테이너 런타임을 사용할 수 있는 기능을 제공한다. 또한 쿠버네티스 플러그인은 CRI를 사용하여 컨테이너를 실행하고 관찰한다. CRI에는 gRPC API, 프로토콜 버퍼 및 라이브러리가 포함된다. CRI (Container Runtime Interface) is a plug-in interface that provides kubelet with the ability to use various container runtimes. Kubernetes plugins also use CRI to launch and observe containers. CRI includes the gRPC API, protocol buffers and libraries.

OCI(Open Container Initiative) 런타임은 로우레벨 런타임으로서, 로우레벨 런타임은 컨테이너 수명 주기 관리를 수행하고, 컨테이너를 만들고 실행한다.The Open Container Initiative (OCI) runtime is a low-level runtime. The low-level runtime performs container life cycle management, creates and runs containers.

Containerd는 Docker(도커) 엔진의 기본 CRI이며, Containerd는 컨테이너를 실행하고 노드에서 이미지와 스냅샷을 관리하기 위한 최소한의 기능을 제공한다. OCI 런타임에 실행 작업을 위임하여 컨테이너를 실행하고 종료한다. Containerd는 새 컨테이너를 실행하기 위해 다음 작업을 수행한다. Containerd is the default CRI of Docker Engine, and Containerd provides minimal functionality for running containers and managing images and snapshots on nodes. It executes and terminates the container by delegating the execution task to the OCI runtime. Containerd does the following to launch a new container:

CRI-O는 하이레벨 쿠버네티스 CRI와 OCI 런타임 사이의 링크를 제공하기 위해 구축된 컨테이너 런타임이다. CRI-O is a container runtime built to provide a link between the high-level Kubernetes CRI and OCI runtimes.

도커(Docker)에서 Containerd를 기본 컨테이너 런타임으로 사용한다.Docker uses Containerd as the default container runtime.

컨테이너 런타임을 사용하여 컨테이너를 만들고 관리할 수 있다. 그러나 클러스터 시스템에서 이러한 컨테이너를 관리하고 조정하는 도구가 필요하다. 일반적으로 하나의 서비스가 다수의 컨테이너로 구성되기 때문에 컨테이너 수명 주기 관리를 위한 컨테이너 오케스트레이션 도구가 사용된다. You can use the container runtime to create and manage containers. However, you need tools to manage and orchestrate these containers on a clustered system. Container orchestration tools are used for container lifecycle management because a service is typically composed of multiple containers.

Kubernetes, Apache Mesos, Docker Swarm 등과 같은 다양한 컨테이너 오케스트레이션 도구를 사용할 수 있다. You can use a variety of container orchestration tools such as Kubernetes, Apache Mesos, Docker Swarm, and more.

일반적으로 컨테이너는 파드라고 하는 복제된 그룹의 호스트에 배포된다. 컨테이너 오케스트레이션 도구는 배포를 예약하고, 유휴 컴퓨팅 단위, 사용 가능한 메모리, 네트워크 대역폭 등과 같은 사전 정의된 제약 조건을 기반으로 가장 적절한 호스트가 컨테이너를 배치하도록 선택된다.Typically, containers are deployed to hosts in replicated groups called pods. Container orchestration tools schedule deployments, and based on predefined constraints such as idle compute units, available memory, network bandwidth, etc., the most appropriate host is chosen to deploy the container.

컨테이너가 호스트에서 실행되는 동안 컨테이너 오케스트레이션 도구는 컨테이너의 수명 주기를 관리한다. 컨테이너 오케스트레이션 도구는 개인용 컴퓨터에서 Amazon Web Services(AWS), DigitalOcean 등에서 실행되는 프라이빗 클라우드 인스턴스에 이르기까지 컨테이너를 실행할 수 있는 모든 환경에서 사용할 수 있다. While containers run on the host, container orchestration tools manage the container's lifecycle. Container orchestration tools can be used in any environment that can run containers, from personal computers to private cloud instances running on Amazon Web Services (AWS), DigitalOcean, and more.

도커 엔진은 애플리케이션을 구축하고 컨테이너화하기 위한 Linux 컨테이너를 기반으로 하는 오픈 소스 컨테이너화 플랫폼이다. 멀티 컨테이너 애플리케이션의 컨테이너 이미지를 관리하기 위한 API와 경량 컨테이너를 제공하여 현재의 컨테이너 기술을 확장한다. Docker Engine is an open source containerization platform based on Linux containers for building and containerizing applications. It extends current container technology by providing lightweight containers and APIs for managing container images in multi-container applications.

도커 엔진은 환경 설정에 관계없이 하나의 환경에서 다른 환경으로 애플리케이션을 배포하는 데 도움이 될 수 있으며, 서비스 기능 체인의 모든 네트워크 기능을 컨테이너로 생성할 수 있다.Docker Engine can help deploy applications from one environment to another, regardless of the environment setup, and any network function in the service function chain can be created as a container.

도커 컨테이너는 도커 엔진을 실행하는 호스트의 커널에 의존한다. 운영 체제 수준에서만 사용자 공간을 분리하고 응용 프로그램을 실행할 때 리소스를 소비한다. 기본적으로 컨테이너는 네임스페이스로 나머지 프로세스와 격리된 프로세스로 구성된다. 도커에서 실행되는 컨테이너는 호스트 OS 커널을 공유한다. 스토리지, 네트워킹 및 제어 그룹과 같은 Linux 커널 기능을 사용하여 운영 체제 위에 컨테이너를 구축한다. 도커는 애플리케이션의 소프트웨어를 OS, 애플리케이션 코드, 런타임, 시스템 도구, 라이브러리 등과 같이 실행하는 데 필요한 모든 것이 포함된 패키지로 묶는다. 따라서 애플리케이션은 사용자 지정 구성에 관계없이 다른 Linux 시스템에서 실행할 수 있다. 또한 도커 이미지의 읽기 전용 파일 시스템 위에 읽기-쓰기 파일 시스템을 추가하여 도커 컨테이너를 생성한다.Docker containers depend on the kernel of the host running Docker Engine. It separates user space only at the operating system level and consumes resources when running applications. Basically, a container consists of a process that is isolated from the rest of the process by a namespace. Containers running on Docker share the host OS kernel. It builds containers on top of the operating system using Linux kernel features such as storage, networking, and control groups. Docker bundles an application's software into a package that contains everything it needs to run, such as the OS, application code, runtime, system tools, and libraries. Therefore, applications can run on other Linux systems regardless of custom configurations. It also creates a Docker container by adding a read-write file system on top of the read-only file system of the Docker image.

도 2는 본 실시예에 따른 경량 큐브에지 시스템을 구성하는 과정을 설명하기 위한 도면이다. 2 is a diagram for explaining a process of configuring a lightweight cube edge system according to the present embodiment.

도 2를 참조하면, 본 실시예에 따른 경량 큐브에지 도구(tool)를 통해 클라우드 코어 및 에지 코어 모두에서 수행되어야 하는 단계와 개별 코어에서 수행되어야 할 단계가 구분된다. Referring to FIG. 2 , the steps to be performed in both the cloud core and the edge core and the steps to be performed in the individual core are distinguished through the lightweight cube edge tool according to the present embodiment.

본 실시예에 따른 경량 큐브에지 도구는 프로세서 및 메모리를 포함하는 장치에서 실행되는 프로그램 명령어로 정의될 수 있다. The lightweight CubeEdge tool according to this embodiment may be defined as a program command executed in a device including a processor and memory.

프로세서는 컴퓨터 프로그램을 실행할 수 있는 CPU(central processing unit)나 그 밖에 가상 머신 등을 포함할 수 있다. The processor may include a central processing unit (CPU) capable of executing a computer program or other virtual machines.

메모리는 고정식 하드 드라이브나 착탈식 저장 장치와 같은 불휘발성 저장 장치를 포함할 수 있다. 착탈식 저장 장치는 콤팩트 플래시 유닛, USB 메모리 스틱 등을 포함할 수 있다. 메모리는 각종 랜덤 액세스 메모리와 같은 휘발성 메모리도 포함할 수 있다.The memory may include a non-volatile storage device such as a fixed hard drive or a removable storage device. The removable storage device may include a compact flash unit, a USB memory stick, and the like. The memory may also include volatile memory such as various random access memories.

메모리에는 경량 큐브에지 시스템을 구성하기 위한 프로그램 명령어들이 저장된다. The memory stores program instructions for configuring the lightweight cube-edge system.

모든 노드에 적용apply to all nodes

이하의 과정은 클라우드 코어에 포함된 노드와 에지 코어에 포함된 노드 모두에서 수행되는 과정이다. The following process is performed in both nodes included in the cloud core and nodes included in the edge core.

본 실시예에 따른 경량 큐브에지 도구는 커널 기반 가상 머신(Kernal Virtual Machine, KVM)을 이용하여 가상 머신(VM)을 생성한다(단계 200). The lightweight CubeEdge tool according to this embodiment creates a virtual machine (VM) using a kernel-based virtual machine (Kernal Virtual Machine, KVM) (step 200).

경량 큐브에지 도구는 가상 머신 생성 이후, KVM 내부에 최소 두 개의 LAN을 설정하여 네트워킹 환경을 구축한다(단계 202). After creating a virtual machine, the lightweight CubeEdge tool establishes a networking environment by setting at least two LANs inside the KVM (step 202).

하나의 LAN은 큐브에지 시스템의 클라우드 측 쿠버네티스 클러스터를 형성하기 위한 것이고, 다른 하나는 클라우드 측 쿠버네티스 클러스터와 큐브에지 시스템의 에지 노드를 연결하기 위한 것이다. One LAN is for forming the cloud-side Kubernetes cluster of the CubeEdge system, and the other is for connecting the cloud-side Kubernetes cluster and the edge nodes of the CubeEdge system.

이후, 각 가상 머신에 네트워크 인터페이스가 추가되며, 클라우드 측에서는 쿠버네티스 API 서버(130)에 에지 노드의 수에 상응하는 네트워크 인터페이스가 추가된다. Subsequently, network interfaces are added to each virtual machine, and network interfaces corresponding to the number of edge nodes are added to the Kubernetes API server 130 on the cloud side.

큐브-스케줄러가 CPU/메모리가 부족하거나 지정된 CPU/메모리 제한에 도달한 노드에 파드를 할당하지 못하도록 하려면, 클라우드 코어 측 및 에지 코어 측의 모든 노드에서 스왑 메모리(swap area)를 비활성화해야 한다. To prevent the cube-scheduler from assigning pods to nodes that are running out of CPU/memory or have reached their specified CPU/memory limits, you should disable the swap area on all nodes, both on the cloud core side and on the edge core side.

큐브에지 시스템은 쿠버네티스를 기반으로 하므로 경량 큐브에지 도구는 클라우드 및 에지 코어에 포함된 모든 노드에 대해 스왑 메모리를 비활성화한다(단계 204). Since the CubeEdge system is based on Kubernetes, the lightweight CubeEdge tool disables swap memory for all nodes included in Cloud and Edge Core (step 204).

이후, 모든 노드들은 컨테이너를 설치한다(단계 206). Then, all nodes install containers (step 206).

큐브에지 시스템의 각 노드는 Cgroup 드라이버를 컨테이너의 런타임으로 설정한다(단계 208). Each node in the CubeEdge system sets the Cgroup driver to the container's runtime (step 208).

여기서, Cgroup은 디바이스, CPU, RAM, 네트워크 액세스 등을 포함하는 커널의 특정 하위 시스템을 제어하기 위한 메커니즘이다. Here, Cgroup is a mechanism for controlling a specific subsystem of the kernel including device, CPU, RAM, network access, and the like.

클라우드 노드cloud node

마스터 노드에 쿠버네티스(K8s)를 설치한다(단계 210). Install Kubernetes (K8s) on the master node (step 210).

여기서, 마스터 노드는 쿠버네티스 API 서버(130)이다. Here, the master node is the Kubernetes API server 130.

이후, 마스터 노드에 큐브에지를 설치한다(단계 212). Then, Cube Edge is installed on the master node (step 212).

마스트 노드를 설정하고, 마스터 노드가 토큰을 생성하도록 한다(단계 214). Establish a master node and have the master node generate a token (step 214).

마지막으로 마스터 노드 토큰을 가져온다(단계 216). Finally get the master node token (step 216).

에지 노드edge node

큐브에지를 에지 노드에 설치한다(단계 218). CubeEdge is installed on the edge node (step 218).

마스터 노드 토큰을 워커 노드로 전달한다(단계 220). Pass the master node token to the worker node (step 220).

마지막으로 워커 노드는 마스터 노드 토큰을 사용하여 마스터 노드와 결합하여 클러스터를 형성한다(단계 222). Finally, the worker node joins with the master node using the master node token to form a cluster (step 222).

상기한 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.The embodiments of the present invention described above have been disclosed for illustrative purposes, and those skilled in the art having ordinary knowledge of the present invention will be able to make various modifications, changes, and additions within the spirit and scope of the present invention, and such modifications, changes, and additions will be considered to fall within the scope of the following claims.

Claims (10)

클라우드 코어 및 에지 코어를 포함하는 큐브에지 시스템에 대해 경량 큐브에지 도구를 이용하여 에지 컴퓨팅 환경을 위한 경량 큐브에지 시스템을 구성하는 방법으로서,
상기 경량 큐브에지 도구가, 커널 기반 가상 머신(Kernal Virtual Machine, KVM)을 이용하여 가상 머신을 생성하고 네트워킹 환경을 구축하는 단계;
상기 클라우드 코어 측의 마스터 노드 및 상기 에지 코어 측의 복수의 에지 노드를 포함하는 모든 노드가, 컨테이너를 설치하고, 컨테이너 런타임을 설정하는 단계;
상기 마스터 노드가, 마스터 노드 토큰을 생성하는 단계;
상기 복수의 에지 노드가, 상기 마스터 노드 토큰을 워커 노드로 전달하는 단계; 및
상기 워커 노드가, 상기 마스터 노드 토큰을 이용하여 상기 마스터 노드와 결합하여 클러스터를 형성하는 단계를 포함하는 경량 큐브에지 시스템 구성 방법.
A method of constructing a lightweight cubeedge system for an edge computing environment using a lightweight cubeedge tool for a cubeedge system including a cloud core and an edge core,
The lightweight CubeEdge tool creates a virtual machine using a kernel-based virtual machine (KVM) and builds a networking environment;
installing containers and setting container runtimes at all nodes including a master node on the cloud core side and a plurality of edge nodes on the edge core side;
Generating, by the master node, a master node token;
transmitting, by the plurality of edge nodes, the master node token to a worker node; and
A lightweight cube edge system configuration method comprising the step of forming a cluster by combining the worker node with the master node using the master node token.
제1항에 있어서,
상기 네트워킹 환경을 구축하는 단계는,
상기 경량 큐브에지 도구가, 상기 클라우드 코어 측 쿠버네티스 클러스터를 형성하기 위한 LAN과 상기 쿠버네티스 클러스터와 상기 복수의 에지 노드를 연결하기 위한 LAN을 설정하는 단계를 포함하는 경량 큐브에지 시스템 구성 방법.
According to claim 1,
The step of building the networking environment,
A lightweight cube edge system configuration method comprising the step of setting, by the lightweight cube edge tool, a LAN for forming the cloud core-side Kubernetes cluster and a LAN for connecting the Kubernetes cluster and the plurality of edge nodes. .
제1항에 있어서,
상기 모든 노드가 컨테이너를 설치하는 단계 이전에, 상기 경량 큐브에지 도구가, 상기 모든 노드에 대한 스왑 메모리를 비활성화하는 단계를 더 포함하는 경량 큐브에지 시스템 구성 방법.
According to claim 1,
The lightweight cube edge system configuration method further comprising deactivating, by the lightweight cube edge tool, swap memory for all the nodes before the step of installing containers in all nodes.
제1항에 있어서,
상기 모든 노드는 디바이스, CPU, RAM, 네트워크 액세스 등을 포함하는 커널의 특정 하위 시스템을 제어하기 위한 메커니즘으로 정의되는 Cgroup 드라이버를 상기 컨테이너 런타임으로 설정하는 경량 큐브에지 시스템 구성 방법.
According to claim 1,
All the nodes set a Cgroup driver, which is defined as a mechanism for controlling a specific subsystem of the kernel, including devices, CPU, RAM, network access, etc., to the container runtime.
제1항에 있어서,
상기 마스터 노드는 쿠버네티스 API 서버인 경량 큐브에지 시스템 구성 방법.
According to claim 1,
The method of configuring a lightweight cube edge system in which the master node is a Kubernetes API server.
제1항에 있어서,
상기 마스터 노드 토큰을 생성하는 단계 이전에, 상기 마스터 노드가, 쿠버네티스 및 큐브에지를 설치하는 단계를 더 포함하는 경량 큐브에지 시스템 구성 방법.
According to claim 1,
Prior to the step of generating the master node token, the lightweight cube edge system configuration method further comprising the step of installing, by the master node, Kubernetes and cube edge.
제1항에 있어서,
상기 마스터 노드 토큰을 상기 워커 노드로 전달하는 단계 이전에, 상기 복수의 에지 노드가 큐브에지를 설치하는 단계를 더 포함하는 경량 큐브에지 시스템 구성 방법.
According to claim 1,
Prior to the step of transmitting the master node token to the worker node, the plurality of edge nodes further comprising the step of installing a cube edge.
제1항에 따른 방법을 수행하는 프로그램이 저장된 컴퓨터 판독 가능한 기록매체. A computer-readable recording medium in which a program for performing the method according to claim 1 is stored. 클라우드 코어 및 에지 코어를 포함하는 에지 컴퓨팅 환경을 위한 경량 큐브에지 시스템 구성 장치로서,
프로세서; 및
상기 프로세서에 연결되는 메모리를 포함하되,
상기 메모리는,
커널 기반 가상 머신(Kernal Virtual Machine, KVM)을 이용하여 가상 머신을 생성하고 네트워킹 환경을 구축하고,
상기 클라우드 코어 측의 마스터 노드 및 상기 에지 코어 측의 복수의 에지 노드를 포함하는 모든 노드가 컨테이너를 설치하도록 하고,
상기 모든 노드가 컨테이너 런타임을 설정하도록 하고,
상기 마스터 노드가 마스터 노드 토큰을 생성하도록 하고,
상기 복수의 에지 노드가 상기 마스터 노드 토큰을 워커 노드로 전달하도록 하고,
상기 워커 노드가 상기 마스터 노드 토큰을 이용하여 상기 마스터 노드와 결합하여 클러스터를 형성하도록,
상기 프로세서에 의해 실행되는 프로그램 명령어들을 저장하는 경량 큐브에지 시스템 구성 장치.
A lightweight cube edge system configuration device for an edge computing environment including a cloud core and an edge core,
processor; and
Including a memory coupled to the processor,
the memory,
Create a virtual machine using a kernel-based virtual machine (KVM) and build a networking environment,
All nodes including a master node on the cloud core side and a plurality of edge nodes on the edge core side install containers;
allow all the nodes to set up a container runtime;
cause the master node to generate a master node token;
allowing the plurality of edge nodes to pass the master node token to a worker node;
The worker node uses the master node token to combine with the master node to form a cluster,
A lightweight cube edge system configuration device for storing program instructions executed by the processor.
제9항에 있어서,
상기 프로그램 명령어들은, 상기 모든 노드가 컨테이너를 설치하기 이전에, 상기 모든 노드에 대한 스왑 메모리를 비활성화하는 경량 큐브에지 시스템 구성 장치.
According to claim 9,
The program instructions are lightweight cube edge system configuration device for inactivating the swap memory for all the nodes before all the nodes install the container.
KR1020210144683A 2021-10-27 2021-10-27 Lightweight KubeEdge configuration method and apparatus for edge computing environment KR102582777B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210144683A KR102582777B1 (en) 2021-10-27 2021-10-27 Lightweight KubeEdge configuration method and apparatus for edge computing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210144683A KR102582777B1 (en) 2021-10-27 2021-10-27 Lightweight KubeEdge configuration method and apparatus for edge computing environment

Publications (3)

Publication Number Publication Date
KR20230060211A true KR20230060211A (en) 2023-05-04
KR102582777B1 KR102582777B1 (en) 2023-09-25
KR102582777B9 KR102582777B9 (en) 2023-12-08

Family

ID=86379902

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210144683A KR102582777B1 (en) 2021-10-27 2021-10-27 Lightweight KubeEdge configuration method and apparatus for edge computing environment

Country Status (1)

Country Link
KR (1) KR102582777B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102210429B1 (en) * 2019-04-30 2021-02-01 숭실대학교산학협력단 Container cluster system for authentication based on blockchain
CN112383416A (en) * 2020-11-02 2021-02-19 之江实验室 Kubeedge and EdgeX fountain based intelligent edge device control platform
KR20210028176A (en) * 2019-02-28 2021-03-11 에스케이브로드밴드주식회사 Virtual desktop system using container and method thereof
US20210232498A1 (en) 2020-04-17 2021-07-29 Beijing Baidu Netcom Science And Technology Co., Ltd. Method for testing edge computing, device, and readable storage medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210028176A (en) * 2019-02-28 2021-03-11 에스케이브로드밴드주식회사 Virtual desktop system using container and method thereof
KR102210429B1 (en) * 2019-04-30 2021-02-01 숭실대학교산학협력단 Container cluster system for authentication based on blockchain
US20210232498A1 (en) 2020-04-17 2021-07-29 Beijing Baidu Netcom Science And Technology Co., Ltd. Method for testing edge computing, device, and readable storage medium
CN112383416A (en) * 2020-11-02 2021-02-19 之江实验室 Kubeedge and EdgeX fountain based intelligent edge device control platform

Also Published As

Publication number Publication date
KR102582777B9 (en) 2023-12-08
KR102582777B1 (en) 2023-09-25

Similar Documents

Publication Publication Date Title
US11429408B2 (en) System and method for network function virtualization resource management
EP3347816B1 (en) Extension of resource constraints for service-defined containers
US11294699B2 (en) Dynamically scaled hyperconverged system establishing minimum supported interoperable communication protocol between clusters in a cluster group
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US8863138B2 (en) Application service performance in cloud computing
US10572290B2 (en) Method and apparatus for allocating a physical resource to a virtual machine
EP2319211B1 (en) Method and apparatus for dynamically instantiating services using a service insertion architecture
JP5837683B2 (en) Native cloud computing with network segmentation
US20190327144A1 (en) Methods and apparatus for template driven infrastructure in virtualized server systems
CN112416737B (en) Container testing method, device, equipment and storage medium
CN111212116A (en) High-performance computing cluster creating method and system based on container cloud
US11461120B2 (en) Methods and apparatus for rack nesting in virtualized server systems
US20190370023A1 (en) Distributed job manager for stateful microservices
CN114968477A (en) Container heat transfer method and container heat transfer device
WO2018076882A1 (en) Operating method for storage device, and physical server
CN115617456A (en) Method and device for hybrid operation of virtual machine and container, electronic equipment and readable storage medium
CN110569104A (en) Management method and computer storage medium for task training in deep learning system
JP2008107966A (en) Computer system
KR20160105636A (en) Server Virtualization Method of Multi Node System and Apparatus thereof
KR102582777B1 (en) Lightweight KubeEdge configuration method and apparatus for edge computing environment
US20230138867A1 (en) Methods for application deployment across multiple computing domains and devices thereof
CN116466957A (en) Automatic deployment of control nodes at remote locations
Le et al. Lightweight kubeedge tool for edge computing environments
CN114465765B (en) Client security management system and method of cloud desktop system
US20240370310A1 (en) Resource sharing in an orchestrated environment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]