导读

边缘计算平台,旨在将边缘端靠近数据源的计算单元纳入到中心云,实现集中管理,将云服务部署其上,及时响应终端请求。

然而,成千上万的边缘节点散布于各地,例如银行网点、车载节点等,节点数量甚至可能是几万到十几万,这就会对节点的承载能力造成巨大冲击。Kubernetes 官方数据是可以支持纳管 5000 节点,如果想要纳管更多的边缘节点,该如何设计边缘计算平台架构呢?

本文针对以上问题,提供一些博云的解决思路。

多集群管理

多集群可以有效地扩展纳管节点的规模,而对 kubernetes 多集群的管理,各厂商的实现方式各有不同,不同的 API,不同的特性,因此市场上很难形成标准的解决方案。

现有的官方 kubernetes 多集群管理解决方案是 kubefed(Federation V2),即 kubernetes 联邦。Federation V1早在 kubernetes 1.6 版本就开始提供服务,但由于V1架构的限制,无法灵活支持更新的 k8s API 接口,加上其他很多问题影响集群管理的效率,因此 Federation V1 在 kubernetes 1.11 版本正式被弃用,现在提供服务的是 Federation V2。

由架构图实现可以看出,Federation V2 在 k8s 之上定义了一些资源,用 cluster configuration 记录集群的 endpoint,secret 等认证信息,type configuration 来定义需要用 Federation 托管的资源类型,提供了调度器来平衡各个集群的负载,以及多集群的 DNS 功能。

这种 controller 级别的集群管理,提供了丰富的集群间交互功能,更适用于异地多中心的集群灾备等场景。在边缘场景,一个边缘端可能就是一个小集群(存在多个计算单元可以组成集群),这样会使得集群数量不断增多,进而对 Federation 的执行效率、API 的响应时间都会有较为明显的影响。那么,该如何削弱集群数量的不确定性所带来的影响呢?

下面为大家展示,我们在 KubeEdge 架构下如何解决多节点的问题。

Cloudcore 横向扩展

KubeEdge 架构下的云边协同通信采用 websocket 方式,quic 作为备选。其中 websocket 性能最好,quic 在弱网络(频繁断开)情况下优势较大,通信的服务端都是由 cloudcore 来实现。

这里我们引入一个逻辑集群的概念,即每个 cloudcore 可以看做是一个集群,横向扩展多个 cloudcore 对接下层数量较大的边缘节点,向上只依托在一个 kubernetes 集群即可,架构如下所示:

这样设计有如下几点优势:

  • 解决单个 cloudcore 消息转发/接收等处理的性能瓶颈;
  • 应用/设备的发布请求在 api-server 会被 cloudcore 监听捕获到,转而由对应的 cloudcore 来处理请求到边端,这样缓解了 k8s 集群的压力;
  • 中心云只需要一套 k8s 集群,调用链简单清晰,易于管理。

测试实现

环境信息:

测试集群单 master 节点,管理一个 node1 工作节点,cloudcore 运行在 maser 节点上,并已接入 edge1 边缘节点。

现在测试 node1 上创建 cloudcore 服务,将新的边缘节点 edge2 接入,节点组图如下:

集群下已有 cloudcore 和 edgecore,node1 是 k8s 的 x86 普通节点,现在该节点上运行 cloudcore 提供服务。

- 拷贝 cloudcore 二进制文件

- 重新生成证书

- 生成 cloudcore.yaml 配置文件

- 拷贝 k8s 集群的 kubeconfig 并将路径配置到 cloudcore.yaml

- 启动 cloudcore

edge2 是作为待接入集群的边缘节点,在该节点上运行 edgecore, server 指向 node1,启动服务。

可以看到 edge2 已经注册到 node1 上的 cloudcore 并同步节点信息到 k8s,测试发布服务到 edge1 上:

总结

本文通过讨论多集群的方式来扩展纳管边缘节点的规模,分析了以 kubefed 联邦进行多集群管理机制,对比不同场景下的特点,介绍了 KubeEdge 中利用横向扩展 cloudcore 的解决方案,并在测试环境部署实践。

在实际生产环境中,博云 BeyondEdge 边缘计算平台依托于博云 BeyondContainer 容器云平台,提供云上服务的编排、治理、DevOps 等云原生能力,利用 KubeEdge 将这些能力延伸到边缘节点,并将边缘设备抽象到云端 BeyondContainer容器云中,作为孪生设备资源,统一访问入口。

并且,运行在云端的边缘平台组件 cloudcore 作为应用服务部署在BeyondContainer容器云中,充分利用容器云的产品能力,将 cloudcore 以高可用方式部署在 kubernetes 中心云,通过 ingress 暴露服务接口提供给边缘节点的组件 edgecore 访问,可以根据边缘节点实际接入量动态扩展 cloudcore,作为逻辑上的集群扩展以提高中心云对边缘节点的承载能力。

点击BoCloud博云_以创新云技术 为效率而进化,获取更多产品及案例信息。

k8s边缘节点_边缘计算,如何啃下集群管理这块硬骨头?相关推荐

  1. zookeeper中展示所有节点_记录一次zookeeper集群其中一节点在hbase web页面中显示Connection rese...

    集群环境: nn1,view和dn1三节点部署的zookeeper集群,gezookeeper进程均已启动 hbase web页面显示zk_dump信息如下 日志输出信息如下: shell> t ...

  2. qq动态页面变方格_微信更新“分组显示、群管理”等功能,网友:都是QQ玩剩的姿势...

    关于QQ.微信想必大家都用过,如今这两款软件都已经发展到日活跃用户9亿之多,对于用户而言,微信和QQ早已发展到了瓶颈,对付日常使用已经足够满足了,然而腾讯最近再次内侧了微信新功能,这次的更新可以说非常 ...

  3. 打破内网壁垒,从云端一次添加成百上千的边缘节点

    作者 李腾飞,腾讯容器技术研发工程师,腾讯云TKE后台研发,SuperEdge核心开发成员. 王冬,腾讯云TKE后台研发工程师,专注容器云原生领域,SuperEdge 核心开发人员,现负责腾讯云边缘容 ...

  4. 边缘节点的需求分析和核心技术研究

    本文分析了来自5G.IoT 和CDN的边缘计算需求,对边缘计算的总体架构进行了研究.边缘节点作为数据中心网络中的一个重要组成部分,边缘硬件.边云协同和边边协同的技术发展将会非常重要.未来,需要解决好技 ...

  5. k8s边缘节点_KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码

    从v0.1到v0.2 小数点后的一小步 是边缘计算领域里程碑式的一大步 KubeEdge发布v0.2版本 全球首个基于K8S 提供云边协同能力的开源边缘计算架构 正式补齐最后一块拼图 将毫无保留地提供 ...

  6. 北美KubeCon新风,正把K8S魔力带向边缘计算

    戳蓝字"CSDN云计算"关注我们哦! 作者:DJ 审校:Kevin·Wang 来源:容器魔方 1. 容器生态圈新的创新方向 2018年容器技术圈的年终盛典北美KubeCon终于在西 ...

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

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

  8. 阿里云发布边缘节点服务2.0,建立“融合、开放、联动”的边缘计算新形态

    "5G时代,边缘计算将发挥更大价值."阿里云边缘计算技术负责人杨敬宇表示,边缘计算作为5G时代的一项关键技术,未来将成为不可或缺的基础设施之一.那么云的能力是如何深入每个计算场景的 ...

  9. 边缘计算架构_边缘计算架构梳理

    此文仅针对边缘计算的架构进行简单的梳理,并没有相对突破性的总结,主要是边缘计算基本就是完成连接.存储.处理.交互的基本功能.更多的偏向硬件的部署及简单的软件数据处理能力. 边缘计算基本组件包括: 1. ...

最新文章

  1. PHP开发工具 zend studio
  2. redis 发布订阅实际案例_【赵强老师】Redis的消息发布与订阅
  3. JAVA调用C语言程序
  4. 【Spark】Spark基本概念
  5. Succinctly 中文系列教程(二) 20220109 更新
  6. 用ThreadLocal代替单例模式synchronized的使用
  7. linux 常用压缩格式,Linux常见压缩格式之压缩与解压
  8. 软件界旷世之架:测试驱动开发(TDD)之争
  9. 进化吧,MySQL锁!无锁->偏向锁->轻量级锁->重量级锁(请自动脑补数码宝贝进化音)
  10. 阴阳师1月服务器维护,《阴阳师》手游1月24日维护更新公告:新区「暖风春穗」集结开启!...
  11. android 投屏 车载,车载投屏怎么连接
  12. linux 访问西数网盘,西数不认盘,无法访问固件
  13. 多易教育KAFKA实战(4)-原理加强
  14. java对数据加解密_java 使用AES对数据进行加密和解密
  15. 求2的1000次方的各位数字之和
  16. SQL Server个人笔记(1)
  17. 在MathType编辑乘号的方法介绍
  18. 虹科分享|终端安全防护|网络安全术语列表(二)
  19. LIFI技术成功组网 速度比WIFI快百倍
  20. CSS 修改Img标签中的图片(src)

热门文章

  1. github流程图_逆天插件,VSCode里也能画流程图了?Visio可以淘汰了?
  2. ie8不兼容java项目_常见IE8兼容性问题及解决
  3. ajax需要引用什么js文件吗,如何在ajax调用中包含js文件?
  4. vb用adodb链接mysql找不到_VB使用ADODB操作数据库的常用方法
  5. 推荐几款jquery图片切换插件
  6. hdu4292Food(最大流Dinic算法)
  7. C/C++ 指针详解
  8. linux xd命令,看Linux文件的内容:用cat,less,more,head,tail,nl,od,xxd,gv,xdvi命令
  9. ng bind html 无效,angularjs中ng-bind-html的用法总结
  10. 如何把照片正面变成反面_各国签证照片要求大全 (含模板)