使用Shifu在OpenYurt集群中接入RTSP协议摄像头
OpenYurt 是一个云边计端算平台,借助 OpenYurt 的能力,可以将现有的 Kubernetes 集群转换成 OpenYurt 集群,并将 Kubernetes 的能力延伸到边缘侧。 OpenYurt 为云边端协同开发提供了多样化的功能,如打通云边通信的 YurtTunnel,为了方便管理节点单元应用部署/运维的 Yurt-App-Manager 以及提供了边 缘自治的 YurtHub。
开发者可以专注于云边端产品上的应用开发而不用担心底层架构的运维。Shifu 作为 Kubernetes 原生的开源物联网开发架构,可以兼容各种物联网设备的协议并将其抽象成一个为微服务软件对象。二者的能力有非常好的互补性。尤其是在 OpenYurt 中加入了 YurtDeviceController 以后,Shifu 可以用 OpenYurt 原生的方式来将设备进行抽象,大大提高物联网开发者的开发效率。
使用 OpenYurt 和 Shifu 以后,我们可以将原本复杂的 IoT,云边协同开发转化为简单的Web式开发。
简介
本文是一个在 OpenYurt 集群中使用 Shifu 接入 RTSP 协议摄像头的指南,其中包含 Shifu, Docker, Linux, Kubernetes, OpenYurt 的基本操作,任何开发者都可以阅读本文来学习 Shifu 的开发方法。
本文中的 Shifu 架构如下:
北向通过 deviceshifu-http-http 向上开放 HTTP API 接口,南向通过 rtsp-driver 来和实际设备交互。
目标
- 在Server端和Edge端通过
yurtctl部署OpenYurt, 并将Edge端加入Server端的集群 - 在Edge端部署 网络摄像头的数字孪生
- 实现通过HTTP对网络摄像头的远程自动化管控
所需设备
- 两台运行
Linux的虚拟机,Server和Edge的配置分别为4核16G内存和2核8G内存 - 一个
RTSP协议的网络摄像头,本文中用到的摄像头型号为海康威视的DS-2DE3Q140CN-W
软件环境
CentOS7.9.2009Gov1.17.1yurtctlv0.6.1kubectl: v1.19.8 (installed byyurtctl)
第一步 安装并部署OpenYurt集群
本文参考了
OpenYurt的官方教程
首先让我们来下载 OpenYurt,从官方的GitHub直接克隆项目:
git clone https://github.com/openyurtio/openyurt.git
接着让我们下载v0.6.1版本的 yurtctl:
curl -LO https://github.com/openyurtio/openyurt/releases/download/v0.6.1/yurtctl
chmod +x yurtctl
Server端的部署
在Server端创建 OpenYurt 集群:
./yurtctl init --apiserver-advertise-address <SERVER_IP> --openyurt-version latest --passwd 123
看见如下信息即表示集群创建完成,这里的 --token 要记录一下用来将Edge节点加入到集群中
接下来看一下各个 Pod 的运行状况,通过 kubectl get pods -A: