如果你成功运行过KubeEdge计数器的demo,那么看完这篇文章,你也可以跑通下面这个demo!

本文是基于github上提供的kubeedge-temperature-demo进行的。
由于没有硬件设备,所以本示例中注释了硬件相关的代码,并通过随机生成数字的方式来实现温度的变化。

1、环境准备

第一次部署的,可以参考链接(KubeEdge官方示例运行成功_Counter Demo 计数器)

  • 本示例在unbuntu 上运行 , go1.15.6, k8s-v1.19.5 , kubeedge v1.6.2版本安装成功,并正常运行。
  • 在云端操作

1, 输入命令 kubectl get node 查看版本信息

2,从github上clone示例代码
git clone https://github.com/kubeedge/examples.git

备注:我的是放在/root/go/src/github.com/kubeedge/examples/temperature-demo 目录下
如果运行了计数器项目,可以直接在计数器上级目录直接找到这个demo来运行

3,

2、修改temperature-mapper下的main.go方法

## 以下只附上修改的片段
#导包部分
import (
"context""encoding/json""fmt""math/rand""os""strconv""syscall""time""github.com/d2r2/go-dht""github.com/d2r2/go-shell""github.com/yosssi/gmq/mqtt""github.com/yosssi/gmq/mqtt/client"logger "github.com/d2r2/go-logger"
)#代码部分一// run goroutine waiting for OS termination events, including keyboard Ctrl+Cshell.CloseContextOnSignals(cancel, done, signals...)sensorType := dht.DHT11// sensorType := dht.AM2302//sensorType := dht.DHT12// /从这里开始修改/////pin := 11totalRetried := 0totalMeasured := 0totalFailed := 0term := false// connect to Mqtt brokercli := connectToMqtt()rand.Seed(time.Now().Unix())for {// Read DHT11 sensor data from specific pin, retrying 10 times in case of failure.// 注释硬件相关的代码//temperature, humidity, retried, err :=// dht.ReadDHTxxWithContextAndRetry(ctx, sensorType, pin, false, 10)temperature := float32(rand.Intn(100))humidity := 0retried :=1var err error = niltotalMeasured++totalRetried += retriedif err != nil && ctx.Err() == nil {totalFailed++lg.Error(err)continue}// print temperature and humidityif ctx.Err() == nil {lg.Infof("Sensor = %v: Temperature = %v*C, Humidity = %v%% (retried %d times)",sensorType, temperature, humidity, retried)}// publish temperature status to mqtt brokerpublishToMqtt(cli, temperature)///**#代码部分二,再修改mqtt地址为边缘端mqtt地址,请确保边缘段开放了1883端口并且可访问**// Connect to the MQTT Server.err := cli.Connect(&client.ConnectOptions{Network:  "tcp",Address:  "192.168.100.186:1883",ClientID: []byte("receive-client"),})if err != nil {panic(err)}return cli
}}

3、部署模拟的温度设备instance.yaml 和 model.yaml

##第一步部署model
cd  /root/go/src/github.com/kubeedge/examples/temperature-demo/crds
kubectl apply -f  model.yaml## 第二步修改instance.yaml文件的边缘节点名称apiVersion: devices.kubeedge.io/v1alpha2
kind: Device
metadata:name: temperaturelabels:description: 'temperature'manufacturer: 'test'
spec:deviceModelRef:name: temperature-modelnodeSelector:nodeSelectorTerms:- matchExpressions:- key: 'name'operator: Invalues:- edge-node  ##修改这个名字为边缘节点名称
status:twins:- propertyName: temperature-statusdesired:metadata:type: stringvalue: ''##第三步部署设备kubectl apply -f instance.yaml备注:如果跑错了或则想重新跑,均可以使用kubectl delete -f   xxxx.yaml  命令删除

4、构建temperature-mapper镜像

##在云端操作
cd  /root/go/src/github.com/kubeedge/examples/temperature-demo/方法一,上传镜像到docker hub 库
#先打包镜像, 14981343333 为docker hub账号
docker build -t  14981343333/temperature-mapper:test-1234 .#登陆docker hub 账号14981343333
docker login --username 14981343333#上传共有库或者在生产环境可以搭自己的私有库
docker push   14981343333/temperature-mapper:test-1234方法二,通过scp发送镜像到边缘侧启动##先打包镜像,执行,注意命令后面有个点
docker build -t  temperature-mapper:test-1234 .docker save -o  temperature-mapper.tar  temperature-mapper:test-1234##scp到边缘侧,边缘在根目录下新建data目录scp  temperature-mapper.tar   root@192.168.100.134:/data/## 在边缘侧 load temperature-mapper镜像(edge节点)docker load -i   temperature-mapper.tar

5、部署temperature mapper(master节点)

cd  /root/go/src/github.com/kubeedge/examples/temperature-demo
vim deployment.yaml######################
apiVersion: apps/v1
kind: Deployment
metadata:name: temperature-mapperlabels:app: temperature
spec:replicas: 1selector:matchLabels:app: temperaturetemplate:metadata:labels:app: temperaturespec:hostNetwork: truenodeSelector:kubernetes.io/hostname: "edge-node"   ## 注意这里有坑,需要把源码的name改为你的边缘节点标签名(我的叫这个kubernetes.io/hostname)containers:- name: temperatureimage: temperature-mapper:test-1234   ##这里改为构建的镜像名,如果上面是用的方法一,前面加上docker hub 库名 migua/imagePullPolicy: IfNotPresentsecurityContext:privileged: true
###################运行deployment.yaml
kubectl apply -f  deployment.yaml

