现在非常风行的开源我的项目KubeEdge给开发者提供了一个基于Kubernetes的云边协同计划。它胜利地将Kubernetes的集群编排能力交融到了物联网的边缘场景之中,使得对边缘算力的调度和治理更加轻量、也更加高效。
Shifu作为同样基于Kubernetes的开源物联网开发框架,它对于多种设施的兼容和虚拟化将为KubeEdge在边缘端的利用提供助力。事实上,二者在能力上领有十分好的互补性,在多设施兼容的同时,运行在KubeEdge上的Shifu能够轻松治理边缘端运行的轻量Pod。
有了KubeEdge + Shifu的强强联手,咱们就能够把IoT设施形象成API,把本来简单的传统物联网开发模式转化为简略的web开发模式!
上面就让咱们来看一下如何让Shifu运行在KubeEdge上,并且给开发者们提供价值吧!
简介
本文将简略介绍在KubeEdge上部署Shifu的步骤,并接入一个海康威视的摄像头(应用RTSP进行视频流传输)的实例,为KubeEdge的架构退出海康威视摄像头反对。
本文应用的简略架构如下:
筹备
本文应用了如下服务和工具:
- Kubernetes: 1.21.5
- kubectl, kubeadm, kubelet: 1.21.5
- golang: 1.16.10
- docker: 19.03.9
- KubeEdge: 1.7.2
同时,KubeEdge的cloud端和edge端别离运行在不同的Linux实例上,环境均为Ubuntu Server 20.04
上述服务和工具中,cloud端须要装置全副上述服务和工具,而edge端只须要装置docker和KubeEdge。
步骤
第一步:在cloud端部署Kubernetes
本步能够参考Kubernetes的官网教程进行部署:
https://kubernetes.io/docs/se...
在部署实现后咱们该当看到终端打印出如下信息:
第二步:在cloud端部署Shifu
注:Shifu尚未开源,请分割Shifu团队获取repo权限
将Shifu的github repo克隆到本地:
git clone https://github.com/Edgenesis/shifu.git
而后能够通过下列命令部署Shifu:
kubectl apply -f shifu/k8s/crd/install/shifu_install.yml
部署实现后咱们该当看到Shifu的CRD controller曾经实现部署:
第三步:在cloud端部署KubeEdge
本步能够参考KubeEdge的官网教程,应用keadm进行部署:
https://kubeedge.io/zh/docs/s...
在部署实现后咱们该当看到终端打印出如下信息:
第四步:在cloud端获取token
运行如下命令:
keadm gettoken
请保留取得的token以便edge端应用。
当初cloud端的配置告一段落,咱们当初切换到edge端的机器,让它退出集群。
第五步:在edge端退出集群
在edge端运行如下命令:
keadm join --cloudcore-ipport="<cloud端advertise-address>:10000" --token=<第4步取得的token>
在部署实现后咱们该当看到终端打印出如下信息:
此时切换回到cloud端,查看nodes:
咱们能够看到cloud和edge都曾经部署结束了。
当初咱们能够开始部署设施了。
通过KubeEdge,咱们能够做到只在cloud端进行Kubernetes操作并且部署到edge端,同时放弃edge端无需装置Kubernetes组件,保障轻量化。
第六步:在cloud端批改海康威视摄像头的配置文件
Shifu须要简略的配置文件来实现数字孪生的生成。在Shifu中,数字孪生被称为deviceShifu,以Pod的模式运行在集群里。
Shifu提供了接入海康威视摄像头的配置文件,其门路如下:
https://github.com/Edgenesis/...
Shifu默认将deviceShifu部署在领有残缺Kubernetes实例的机器上。在KubeEdge的环境下,边缘端无需运行残缺的Kubernetes,因而Shifu也筹备了针对云边协同环境的轻量的deviceShifu供应用。咱们能够更改“deviceshifu-camera-deployment.yaml”,让它应用边缘侧的deviceShifu,并增加“nodeName”将其部署在edge node:
第七步:部署海康威视摄像头pod
在cloud端,运行下列命令:
kubectl apply -f shifu/examples/rtspDeviceShifu/camera-deployment
此时,咱们能够查看camera相干pod:
能够看到camera deviceShifu曾经部署到edge端了。
最初一步:在edge端进行确认
在edge端,咱们能够看到camera相干docker容器曾经在运行了:
咱们能够非常简单地调用deviceShifu提供的capture/stream/info/move 等一系列HTTP API,对摄像头进行操作,比方上面的动图。
相干命令:
curl edgedevice-camera/move
自此,咱们就实现了在KubeEdge上运行Shifu的全副步骤。
总结
本文形容了如何在KubeEdge上运行Shifu,并应用Shifu的能力给KubeEdge减少海康威视摄像头反对。
在最新的KubeEdge版本中,咱们还能够尝试应用EdgeMesh实现更不便的边-边互通。在未来的文章中咱们将具体展现如何在KubeEdge+Shifu的环境下施展EdgeMesh的劣势。
本文由博客群发一文多发等经营工具平台 OpenWrite 公布