KubeEdge框架temperature测试demo部署

2023-11-07 15:50

本文主要是介绍KubeEdge框架temperature测试demo部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文是基于华为官方提供测试用例kubeedge-temperature-demo进行测试。

功能说明

    本示例主要是测试设备通过kubeedge边缘侧向云端发送数据。

设备端代码main.go更改

1、去掉与设备硬件相关代码,将温度值设为周期性累加的方式,以便于在云端观察温度值的变化。

2、配置MQTT服务的地址,即kubeedge边缘节点的IP地址

试验

在云端查看边缘节点状态。本例使用的边缘节点是localhost节点。

配置设备的yaml文件:

cd   ~/kubeEdge/examples-master/kubeedge-temperature-demo/crds

vim device.yaml 

部署设备

$ kubectl delete -f devicemodel.yaml 
devicemodel.devices.kubeedge.io "temperature-model" deleted
$ kubectl create -f device.yaml 
device.devices.kubeedge.io/temperature created

更改deployment.yaml

部署deployment.yaml

$ kubectl create -f deployment.yaml 
deployment.apps/temperature-mapper created

在云端查看设备状态

$ kubectl get devicemodel
NAME                AGE
temperature-model   49m
$ kubectl get device
NAME          AGE
temperature   51m

在云端观察:

设备端main.go源码分析

流程:
1、连接 mqtt:connectToMqtt,需要边缘端开启 mqtt 服务,并监听 1883 端口,否则会连接失败。
2、采集温度:ReadDHTxxWithContextAndRetry(本实验中去掉了该函数)。
3、将温度值发布到mqtt:publishToMqtt。
4、之后进入 KubeEdge 系统,在云端可查看状态。

其它说明:
发布主题指定如下

deviceTwinUpdate := "$hw/events/device/" + "temperature" + "/twin/update"

temperature 为设备名称。需要与 Device 中的 metadata.name 保持一致。此名称也是 kubectl get device 查看到的名称。可修改使其不一致,观察效果。

发布消息前先创建消息体:createActualUpdateMessage,结构体为 DeviceTwinUpdate,具体如下:

map[string]*MsgTwin{"temperature-status": {Actual: &TwinValue{Value: &actualValue}, Metadata: &TypeMetadata{Type: "Updated"}}}

实际数据:24℃
{"event_id":"","timestamp":0,"twin":{"temperature-status":{"actual":{"value":"24C"},"metadata":{"type":"Updated"}}}}


查看device.yaml:

status:
  twins:
    - propertyName: temperature-status
      desired:
        metadata:
          type: string
        value: ''
 

 

 

补充:

 本次在测试时,遇到kubeedge边缘节点Mqtt拒绝连接问题

 connect error: Network Error : dial tcp 192.168.50.40:1883: connect: connection refused

原因:通过systemctl status mosquitto查看状态mosquitto没有启动

root@localhost:/kubeedge# systemctl status mosquitto
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker
   Loaded: loaded (/lib/systemd/system/mosquitto.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:mosquitto.conf(5)
           man:mosquitto(8)

解决:systemctl start mosquitto

再次查看状态:

root@localhost:/kubeedge# systemctl status mosquitto
● mosquitto.service - Mosquitto MQTT v3.1/v3.1.1 Broker
   Loaded: loaded (/lib/systemd/system/mosquitto.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-03-31 01:50:13 UTC; 3s ago
     Docs: man:mosquitto.conf(5)
           man:mosquitto(8)
 Main PID: 1386 (mosquitto)
    Tasks: 1
   Memory: 564.0K
      CPU: 26ms
   CGroup: /system.slice/mosquitto.service
           └─1386 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
 

这篇关于KubeEdge框架temperature测试demo部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/364664

相关文章

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1