边缘计算技术最近几年不断发展,从概念到产品雏形再到商业化落地,已经有越来越多的企业、机构,在越来越多的场景中使用到了边缘计算技术。
从实际应用角度出发,边缘计算要解决以下两大问题:
1、边缘计算要面对复杂的硬件环境,不同形态、不同硬件平台、不同操作系统;同时,还要面对复杂的应用环境,不同的应用开发语言,不同的模型训练框架。需要合适的技术去屏蔽这些复杂环境差异。
2、边缘计算要面临极度分散的边缘场景,承载边缘计算的设备分散在不同位置,对每一个边缘计算的管理、监控、运维都会产生资源消耗。需要合适的技术,让边缘计算可以被统一的,远程的,无须现场执守的管理起来。
作为云计算能力的扩展,边缘计算并不是孤立存在的。在提供标准、高效的计算能力之外,边缘计算还应该提供稳定、便捷的边云融合能力。边云融合能力将实现边缘计算和云计算的统一,实现应用可以在边缘和云之间按需调度;边云融合需要一个很好的针对边缘计算的管理平台,一方面管理边缘设备,另一方面管理边缘计算应用。
5月30日,在2019ABC INSPIRE智能物联网峰会上,百度智能云宣布其天工物联网平台全新升级,同时在边云融合、时空洞察和数据智能等三大领域一口气发布了9大新产品。
其中在边云融合方面,从去年年底开始公测的智能边缘——BIE产品以及其开源版本OpenEdge迎来了新突破,通过对容器化的支持,BIE允许应用以同样的方式在边缘或者云上运行。
上文提到,BIE允许应用以同样的方式在边缘或者云上运行。那么BIE是否可以提供一种方式,允许应用以同样的方式在边缘或者云上被管理呢?
在下午的分论坛,百度进一步展示了OpenEdge的开放性,演示了通过Kubernetes(简称k8s)管理OpenEdge的能力。
Kubernetes——更好的边云融合
为了更好的实现边云融合,百度在去年就正式推出了智能边缘(BIE)云管套件,用户可以在云端对边缘计算进行管理。我们发现,用对云计算的管理方式来管理边缘计算,会极大的降低现有从业人员的学习成本,因此,我们对智能边缘(BIE)云管套件进行了补充。
在云上,通过k8s来管理应用正在成为越来越多的用户的选择,它的简单易用、可扩展、自动化等特性为应用的部署、规划、更新和维护提供了事实上的标准。边缘计算作为一种计算节点,是否也可以纳入到k8s的管理范围里面来呢?答案是肯定的。
现在,用户不但可以通过智能边缘官方提供的云管套件对智能边缘节点(OpenEdge)进行管理,还可以通过k8s的控制平台,掌握各个边缘核心的运行情况,并且大规模地向边缘节点部署应用。
下面让我们来看看OpenEdge是如何对接k8s的。
环境准备:k8s集群&edge-k8s模块
为了通过k8s管理边缘节点的应用,我们需要一个k8s集群,切确的讲,需要一个kubernetes apiserver。它可以是一个专门的k8s集群,也可以共用一个常规的云端k8s集群,里面可以运行其他常规的workloads。
为了连接k8s集群与百度边缘计算平台,还需要运行百度提供的edge-k8s模块。
核心和服务:精确调用
edge-k8s将百度边缘计算核心映射成k8s集群的节点,在k8s反应边缘节点的内存、CPU、磁盘等使用情况,方便用户了解边缘设备的运行状态,是否适合部署新的应用。
为了方便应用的调度,每个边缘节点添加了NodeType: openedge的label,方便在共享的k8s集群中,精确的调用应用。同时,为了防止常规云端应用误调度到边缘端,每个边缘节点添加了一个Taints,不能容忍这个Taints的应用不会部署到边缘节点。
一个k8s pod对应一个边缘计算的服务,当Pod被调度到核心,会在核心上创建对应的服务,并且部署下去。
实操之部署单个应用
Talk is cheap,让我们来实操一下。以部署一个nginx pod到某个具体的边缘核心为例,Pod的定义如下:
Pod除了指定image和端口映射相关参数外,通过nodeSelector来指定将Pod部署到一个具体的边缘核心;通过tolerations来容忍边缘节点的openedge Taints,这样scheduler才会继续将Pod调度到边缘节点。
假设上面的Pod的文件名为nginx.yaml,后面只需要运行: kubectl create -f nginx.yaml,就可以完成部署。
要从边缘节点移除这个应用,可以运行: kubectl delete pod nginxedge。这里nginxedge为Pod的名。
实操之部署多个应用
当我们拥有成千上万个边缘核心后,我们如何批量的部署呢?答案是:Deployment。
通过定义一个Deployments,设置replicas来指定需要部署的节点数,通过nodeSelector来选择相应的节点列表。当然,你也许需要通过podAffinity或者podAntiAffinity来更加精细的控制调度。
下面的Deployment定义,展示了如何向所有的边缘节点部署200个nginx服务。
百度智能云边缘计算平台,通过引入对k8s的支持,使用户可以用熟悉的方式去管理应用,而不是重新学习一套新的方法。用户还可以将边缘应用的部署更好的与已有的工具链集成,形成更加完善的部署系统,实现高效运行。
关注百度智能云微信公众号,了解更多。
留言与评论(共有 0 条评论) |