一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第22天,点击查看活动详情。
- 官方demo:github.com/kubeedge/ex…
kubeedge-web-demo
简介
在云端控制树莓派播放音乐
流程
准备工作
-
正在运行的Kubernetes集群。
-
KubeEdge v1.5 +
注意:当你在树莓PI上设置edgecore时,请设置mqtt模式为2,并将0.0.0.0替换为你的Kubernetes主ip地址。
-
为了控制扬声器并播放预期的音轨,我们需要管理连接到树莓PI的扬声器。KubeEdge允许我们使用Kubernetes自定义资源定义来管理设备。设计方案在这里。使用kubectl应用这里可用的CRD模式yamls。
Cloud端
1.将kubeedge-web-app源码中的deployments文件夹复制到master节点下
2.运行Web APP
kubectl create -f kubeedge-web-app.yaml
注意:Web APP是通过节点选择器:node-role.kubernetes.io/master: ""将Web App部署到了master节点上,kubeedge会自动给master节点添加这个label,不需要额外添加,但是需要注意的是master节点不能禁止调度,否则无法部署pod 暴露通过master节点ip:80来访问web App服务
3.创建设备模型、设备实例
kubectl create -f kubeedge-speaker-model.yaml
# 创建实例时,注意修改nodeSelector中的节点名称,改成树莓派node的节点名称
kubectl get node
kubectl create -f kubeedge-speaker-instance.yaml
Edge端
编译部署edge端App(由于没有将脚本制作成docker镜像,示例改成了在edge端手动运行pi-player脚本)
- 安装配置go环境
GOROOT=/usr/lib/go-1.11/libexec
export GOPATH=/root/go
export GOBIN=
export PATH=$PATH:${GOPATH//://bin:}/bin
export PATH=$PATH:/home/raspbian-toolchain-gcc-4.7.2-linux32/bin;
- 下载example源码,并放入gopath下如下为我的文件路径:
/root/go/src/github.com/kubeedge/examples/kubeedge-web-demo
3.安装gcc交叉编译,树莓派的gcc有所不同(具体使用哪个gcc来编译我还没有弄清楚,在尝试了多种安装方式以后,选择了:raspbian-toolchain-gcc-4.7.2-linux32.tar)
4.编译脚本,运行一下脚本来编译代码:
cd $GOPATH/src/github.com/kubeedge/examples/kubeedge-web-demo/pi-player-app/
export GOARCH=arm
export GOOS="linux"
export GOARM=6
export CGO_ENABLED=1
export CC=arm-linux-gnueabi-gcc
go build -o pi-player-app main.go
5.运行pi-playser-app脚本,
./pi-player-app
通过访问Web App页面播放音乐
-
通过web应用程序链接访问web应用程序页面。
-
选择您想要播放的音乐,然后单击“播放”按钮。音轨信息被推送到树莓派,音乐通过扬声器播放。
-
点击停止按钮停止音乐,音乐停止在扬声器上。