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

c607a857e81505f47d54a90d84ea7baf.png

导读

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

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

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

多集群管理

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

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

9202b7387e6c81417b2dddb8c8b447d7.png

由架构图实现可以看出,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 集群即可,架构如下所示:

9a14815bf3094c7d9c4736a457ffff58.png

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

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

测试实现

环境信息:

a0291a5b3083fecfc85139b0188735c3.png

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

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

3ee2fe67dcf65879f54442ffc9d32ee6.png

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

- 拷贝 cloudcore 二进制文件

- 重新生成证书

- 生成 cloudcore.yaml 配置文件

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

- 启动 cloudcore

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

2f230fc0a9620ebc64c4597b71fdc480.png

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

8035ed4c72922bad4692442963628461.png

总结

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis源码阅读(二):动态节点解析2.2 —— SqlSourceBuilder与三种SqlSource

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

搞懂toString()与valueOf()的区别

一、toString() 作用:toString()方法返回一个表示改对象的字符串,如果是对象会返回,toString() 返回 “[object type]”,其中type是对象类型。 二、valueOf( ) 作用:valueOf房啊发返…

oracle入库的速度能到多少_倒车入库别练复杂了,其实就这两点

教练总会让学员反复练倒车入库,但不少学员都会有这样的疑惑:为什么每一次倒库结果都不一样,倒车入库的练习重点是什么?倒车入库是科二的重点及难点,但只要掌握以下两个关键,顺利通过真不难:01方…

Mybatis源码阅读(三):结果集映射3.1 —— ResultSetBuilder与简单映射

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

kdj买卖指标公式源码_通达信指标公式源码MACD背离KDJ背离指标

N1:5;N2:10;N3:21;N4:60;牛熊:EMA(CLOSE,N4),COLORGREEN,LINETHICK3;DIFF:EMA(CLOSE,12) - EMA(CLOSE,26);DEA:EMA(DIFF,8);A1:BARSLAST(REF(CROSS(DIFF,DEA),1)); B1:REF(C,A11)>C AND REF(DIFF,A11)DRAWTEXT(IF(B1>0,1,0),L-0.1,MACD底背),COLORGREEN;RSV:(CLOSE-LLV(L…

Mybatis源码阅读(三):结果集映射3.2 —— 嵌套映射

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

gridview获取选中行数据_Word转Excel,不想熬夜加班,那就掌握这个数据清洗方法...

私信回复关键词【福利】~获取丰富办公资源,助你高效办公早下班!小伙伴们,大家好,我是专治各种疑难杂「数」的农夫~今天,我就为大家介绍一种高效的数据清洗方法,助你告别熬夜加班,拥抱美好的夜晚…

Mybatis源码阅读(三):结果集映射3.3 —— 主键生成策略

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

list最大容量_Java 基础(四)集合源码解析 List

List 接口前面我们学习了Iterator、Collection,为集合的学习打下了基础,现在我们来学习集合的第一大体系 List。List 是一个接口,定义了一组元素是有序的、可重复的集合。List 继承自 Collection,较之 Collection,List…

Mybatis源码阅读(四):核心接口4.1——StatementHandler

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

Shell学习之结合正则表达式与通配符的使用(五)

Shell学习之结合正则表达式与通配符的使用 目录 通配符 正则表达式与通配符通配符通配符的使用正则表达式 正则表达式正则表达式的使用通配符 正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达…

Mybatis源码阅读(四):核心接口4.2——Executor(上)

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

接收xml参数_SpringBoot实战(二):接收xml请求

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】最近在对接一个第三方系统,需要接收第三方系统的回调,而且格式为XML形式,之前自己一般接收的参数是Json形式,于是乎做个实验验证一下使用…

报错 插入更新_window如何解决mysql数据量过大导致的报错

window如何解决报错“The total number of locks exceeds the lock table size”第一大步,查看mysql配置信息在CMD中输入mysql -hlocalhost -uroot -p #如果设置了密码直接接在p 后面 show variables like %storage_engine%以下为结果可以看到InnoDB是MySQL的默认引…

Mybatis源码阅读(四):核心接口4.2——Executor(下)

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

Mybatis源码阅读(五 ):接口层——SqlSession

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

插入公式_一个小工具,彻底帮你搞定在Markdown中插入公式的问题

在编辑Markdown文档时,插入公式是一个挺麻烦的活儿。需要掌握LaTex语法。我自己看完语法后,直接放弃,这绝对是反人类的语法。(好吧,是我不会用...)但是,我相信你看了这篇文章后,绝对…

Mybatis源码阅读(一):Mybatis初始化1.2 —— 解析别名、插件、对象工厂、反射工具箱、环境

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

Google 修改 Chrome API,防止隐身模式检测

开发四年只会写业务代码,分布式高并发都不会还做程序员? 在使用 Chrome 浏览网页时,某些网站会使用某种方法来确定访问者是否处于隐身模式,这是一种隐私泄漏行为。Google 目前正在考虑修改 Chrome 的相关 API,来杜绝…

Mybatis源码阅读(一):Mybatis初始化1.1 解析properties、settings

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…