前文回顾

  1. 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介
  2. 大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s
  3. 大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad
  4. 大规模 IoT 边缘容器集群管理的几种架构-3-Portainer

Reference:

IoT 边缘计算系列文章

Kubeedge

简介

KubeEdge 是一个开源系统,用于将本地容器化应用协调能力扩展到边缘的主机。它建立在 kubernetes 之上,为网络、应用部署和云与边缘之间的元数据同步提供基本的基础设施支持。

Kubeedge 的目标是建立一个开放的平台来实现边缘计算,将原生的容器化应用协调能力扩展到边缘的主机,该平台建立在 kubernetes 之上,为云和边缘之间的网络、应用部署和元数据同步提供基本的基础设施支持。

参考架构

  • “云”:Kubernetes 集群 + CloudCore(包括: CloudHub、EdgeController、DeviceController)
  • “边”:EdgeCore
    • Edged: 轻量化的 Kubelet 实现
    • EdgeHub
    • DeviceTwin
    • MetaManager
    • ServiceBus
  • "端": 各类 IoT 设备 Mappers

方案优点

  • CNCF 首个云原生边缘计算项目: 基于 Kubernetes, 为边缘做了很多优化和适配。功能强大且完善。全球开发者众多。
  • 大规模: 单集群突破 10 万边缘节点
  • 边缘设备管理: 完善的边缘设备管理,支持多种边缘设备通信协议,如 MQTT、Modbus、Bluetooth、OPC UA 等,支持自定义插件扩展边缘设备协议。
  • 100%兼容 Kubernetes 原生能力: 支持用户使用 Kubernetes 原生 API 统一管理边缘应用
  • 边缘可靠的 list-watch 接口
  • 轻量: 针对资源受限场景进行自身组件轻量化,~70MB 内存占用
  • 支持复杂的边云网络环境: 双向多路复用的边云消息通道,支持边缘位于私有网络; 应用层可靠增量同步机制,支持在高时延、低质量网络环境下工作
  • 边缘自治: 支持边缘离线自治:边缘元数据持久化、边缘 DNS,保证边缘离线时的业务运行和故障恢复能力(相比起来,k3s 的边缘自治算是"伪边缘自治"); 支持边缘数据流式处理,定义边缘数据清洗、数据分析等处理工作
  • 边云一体资源调度和流量协同: 支持边缘节点 (edged 节点,在 kubernetes 看来也是一个 node) 和云节点混合管理,提供边云数据通信和边边数据通信
  • DMI 架构设备管理: 管理面数据与业务面数据分离
  • EdgeMesh: 跨云边、边边的应用互访通信;边缘内置域名解析能力,不依赖中心 DNS; 支持 L4,L7 流量治理;支持跨越边云的一致的服务发现和访问体验;跨子网通信
  • Sedna: AI 边云协同套件

方案缺点

  • 复杂度高: Kubeedge 基于 Kubernetes, 但是针对边缘计算场景做了大量的功能扩展,这使得要用好 Kubeedge, 不仅要懂 Kubernetes, 还需要懂 Kubeedge, 还需要懂边缘业务/边缘通信协议。入门学习曲线极为陡峭。
  • 中文文档质量一般: 查看 Kubeedge 官网中文文档,发现以下问题:版本更新后文档未更新;文档生硬机翻英文文档;文档组织结构存在问题,很难"quick start"; 甚至还有低级的文档排版错乱,markdown 错乱等问题。
  • 资源占用其实也不少: 如果只是安装 edgecore 或 edged, 资源占用相对可控。如果需要使用到更多的功能,如 EdgeMesh, Sedna, 边缘设备管理,Kubernetes 的 CSI CNI 实现,那么这些功能都需要启用或额外安装相应插件。导致资源占用上升。
  • 边缘容器管理和边缘计算业务有一定耦合: Kubeedge 除了提供边缘容器管理基本功能外,还提供了大量与边缘计算业务有密切关系的功能,可能会导致部门耦合。
  • 自动化运维困难: 其他 3 个方案,都会提供一键式的安装运维脚本或自动化部署/运维功能,Kubeedge 这方面相对缺乏,自动化运维能力需要自行探索。

继续阅读

