前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KubeEdge 组件概述

KubeEdge 组件概述

作者头像
有点技术
发布2020-07-14 14:57:03
1.9K0
发布2020-07-14 14:57:03
举报
文章被收录于专栏:有点技术有点技术

介绍

KubeEdge是一个开源系统,用于将本机容器化的应用程序编排功能扩展到Edge上的主机, 它基于kubernetes构建,并为网络,应用程序提供基本的基础架构支持。云和边缘之间的部署和元数据同步。Kubeedge已获得Apache 2.0的许可。并且完全免费供个人或商业使用。我们欢迎贡献者!

我们的目标是建立一个开放平台,以支持Edge计算,将原生容器化应用程序编排功能扩展到Edge上的主机,该主机基于kubernetes,并为网络, 应用程序部署以及云与Edge之间的元数据同步提供基础架构支持。

特点

  • 完全开放 - Edge Core和Cloud Core都是开源的。
  • 离线模式 - 即使与云断开连接,Edge也可以运行。
  • 基于Kubernetes - 节点,群集,应用程序和设备管理。
  • 可扩展 - 容器化,微服务
  • 资源优化 - 可以在资源不足的情况下运行。边缘云上资源的优化利用。
  • 跨平台 - 无感知;可以在私有,公共和混合云中工作。
  • 数据与分析 - 支持数据管理,数据分析管道引擎。
  • 异构 - 可以支持x86,ARM。
  • 简化开发 - 基于SDK的设备加成,应用程序部署等开发
  • 易于维护 - 升级,回滚,监视,警报等

优势

  • 边缘计算 - 通过在Edge上运行的业务逻辑,可以在生成数据的本地保护和处理大量数据。这减少了网络带宽需求以及边缘和云之间的消耗。这样可以提高响应速度,降低成本并保护客户的数据隐私。
  • 简化开发 - 开发人员可以编写基于常规http或mqtt的应用程序,对其进行容器化,然后在Edge或Cloud中的任何位置运行它们中的更合适的一个。
  • Kubernetes原生支持 - 借助KubeEdge,用户可以在Edge节点上编排应用,管理设备并监视应用和设备状态,就像云中的传统Kubernetes集群一样
  • 大量的应用 - 可以轻松地将现有的复杂机器学习,图像识别,事件处理和其他高级应用程序部署和部署到Edge。

架构

kubeedge分为两个可执行程序,cloudcore和edgecore,分别有以下模块

cloudcore:

  • CloudHub:云中的通信接口模块。
  • EdgeController:管理Edge节点。
  • devicecontroller 负责设备管理。

edgecore:

  • Edged:在边缘管理容器化的应用程序。
  • EdgeHub:Edge上的通信接口模块。
  • EventBus:使用MQTT处理内部边缘通信。
  • DeviceTwin:它是用于处理设备元数据的设备的软件镜像。
  • MetaManager:它管理边缘节点上的元数据。

edged

EdgeD是管理节点生命周期的边缘节点模块。它可以帮助用户在边缘节点上部署容器化的工作负载或应用程序。这些工作负载可以执行任何操作,从简单的遥测数据操作到分析或ML推理等。使用kubectl云端的命令行界面,用户可以发出命令来启动工作负载。

Docker容器运行时当前受容器和镜像管理支持。将来应添加其他运行时支持,例如containerd等。

有许多模块协同工作以实现edged的功能。

  • pod管理 用于pod的添加删除修改,它还使用pod status manager和pleg跟踪pod的运行状况。其主要工作如下:
    • 从metamanager接收和处理pod添加/删除/修改消息。
    • 处理单独的工作队列以添加和删除容器。
    • 处理工作程序例程以检查工作程序队列以执行pod操作。
    • 分别为config map 和 secrets保留单独的的缓存。
    • 定期清理孤立的pod
    • <
  • Pod生命周期事件生成器
  • CRI边缘化
  • secret管理
  • Probe Management
  • ConfigMap Management
  • Container GC
  • Image GC
  • Status Manager
  • 卷管理
  • MetaClient

eventbus

Eventbus充当用于发送/接收有关mqtt主题的消息的接口

它支持三种模式:

  • internalMqttMode
  • externalMqttMode
  • bothMqttMode

metamanager

MetaManager是edged和edgehub之间的消息处理器。它还负责将元数据存储到轻量级数据库(SQLite)或从中检索元数据。

Metamanager根据以下列出的操作接收不同类型的消息:

  • Insert
  • Update
  • Delete
  • Query
  • Response
  • NodeConnection
  • MetaSync

Edgehub

Edge Hub负责与云中存在的CloudHub组件进行交互。它可以使用Web套接字连接或QUIC协议连接到CloudHub 。它支持同步云端资源更新,报告边缘端主机和设备状态更改等功能。

它充当边缘与云之间的通信链接。它将从云接收的消息转发到边缘的相应模块,反之亦然。

edgehub执行的主要功能是:

  • Keep Alive
  • Publish Client Info
  • Route to Cloud
  • Route to Edge

DeviceTwin

DeviceTwin模块负责存储设备状态,处理设备属性,处理设备孪生操作,在边缘设备和边缘节点之间创建成员资格, 将设备状态同步到云以及在边缘和云之间同步设备孪生信息。它还为应用程序提供查询接口。DeviceTwin由四个子模块(即membership,communication,device和device twin)组成,以执行device twin模块的职责。

Edge Controller

EdgeController是Kubernetes Api服务器和Edgecore之间的桥梁

CloudHub

CloudHub是cloudcore的一个模块,是Controller和Edge端之间的中介。它同时支持基于Web套接字的连接以及QUIC协议访问。Edgehub可以选择一种协议来访问cloudhub。CloudHub的功能是启用边缘与控制器之间的通信。

Device Controller

通过k8s CRD来描述设备metadata/status ,devicecontroller在云和边缘之间同步,有两个goroutines: upstream controller/ downstream controller

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有点技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 特点
  • 优势
  • 架构
    • edged
      • eventbus
        • metamanager
          • Edgehub
            • DeviceTwin
              • Edge Controller
                • CloudHub
                  • Device Controller
                  相关产品与服务
                  容器服务
                  腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档