星野云联 物联网数字化专家

17191073931

星野云联 物联网开发公司

17191073931

KubeEdge 指南一:边缘计算与 Kubernetes 的完美结合

介绍了 KubeEdge 如何将 Kubernetes 的强大能力扩展到边缘计算领域。通过云边协同、离线自治和设备管理等特性,KubeEdge 为解决边缘计算的挑战提供了全面的解决方案。了解 KubeEdge 的架构、核心组件和主要特性,助力您在物联网和边缘计算领域的实践。


在数字化和智能化的浪潮下,物联网(IoT)设备的数量呈爆炸式增长。据统计,全球物联网设备数量已经超过了 200 亿台,这一数字还在不断攀升。这些设备每天都会产生海量的数据,传统的云计算模式需要将数据传输到中心云进行处理。然而,随着数据量的激增和对实时性要求的提高,云计算模式面临着网络带宽限制、延迟增大和数据隐私等一系列挑战。

同时,Kubernetes 作为云端容器编排的事实标准,极大地提升了应用部署和管理的效率。然而,Kubernetes 的设计初衷是针对数据中心和云环境,面对边缘计算的特殊需求,如网络不稳定、资源受限和多样化的硬件设备,传统的 Kubernetes 架构显得捉襟见肘。

为了解决这一难题,KubeEdge 作为一种将 Kubernetes 能力延伸至边缘的创新解决方案,应运而生。KubeEdge 通过在边缘设备上运行 Kubernetes 的核心功能,实现了云端与边缘端的无缝协同管理,为边缘计算带来了新的可能性。

本文将带您深入了解 KubeEdge,探索它如何应对边缘计算的挑战,帮助开发者和企业更好地利用边缘计算的优势。

一、什么是 KubeEdge

项目概述

KubeEdge 是由云原生计算基金会(CNCF)孵化的开源项目,于 2018 年正式开源。它的核心理念是将云原生应用的优势扩展到边缘计算领域,使得边缘设备也能享受 Kubernetes 提供的强大编排和管理能力。

KubeEdge 的出现,填补了 Kubernetes 在边缘计算领域的空白,为开发者提供了一个统一的平台来管理云端和边缘端的资源。

定位与使命

KubeEdge 的使命主要包括:

  • 扩展 Kubernetes 能力到边缘:通过对 Kubernetes 的边缘化改造,使其适应边缘环境的特殊需求。
  • 提供云边协同的解决方案:实现云端与边缘端的统一管理,支持应用和设备的一体化部署和运维。
  • 满足边缘计算的特殊需求:针对网络不稳定、资源受限、多样化的设备等挑战,提供专门的优化和支持。

基本架构

KubeEdge 的架构设计遵循了云边协同的原则,主要分为云端(Cloud)和边缘端(Edge)两部分:

  • 云端(Cloud)
  • 运行 Kubernetes 的控制平面组件,如 API Server、Controller Manager 等。
  • 部署 KubeEdge 的云端组件,如 EdgeController 和 CloudHub。
  • 负责管理整个集群的资源,对边缘节点进行调度和管理。
  • 边缘端(Edge)
  • 运行 KubeEdge 的边缘核心组件,如 EdgeCore。
  • 负责容器和应用的本地管理,处理设备数据和事件。
  • 能够在网络断开时自主运行,保障业务的连续性。

这种架构设计确保了云端的全局管理能力与边缘端的本地化处理能力相结合,实现了资源的最优配置和应用的高效运行。

二、KubeEdge 的核心架构

为了深入理解 KubeEdge 的工作原理,我们需要详细了解其核心架构和各组件的功能。

1. 云端组件

EdgeController

  • 功能概述:EdgeController 是 KubeEdge 在云端的重要组件,负责管理边缘节点的元数据和指令下发。
  • 主要职责
  • 监听 Kubernetes API Server 的资源变更事件,如 Pod、ConfigMap、Secret 等。
  • 将资源变更的信息同步到边缘节点,确保云边数据的一致性。
  • 维护边缘节点的生命周期,处理节点的加入和退出。

CloudHub

  • 功能概述:CloudHub 负责与边缘端的 EdgeHub 模块建立稳定的通信连接。
  • 主要职责
  • 通过 WebSocket 或 Quic 协议,与 EdgeHub 维持长连接。
  • 接收边缘端上报的消息,如节点状态、设备数据等。
  • 将云端的指令和配置下发到边缘端。

2. 边缘端组件

EdgeCore

EdgeCore 是运行在边缘节点上的核心组件,包含多个子模块:

Edged
  • 功能概述:Edged 类似于 Kubernetes 的 kubelet,负责管理容器的生命周期。
  • 主要职责
  • 根据云端下发的 Pod 定义,拉取容器镜像。
  • 创建、启动、停止和删除容器。
  • 监控容器的运行状态,收集资源使用情况。
