一起学习KubeEdge!!!

  • 1 边缘计算
    • 1.1 边缘计算的由来
    • 1.2 边缘计算价值
    • 1.3 推动边缘计算发展的缘由
  • 2 ~~基于Kubernetes边缘计算平台~~
    • 2.1 kubernetes
    • 2.2 kubernetes的一些基本概念:
    • 2.3 kubernetes架构
    • 2.3 基于Kubernetes边缘计算平台的优劣
  • 3 KubeEdge
    • 3.1 概念
    • 3.2 KubeEdge项目
    • 3.2 KubeEdge架构
      • 3.2.1 KubeEdge云端组件
      • 3.2.2 KubeEdge边缘组件

1 边缘计算

1.1 边缘计算的由来

  • 万物互联时代快速到来,无线网络普及:网络边缘的设备数量、产生的数据快速增长。
  • 集中式的数据库中心(包括公有云服务)将面临实时性、带宽、能耗、数据隐私的挑战。面向边缘设备所产生海量数据计算的边缘计算模型应运而生。

1.2 边缘计算价值

联接的广泛性

  • 广泛地域的低成本联接
  • 可移动、按需部署的联接
  • 多制式、多协议的稳定可靠联接
  • 边缘设备间互联

数据带宽优化

  • 本地数据库预处理,减少传输带宽需求
  • 数据的分布式计算与存储
  • 本地数据缓存(如CDN

有限的自治性

  • 业务本地自治,保障业务可用性
  • 数据处理、机器学习、深度学习等AI能力在边缘运行
  • 联接控制,自动智能运算和决策

业务的实时性

  • E2E(端到端)业务时延<10ms
  • AI增量学习,实时更新模型

安全与隐私保护

  • 设备安全
  • 网络安全
  • 数据安全
  • 应用安全

补充:

CDN: Content Distribute Network: 内容分发网络,或者,Content Delivery Network:内容交付网络。CDN就是采用更多的缓存服务器(CDN边缘节点),布放在用户访问相对集中的地区或网络中。当用户访问网站时,利用全局负载技术,将用户的访问指向距离最近的缓存服务器上,由缓存服务器响应用户请求。

1.3 推动边缘计算发展的缘由

低时延: 为满足低时延的要求,靠近业务现场的边缘构建解决方案,减少业务处理时延

海量数据 物联网时代边缘数据爆炸性增长,全部上云成本昂贵,数据在本地进行分析和过滤,节省带宽

隐私安全 数据涉及企业生产和经营活动安全,在边缘处理企业保密信息和个人隐私

本地自治 不依赖云端的离线处理能力和自我恢复能力


2 基于Kubernetes边缘计算平台

2.1 kubernetes

  • Kubernetes是一个全新的基于容器技术的分布式架构领先方案。是Google内部集群管理系统Borg的一个开源版本。
  • Kubernetes是一个开放的开发平台。不局限于任何一种语言,没有限定任何编程接口。是一个完备的分布式系统支撑平台。
  • 俗称K8S,因其单词较长且k和s之间有8个字母而成k8s。

2.2 kubernetes的一些基本概念:

  • Pod

– 应用实例,一组功能相关的Container的封装
– 共享存储和Network Namespace
– K8S调度和作业运行的基本单位(Scheduler调度,Kubelet运行)

  • Workloads(Deployment,StatefulSet,DaemonSet,Job…)

– 应用的部署模型,一组功能相关的Pod的封装

  • Service,Ingress

– 应用的访问方式,Pod“防失联”
– 给一组Pod设置反向代理

  • Persistent Volume

– 应用、存储分离,独立于Pod生命周期的存储卷

  • Configmap,Secret

– 部署配置分离

2.3 kubernetes架构

设计理念:

  • 只有API server可以访问etcd(是一个高度一致的分布式键值存储,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它可以优雅地处理网络分区期间的领导者选举,即使在领导者节点中也可以容忍机器故障。)
  • 组件通过API Server访问集群状态
  • API采用声明式设计(低敏感性的)
  • API对象彼此互补、可组合
  • 优先使用事件监听而不是轮询

2.3 基于Kubernetes边缘计算平台的优劣

优势:

  • 容器化应用封装

–Build once,run anywhere(一次构建,处处运行)
– 轻量化基础镜像,降低资源占用

  • 通用的应用抽象定义

– 业界事实标准
– 云上、边缘统一管理

  • 松耦合的架构

– 易扩展的API框架
– 易于定制平台组件

劣势:

  • 资源有限

– 往往很少

  • 网络受限

– 私网,带宽有限,延迟高

  • 边缘如何离线自治

–网络不稳,随时可能离线
– 离线状态下,边缘应用继续工作

  • 设备接入和管理

– 缺少设备抽象


3 KubeEdge

3.1 概念

  • KubeEdge是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于kubernetes构建,并为网络应用程序提供基础架构支持。云和边缘之间的部署和元数据同步。
  • 100%兼容K8S API,可以使用K8S API原语管理边缘节点和设备。KubeEdge 还支持 MQTT 协议,允许开发人员编写客户逻辑,并在边缘端启用设备通信的资源约束。

补充:

MQTT:

  • MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。
  • MQTT最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
  • 作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

3.2 KubeEdge项目

KubeEdge致力于将Kubernetes的能力扩展到边缘:

– 业界首个边缘容器平台项目
– Apache 2.0协议
– 2019年3月捐给CNCF(云原生计算基金会)基金会
– K8S IoT Edge WG参考架构
– 基于Kubernetes构建,100%兼容K8S API
– 6个特性版本,最新版本为v1.1.0

核心理念:

  • 云边协同

– 双向多路复用消息通道,支持边缘节点位于私有网络
– Websocket+消息封装,大幅减少通信压力,高时延下仍可正常工作

  • 边缘离线自治

– 节点元数据持久化,实现节点级离线自治
– 节点故障恢复无需List-watch,降低网络压力,快速ready

  • 极致轻量

– 重组Kubelet(Kubernetes集群中每个节点的代理)功能模块,极致轻量化(~10mb内存占用,移除内嵌存储驱动,通过CSI接入)
– 支持CRI集成Containerd、CRI-O,优化runtime资源消耗

补充:

  • List-watch

– List-watch 是 K8S 统一的异步消息处理机制,保证了消息的实时性,可靠性,顺序性,性能等等,为声明式风格的API 奠定了良好的基础,它是优雅的通信方式,是 K8S 架构的精髓。
– 但也是由于它需要较优的网络条件,导致KubeEdge遗弃它(边缘端的网络条件不能保证)

  • CSI

– 是衡量信道情况的信道状态信息(Channel State Information)。CSI代表着通信链路的传播特性,它描述信道中散射,衰落,功率衰减等等多种效应的联合影响(信道状态信息说白了就是传播路上的路况)。
– 获取CSI的方式称为信道估计。
– CSI分为两种,发射机侧的和接收机侧的(路况有出门前得到的,以及到达后的,显然出门前获得的重要)。
– 获得发射机侧的CSI,可以采用功率分配,波束赋形,天线选择等等手段提前补偿这些衰减(发现路况不好可以在出门前采取措施)。
– 有两种CSI,一种是暂态的CSI,一种是统计上的CSI。
– CSI获得的前提是先有信道模型。y=飞鸽传书(x), 鸽子的负重,飞行所需时间,迷路概率,路上被人烤了吃的概率等等就是csi。

  • Containerd

– Containerd 是一个工业级标准的容器运行时(Container Runtime Interface),它强调简单性、健壮性和可移植性。Containerd 可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等

  • CRI-O

– CRI-O项目的开始是为了创建专用于Kubernetes的最小可维护运行时
– CRI-O是一个社区驱动的开源项目,由Red Hat,Intel,SUSE,Hyper,IBM等公司的维护者和贡献者开发。 它的名称来自CRI和OCI,因为该项目的目标是使用基于OCI的标准组件来实现Kubernetes CRI

3.2 KubeEdge架构

kubeedge的架构分为三层。分别是云(Cloud)、边(Edge)、端(Device)。云是控制面,边是边缘节点,而端就是端侧设备。

3.2.1 KubeEdge云端组件

云端直接将K8S的master节点拿来使用,连接master组件的叫CloudCore。CloudCore与K8S的master进行连接并可以通过CloudHub对Edge进行通信。在CloudHub中EdgeController实现对边缘端的控制和将边缘端返回的信息转化为K8S的master能读懂的格式(从而进行),而DeviceController则是对边缘设备进行控制。

  • EdgeController

– 边缘端节点管理
– 应用状态元数据边云协同

  • 设备抽象API/DeviceController

– 接入和管理边缘设备
– 设备元数据云边协同

  • CSI Driver

– 同步存储数据到边缘

  • Admission Webhook

– Kubernetes的准入控制器(扩展API合法性校验)
针对不同场景下边端离线行为(网络不佳、自行离线等行为),对应用是否迁移进行判断(后期用户可通过相应场景自行选择是否开启此判断)

3.2.2 KubeEdge边缘组件

图一:

图二:

图二比图一多一个边与边的通信组件:EdgeMesh

  • EdgeHub

– Messaging over WebSocket提供可靠的云边信息同步

  • MetaManager

– 元数据(边端组件的一些配置信息、请求云端后返回的数据等)本地持久化(类似于一个CDN服务
– 实现边端节点离线自治的关键

  • Edged

– Kubelet-lite(是运行在边缘节点的代理,用于管理容器化的应用程序)
– 轻量化实现Pod生命周期(重新开发的轻量化 Kubelet,实现 Pod,Volume,Node 等 Kubernetes 资源对象的生命周期管理)

  • DeviceTwin

– 同步设备信息(终端设备的配置文件,例如json文件)到云端
– 为应用程序提供查询设备状态的接口

  • EventBus

– MQTT client(是一个与 MQTT 服务器(mosquitto)交互的 MQTT 客户端,为其他组件提供订阅和发布功能)

  • ServiceBus

– HTTP client(是一个运行在边缘的HTTP客户端,接受来自云上服务的请求,与运行在边缘端的HTTP服务器交互,提供了云上服务通过HTTP协议访问边缘端HTTP服务器的能力。)

  • EdgeMesh

EdgeMesh 的存在可以使得边缘与边缘之间互联互通和边缘向云端(单向)互通。
– EdgeMesh-proxy负责边缘侧流量转发
– 边缘内置域名解析能力,不依赖中心dns
– 支持L4,L7流量治理
– 支持跨越边云一致的服务发现和访问体验
– 使用标准的istio进行服务治理控制
– P2P技术跨子网通信

补充:
L4,L7:

四层负载均衡和七层负载均衡(点击跳转)

istio:

连接、安全加固、控制和观察服务的开放平台(点击跳转)

P2P:

P2P是peer-to-peer的简称,又称为点对点技术,是没有中心服务器、依靠用户群节点进行信息交换的对等式网络。区别于传统的C/S中央服务器结构,P2P网络中每一个用户节点即是客户端又是服务端,能同时作为服务器给其他节点提供服务。

【学习KubeEdge】相关推荐

  1. Kubeedge实现原理

    本文为转载,原文:Kubeedge实现原理 可能由于各自的定位不同,K3S更像是一个kubernetes厂商的一个发行版,在边缘计算方面其实是没有摄入细节的.相比起来,kubeedge目标更明确,除了 ...

  2. KubeEdge 云边通信方式

    ‍下面我们一起来学习KubeEdge的架构设计. 首先我们来了解一下KubeEdge的背景,KubeEdge是华为开源的,‍‍在2019年捐赠给了CNCF基金会,目前源代码在github上面托管,‍‍ ...

  3. Sedna终身学习以及KubeEdge梳理

    文章目录 一.KubeEdge以及Sedna架构 1 KubeEdge架构及组件 1.1 整体架构 1.2 CloudCore组件 1.3 EdgeCore组件 1.4 EdgeMesh插件 2 Se ...

  4. 安装KubeEdge和Sedna以及热舒适度终身学习案例

    文章目录 一.安装KubEdge 1 主节点和边缘节点都进行 1.1 我的ip以及如何更改hostname 1.2 安装Docker 1.3 下载KubeEdge相关 2 主节点进行 2.1 kube ...

  5. KubeEdge向左,K3S向右

    KubeEdge是华为捐献给CNCF的第一个开源项目,也是全球首个基于Kubernetes扩展的,提供云边协同能力的开放式边缘计算平台.KubeEdge的名字来源于Kube + Edge,顾名思义就是 ...

  6. KubeEdge vs K3S:Kubernetes在边缘计算场景的探索

    作者 | Edge Captain 近期两个 Kubernetes 相关的软件 KubeEdge 和 K3S 分别开源,Kubernetes 开始在边缘计算场景探索应用. KubeEdge 是华为捐献 ...

  7. 管理节点连接不上sql节点_华为云IEF智能边缘平台十万边缘节点管理技术深度解读学习笔记...

    华为云智能边缘平台IEF首席架构师张琦在3月27-28日举办的华为开发者大会2020(Cloud)上,深度解读了十万边缘节点的管理技术,以及如何通过云原生技术和边缘计算结合,构建边缘计算实战场景中所需 ...

  8. K8S 1.18.0 以及KubeEdge 1.10.3 三机安装部署(含过程记录及遇到的报错和解决方法)

    因为网络上大多数教程只有部署相关的命令,而无输入命令后正确界面的显示样例,因此在参考网络上教程并跟随实现的过程中,我将过程进行截图记录,供大家参考.希望对大家有帮助~ 一. K8S部署 选用了三台虚拟 ...

  9. KubeEdge SIG AI发布首个分布式协同AI Benchmark调研

    摘要:AI Benchmark旨在衡量AI模型的性能和效能. 本文分享自华为云社区<KubeEdge SIG AI发布首个分布式协同AI Benchmark调研>,作者:KubeEdge ...

  10. KubeEdge SIG AI 进展与规划

    在2022云原生边缘计算峰会KubeEdge Summit上,德国HPI研究院多媒体与机器学习科研组负责人杨浩进介绍了边缘AI的现状和趋势,KubeEdge SIG AI的进展和规划. 01  边缘A ...

最新文章

  1. 浏览器缓存导致FLASH资源更新问题的解决方案
  2. ajax formdata提交上传,Ajax提交用FormData()上传文件
  3. bash命令的使用方法
  4. c/c++在windows下获取时间和计算时间差的几种方法总结
  5. python控制画笔尺寸,Python画笔的属性及用法详解
  6. TIME_WAIT状态的一些总结
  7. node.js 执行php,node.js - 如何利用php执行nodejs文件
  8. 十年经验工程师为何被裁?
  9. 大数据技术和python开发工程师
  10. JEECG开源社区, 成立了微信二次开发项目,欢迎有兴趣朋友参与
  11. json 潜逃 结构体_JSON还原为结构体
  12. 右击计算机管理出现乱码,win10系统右键菜单出现乱码的处理方案
  13. shell 除法保留n位小数
  14. 如何将自己写的项目发布到外网上
  15. Java将 PDF 拆分为多个 PDF 文件
  16. 结算机网络的tracert和route命令
  17. Archlinux 安装、美化、软件入门(四)
  18. 用Python实现自动扫雷
  19. 服务应用执行可疑命令
  20. 企业网盘对比NAS哪个更适合企业

热门文章

  1. 恒生电子招聘,内含内推码
  2. source insight 4.0 的一些设置
  3. P800刷英文WM6教程以及常见问题整理
  4. 【计算方法】解线性方程组的四种方法
  5. 终于有人把流量运营讲明白了
  6. LeetCode第 252 场周赛 之5187. 收集足够苹果的最小花园周长
  7. 气体涡轮流量计和涡街流量计的区别
  8. 【考试】二阶段2201班考试答案(做错一概不负责)
  9. Python字符串str和json格式的转换
  10. 征集华人操作系统项目列表