KubeEdge가 어떻게 에지 환경에서 쿠버네티스를 구현하는지 궁금하신가요? 그 답은 내부를 구성하는 컴포넌트들의 유기적인 협업에 있습니다. 핵심만 콕 짚어 상세히 분석해 보겠습니다.
1. CloudCore: 클라우드와 에지를 잇는 가교
CloudCore는 기존 쿠버네티스 마스터 노드에 상주하며 에지 노드들을 자식처럼 관리합니다.
EdgeController: 에지 노드의 상태를 모니터링하고, 앱 배포 명령을 전달합니다.
DeviceController: 아래에서 설명할 'Device Twin' 정보를 클라우드와 동기화합니다.
2. EdgeCore: 에지의 영혼을 담은 3대장
에지 노드에서 돌아가는 EdgeCore는 사실상 작은 쿠버네티스입니다. 하지만 훨씬 끈질깁니다.
Edged: 쿠버네티스의
kubelet역할을 수행합니다. 컨테이너의 생명 주기를 관리하고 리소스를 할당합니다.MetaManager (최고 핵심): 이 녀석이 KubeEdge의 존재 이유입니다. 평소에 클라우드로부터 받은 설정값들을 로컬 DB(SQLite 등)에 저장해둡니다. 네트워크가 차단되면 이 DB를 보고 "아, 내가 이 앱을 돌리고 있어야 하는구나"라고 판단하며 상태를 유지합니다.
EventBus: MQTT 브로커와 통신하며 외부 IoT 디바이스로부터 데이터를 수집하거나 명령을 내립니다.
3. 혁신적 개념: Device Twin (디바이스 트윈)
하드웨어 장비를 다루는 방식이 예술입니다. KubeEdge는 센서, 모터, PLC 같은 물리적 장비를 소프트웨어 객체로 만듭니다.
상태 정의: 장비의 '현재 상태'와 '희망 상태(Desired State)'를 정의합니다.
동기화: 예를 들어, 관리자가 클라우드에서 "전등 켜기"라고 상태를 바꾸면, KubeEdge가 이를 감지해 현장의 실제 전등에 전기를 공급합니다. 하드웨어를 마치 소프트웨어 변수 다루듯 할 수 있게 되는 것입니다.
4. 한눈에 비교하는 KubeEdge vs 기존 방식
| 비교 항목 | 기존 Kubernetes 노드 | KubeEdge 노드 |
| 자립성 | 마스터 연결 끊기면 중단 가능성 높음 | 연결 끊겨도 서비스 유지(LNM) |
| 통신 프로토콜 | HTTP/gRPC (무거움) | MQTT (가볍고 빠름) |
| 디바이스 관리 | 별도 솔루션 필요 | Device Twin으로 통합 관리 |
| 데이터 처리 | 클라우드 집중형 | 에지 단독/분산 처리형 |
댓글
댓글 쓰기