EdgeHub
  • 功能概述:EdgeHub 负责与云端的 CloudHub 进行通信。
  • 主要职责
  • 维护与云端的长连接,确保消息的可靠传输。
  • 将边缘端的状态和事件上报给云端。
  • 接收云端下发的资源更新和指令。
EventBus
  • 功能概述:EventBus 是边缘端的消息总线,基于 MQTT 协议实现。
  • 主要职责
  • 提供边缘端内部的消息发布和订阅功能。
  • 支持应用和设备之间的数据交互。
  • 实现模块间的解耦和异步通信。
DeviceTwin
  • 功能概述:DeviceTwin 实现了设备的数字孪生模型,存储设备的期望状态和实际状态。
  • 主要职责
  • 维护设备的属性和元数据。
  • 监听设备状态的变化,并进行同步。
  • 支持对设备的远程控制和管理。
MetaManager
  • 功能概述:MetaManager 负责管理边缘端的元数据缓存。
  • 主要职责
  • 缓存云端下发的资源信息,如 Pod 定义、配置等。
  • 在云端断连时,提供本地的元数据服务,确保应用的正常运行。
  • 处理元数据的查询和更新请求。

三、KubeEdge 的主要特性

云边协同

KubeEdge 实现了云端与边缘端的无缝协同,主要体现在:

  • 统一管理:开发者可以使用 Kubernetes 的原生工具(如 kubectl)对云端和边缘端的应用进行统一管理,不需要学习新的操作方式。
  • 资源调度:KubeEdge 支持将应用按照策略调度到合适的边缘节点,充分利用边缘计算资源,提升应用的运行效率。
  • 配置同步:云端的配置和策略可以实时同步到边缘端,确保系统的一致性和可靠性。

离线自治

边缘计算场景中,网络连接往往不稳定,KubeEdge 针对这一特点,提供了离线自治的能力:

  • 自主运行:边缘节点在与云端断开连接的情况下,仍然能够自主运行已部署的应用和服务,保障业务的连续性。
  • 本地缓存:通过 MetaManager 和 DeviceTwin,KubeEdge 在边缘端缓存了必要的元数据和设备状态,即使断网也能正常工作。
  • 状态同步:在网络恢复后,边缘端会将状态变化和数据上报给云端,确保数据的一致性。

设备管理

KubeEdge 提供了强大的设备管理功能,使得边缘设备的接入和控制更加便捷:

  • 多协议支持:KubeEdge 支持 MQTT、Modbus、BLE 等多种设备通信协议,满足不同类型设备的接入需求。
  • 数字孪生:通过 DeviceTwin,实现了设备的数字化表示,方便对设备的状态进行监控和控制。
  • 远程控制:支持对设备的远程配置和指令下发,简化了设备管理的复杂性。

资源优化

考虑到边缘设备的硬件资源有限,KubeEdge 对资源占用和性能进行了优化:

  • 轻量级设计:KubeEdge 的组件经过精简,适合在资源受限的设备上运行,如树莓派等。
  • 容器运行时支持:兼容 Docker、containerd 等主流容器运行时,甚至支持轻量级的 Kata Containers,提高运行效率。
  • 本地调度:在边缘端实现了本地的资源调度和应用管理,减少了对云端的依赖。

安全性

在云边通信和设备管理过程中,安全性至关重要。KubeEdge 提供了多层次的安全机制:

  • 认证机制:通过证书和密钥,实现云边通信的双向认证,防止未经授权的设备接入。
  • 数据加密:支持 SSL/TLS 加密,保障数据在传输过程中的安全性,防止被窃听和篡改。
  • 访问控制:利用 Kubernetes 的 RBAC(基于角色的访问控制)机制,精细化管理用户和组件的权限。

KubeEdge 作为一款开源的边缘计算平台,成功地将 Kubernetes 的强大能力扩展到了边缘计算领域。通过云边协同、离线自治、设备管理等特性,KubeEdge 为解决边缘计算面临的挑战提供了全面而高效的解决方案。

在物联网和边缘计算蓬勃发展的时代,KubeEdge 为开发者和企业打开了一扇新的大门。它不仅降低了边缘计算的入门门槛,还为构建高性能、高可靠性的边缘应用提供了坚实的基础。



典型应用介绍

相关技术方案

image
031593738597 5878866096270521344 3485140623

是否需要我们帮忙?

若是您有同样的需求或困扰,打电话给我们,我们会帮您梳理需求,定制合适的方案。

010-62386352


星野云联专家微信
星野云联专家微信

© 2024 Zedyer, Inc. All Rights Reserved.

京ICP备2021029338号-2