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 Framework, Docker, Linux, Kubernetes, OpenYurt的基本操作,任何开发者都可以阅读本文来学习Shifu Framework的开发方法。
本文中的Shifu Framework架构如下:
北向通过“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”
###软件环境
-CentOS 7.9.2009
-Go v1.17.1
-yurtctl v0.6.1
-kubectl: v1.19.8
(installed by yurtctl)
###步骤
####第一步:安装并部署OpenYurt集群
本文参考了OpenYurt的官方教程,地址为: https://openyurt.io/docs/v0.6.0/installation/yurtctl-init-join
首先让我们来下载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”:
######遇到的几个问题
如果在“ kubectl logs yurt-hub-server -n kube-system”