乐趣区

关于go:如何在KubeEdge上部署Shifu

现在非常风行的开源我的项目 KubeEdge 给开发者提供了一个基于 Kubernetes 的云边协同计划。它胜利地将 Kubernetes 的集群编排能力交融到了物联网的边缘场景之中,使得对边缘算力的调度和治理更加轻量、也更加高效。

Shifu 作为同样基于 Kubernetes 的开源物联网开发框架,它对于多种设施的兼容和虚拟化将为 KubeEdge 在边缘端的利用提供助力。事实上,二者在能力上领有十分好的互补性,在多设施兼容的同时,运行在 KubeEdge 上的 Shifu 能够轻松治理边缘端运行的轻量 Pod。

有了 KubeEdge + Shifu 的强强联手,咱们就能够把 IoT 设施形象成 API,把本来简单的传统物联网开发模式转化为简略的 web 开发模式!

上面就让咱们来看一下如何让 Shifu 运行在 KubeEdge 上,并且给开发者们提供价值吧!

简介

本文将简略介绍在 KubeEdge 上部署 Shifu 的步骤,并接入一个海康威视的摄像头(应用 RTSP 进行视频流传输)的实例,为 KubeEdge 的架构退出海康威视摄像头反对。

本文应用的简略架构如下:

筹备

本文应用了如下服务和工具:

  1. Kubernetes: 1.21.5
  2. kubectl, kubeadm, kubelet: 1.21.5
  3. golang: 1.16.10
  4. docker: 19.03.9
  5. 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 公布

退出移动版