注意:上面修改边缘节点名称的问题,之前配置的是name:“edge-node” ,会一直pending

6、在云端观察temperature的变化情况

#重复输入下面的命令kubectl get device temperature -o yaml


恭喜,你已经跑通了此demo!

参考链接:(https://blog.csdn.net/weixin_44738411/article/details/107049358)这个链接的内容比较老,k8s和kubeedge的版本也相对较老

部署kubeedge-temperature-demo 示例亲测成功相关推荐

  1. grafana graphite statsd搭建安装部署 实时监控_亲测成功

    grafana graphite statsd搭建安装部署 实时监控_亲测成功 docker部署grafana graphite stastd实时监控告警配置_亲测成功 下载软件 # 下载carbon ...

  2. 阿里云 部署SpringBoot和Vue项目 亲测可用(第一次部署经验贴)

    阿里云 部署SpringBoot和Vue项目 亲测可用!第一次部署经验贴! 前言:与伙伴一起写了一个项目,但是由于老师要我们部署到服务器上,而我从未有部署过,查看了csdn很多博客,试了好多篇,才成功 ...

  3. 将训练好的pytorch模型的pth文件转换成onnx模型(亲测成功)

    将训练好的pytorch模型的pth文件转换成onnx模型(亲测成功) 模型转换 声明:本文原创,未经许可严禁转载,原文地址https://blog.csdn.net/hutao1030813002/ ...

  4. vs中imshow函数报错_Win7下VS2010中配置Opencv2.4.4的方法(32位和64位都有效)(亲测成功)...

    在vs2010下配置opencv是件痛苦的事情,一点点错误可能就会导致莫名其妙的报错,各种error让人郁闷不已,这里提供给大家一篇vs2010下配置opencv2.4.4的方法,我是64位的win7 ...

  5. 最新阿里云短信服务接口类【亲测成功】

    阿里大于 最新的阿里云短信接口,适用于阿里大于搬家以后的情况. 之前一直用阿里大于的短信接口,最近上项目时发现阿里大于悄悄地搬家到了阿里云!阿里云的SDK文件繁多,看得一头雾水!下面代码是最新的可适用 ...

  6. 实战:借助ucloud镜像加速功能下载镜像(亲测成功)-2022.1.1

    实战:借助ucloud镜像加速功能下载镜像(亲测成功)-2022.1.1 目录 文章目录 实战:借助ucloud镜像加速功能下载镜像(亲测成功)-2022.1.1 目录 实验环境 实验软件 1.背景 ...

  7. typora+picgo+smms图床配置(亲测成功)

    PicGo(app)设置smms图床(亲测成功) 文章目录 PicGo(app)设置smms图床(==亲测成功==) 1.PicGo软件下载安装 2.smms图床注册设置 1.PicGo软件下载安装 ...

  8. Wsl2 Ubuntu18.04图形化界面,亲测成功

    Wsl2 Ubuntu18.04图形化界面,亲测成功 Windows端 Linux端 最后 抖抖索索搞了两天,差点Windows系统都重装,终于搞成功了. 参考文献:一定要看 非常感谢这个哥们,成功搞 ...

  9. 【亲测成功】Ubuntu18.04升级GLIBC2.27——解决报错:ibc.so.6: version `GLIBC_2.28‘ not found

    [亲测成功]Ubuntu18.04升级GLIBC2.27--解决报错:/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found 事 ...

最新文章

  1. SAP批次管理由物料级别转换到工厂级别的方法
  2. gflags调试访问越界
  3. python爬虫去哪儿网_大型爬虫案例:爬取去哪儿网
  4. xshell调出oracle安装界面,XShell+Xmanager实现在XShell中显示远程服务器的图形界面
  5. 使用Apache Tomcat Maven插件部署运行 Web 项目
  6. 网易云音乐电脑版怎么下载电台节目 主播电台节目下载教程
  7. 关于Kernel的思考
  8. 【LeetCode】12. Integer to Roman 整型数转罗马数
  9. 『ExtJS』表单(一)常用表单控件及内置验证
  10. python爬虫框架
  11. [翻译] 使用ElasticSearch,Kibana,ASP.NET Core和Docker可视化数据
  12. 安装matlab时常用模块,matlab 安装哪些模块
  13. sqlplus连mysql库_sqlplus连接数据库
  14. 一篇文章掌握整个JVM,JVM超详细解析。【持续更新 康师傅yyds】
  15. Vue echarts 修改 X轴、Y轴 样式以及文字样式
  16. 微型计算机电路软件,微机控制电路
  17. CAN总线通信——CAN通信的数据帧(Data Frame)
  18. 萤石云设备下线是什么导致的_设备下线
  19. java tooltip_案例-Swing使用ToolTip
  20. Http长连接、短连接、持久连接这三个概念的分析总结

热门文章

  1. 今年北京小客车指标共10万个 个人普通指标3.8万个
  2. 2012中国新白领十项标准”——工作三五年的你满足了吗?!
  3. (三十五:2021.01.12)MICCAI 2019学习(一)《前列腺近距离放射治疗中粒子定位的深度回归模型》
  4. 蓝桥杯嵌入式模板构建_tim
  5. AndroidTv Leanback VerticalGridView + HorizontalGridView实现子view超出父view显示(ListRowPresenter无法超出显示问题)
  6. MySQL表的增删改查
  7. 梦回吴哥—给神灵最奢华的供奉 吴哥窟
  8. LiveData奇思妙用总结
  9. QT警告 zero as null pointer constant原因分析
  10. Android调用系统相机和相册