kubeedge-web-demo

453 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第22天,点击查看活动详情

kubeedge-web-demo

简介

在云端控制树莓派播放音乐

github.com/kubeedge/ex…

流程

准备工作

  1. 正在运行的Kubernetes集群。

  2. KubeEdge v1.5 +

    注意:当你在树莓PI上设置edgecore时,请设置mqtt模式为2,并将0.0.0.0替换为你的Kubernetes主ip地址。

  3. 为了控制扬声器并播放预期的音轨,我们需要管理连接到树莓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脚本)

  1. 安装配置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;
  1. 下载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应用程序页面。

  • 选择您想要播放的音乐,然后单击“播放”按钮。音轨信息被推送到树莓派,音乐通过扬声器播放。

  • 点击停止按钮停止音乐,音乐停止在扬声器上。