大规模 IoT 边缘容器集群管理的几种架构-5-总结

参考资料

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

大规模 IoT 边缘容器集群管理的几种架构-4-Kubeedge的更多相关文章

  1. 容器、容器集群管理平台与 Kubernetes 技术漫谈

    原文:https://www.kubernetes.org.cn/4786.html 我们为什么使用容器? 我们为什么使用虚拟机(云主机)? 为什么使用物理机? 这一系列的问题并没有一个统一的标准答案 ...

  2. Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET

    Docker&Kubernetes沙龙干货集锦:容器集群管理利器kubernetes详谈-CSDN.NET undefined Package - crawler undefined 科学网- ...

  3. Docker容器集群管理之Swarm

    Docker容器集群管理主流方案 Swarm Docker公司自研发的集群管理系统. Kubernetes Google开源的一个容器集群管理系统,用于自动化部署.扩展和管理容器应用.也称为K8S ...

  4. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

  5. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  6. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...

  7. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

  8. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...

  9. Kubernetes容器集群管理环境 - Prometheus监控篇

    一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...

  10. Kubernetes容器集群管理环境 - 完整部署(中篇)

    接着Kubernetes容器集群管理环境 - 完整部署(上篇)继续往下部署: 八.部署master节点master节点的kube-apiserver.kube-scheduler 和 kube-con ...

随机推荐

  1. python中调用C代码

    首先我们需要明晰为什么我们需要在python中调用C语言的代码,原因不外乎有二: 其一,python不擅长"大量运算"任务,而擅长于编写简单,"IO密集型作业" ...

  2. mq中如何保证消息的顺序性

    先说结论 不建议在mq当中使用消息的投递顺序来保证消息的顺序一致性 反思为什么需要保留消息的顺序性 日常思维中,顺序大部分情况会和时间关联起来,即时间的先后表示事件的顺序关系.消息队列中的若干消息如果 ...

  3. 【数据库】SQL-随机生成区间内数值、日期、字符串,mock数据

    〇.概述 1.参考 2.其他 一.随机生成数值 1.随机生成函数random_int() -- 随机数生成函数,int版 CREATE OR REPLACE FUNCTION random_int( ...

  4. 【Java SE】课程目录

    〇.课程简介 一.前言入门 二.数据类型.运算符.方法 三.流程控制 四.Idea.方法 五.数组 六.类.对象.封装.构造 七.Scanner类.Random类.ArrayList类 八.Strin ...

  5. 【Java EE】Day09 JavaScript基础、ECMAScript语法、Java对象

    一.简介 1.概念 客户端脚本语言 脚本语言:无需编译,直接被解析执行 运行在:客户端浏览器,每个浏览器都有解析引擎 功能: 用户与页面交互 控制html元素 使页面产生动态效果 2.发展史 1992 ...

  6. 【中间件】K8S-kubernetes

    一.概念 1.为什么使用k8s 生产型应用会涉及多个容器.这些容器必须跨多个服务器主机进行部署 可以构建跨多个容器的应用服务.跨集群调度.扩展这些容器,并长期持续管理这些容器的健康状况 在Docker ...

  7. referer的反爬和爬虫下载视频

    一.缘由 在梨视频等一些网站中会使用防盗链作为反爬的基础方法,这个反爬并不严重,只是平时的时候需要多加留意.此次实现对应链接中梨视频的下载. 二.代码实现 #1.拿到contid #2.拿到video ...

  8. Mysql安装失败-GPG验证不通过或Failed to start mariadb.service: Unit not fou

    1.报错原因 报错原文 Key imported successfully Import of key(s) didn't help, wrong key(s)? Public key for mys ...

  9. markdown语法使用

    markdown语法使用 标题系列 ​ 1.警号 ​ 2.快捷键 ​ ctrl + 数字(1~6) 小标题系列 * 文本 无序标题 + 文本 无序标题 数字 文本 有序标题 语言环境 表格制作 表情制 ...

  10. Windows11家庭中文版——启用或关闭Windows功能中找不到hyper解决方法

    Windows11家庭中文版找不到hyper解决方法: 1.将如下代码添加到记事本中,并另存为[Hyper-V.bat]文件,代码如下: pushd "%~dp0" dir /b ...