반응형
KubeEdge
KubeEdge는 컨테이너화(Containerized)된 어플리케이션에 대한 Kubernetes 의 오케스트레이션 기능을 엣지 영역으로 확장하기 위한 오픈 소스 시스템이다. 클라우드 컴퓨팅에서 사용되고 있는 kubernetes 서비스를 엣지 컴퓨팅에 접목하기 위한 시도 중의 하나로 k3s, micro-k8s 등의 유사 프로젝트가 있다. kubernetes 와 엣지컴퓨팅에 대하여는 본 블로그드의 관련 포스트를 참고하자.
쉽게 말해 KubeEdge 는, 엣지 노드에서 kubernetes를 사용할 수 있게 지원해주는 오픈소스이다. CNCF sandbox project 이며 2019년 3월에 첫 릴리즈를 시작으로 현재 그 기능이 안정화 되어 가고 있다.
주요 특징과 장점
- 엣지 컴퓨팅 : 도메인 전용인 로직들을 엣지 단에서 실행하여, 네트워크 대역폭을 줄이고, 데이터의 보안성 증가
- 개발구성 단순화 : 엣지 단에서 http/mqtt를 모두 지원하므로 원하는 프로토콜로 개발한 후에 edge/cloud 중 적합한 곳에서 실행 가능
- K8S 네이티브 지원 : 기존의 클라우드 환경에서 k8s 클러스터를 사용하는 방식과 동일하게 엣지 노드를 제어 가능
- 응용성 : 기존의 ML, 이미지 인식, 이벤트 처리 등의 응용 프로그램을 엣지에 쉽게 배포 가능
Architecture
위 아키텍처에서 확인할 수 있듯이, KubeEdge 의 구성도는 크게 3가지 영역으로 나눠 볼 수 있다.
Components
1. Cloud Part
Component | Role |
Cloud Hub | Cloud Part 에서 디바이스의 변화를 감지하고, EdgeHub로 메세지를 보내는 웹 소켓 서버 |
EdgeController | 데이터가 특정 노드로 전달 될 수 있도록, edge 노드와 pod 의 메타데이터를 관리하는 확장된(extended) k8s controller |
DeviceController | Cloud ↔ Edge part 간 디바이스의 메타 데이터와 상태가 동기화 될 수 있도록 디바이스를 관리하는 확장된(extended) k8s controller |
2. Edge Part
Component | Role |
EdgeHub | 엣지 컴퓨팅을 위해 클라우드 서비스와 상호작용하는 웹 소켓 클라이언트. Cloud part 에서의 EdgeController 와 유사한 역할. 엣지 사이트의 디바이스 상태를 cloud part 로 전송. |
Edged | 엣지 노드에서 구동되며, 컨테이너화 된 앱을 관리하는 에이전트 Pod, Volume, Node 와 같은 K8S 의 객체의 수명 주기를 관리하는 경량 Kubelet |
EventBus | MQTT 서버와 통신 |
ServiceBus | HTTP 서버와 통신. cloud 모듈들이 Edge 에서 구동되는 HTTP 서버들에게 접근할 수 있도록 지원 |
MetaManager | Edged와 EdgeHub 사이의 메세지 프로세서. 경량 DB(SQLite) 에 데이터를 저장하고 가져오는 역할 수행 |
DeviceTwin | 디바이스의 상태를 저장하고, cloud part에 자신의 디바이스 상태를 동기화. app 에 대한 query interface 제공 |
'소프트웨어 아키텍처' 카테고리의 다른 글
Container Network Interface : Weave -> Calico (0) | 2021.09.16 |
---|---|
Container Network Interface : CNI (0) | 2021.09.03 |
Container 기반기술 : Namespace (0) | 2021.09.02 |
클라우드 컴퓨팅 : Introduction to cloud computing (0) | 2021.08.27 |
Edge Computing 과 Kube Edge (2) | 2020.04.10 |
댓글