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

相关文章

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

ubuntu如何部署Dify以及安装Docker? Dify安装部署指南

《ubuntu如何部署Dify以及安装Docker?Dify安装部署指南》Dify是一个开源的大模型应用开发平台,允许用户快速构建和部署基于大语言模型的应用,ubuntu如何部署Dify呢?详细请... Dify是个不错的开源LLM应用开发平台,提供从 Agent 构建到 AI workflow 编排、RA

ubuntu16.04如何部署dify? 在Linux上安装部署Dify的技巧

《ubuntu16.04如何部署dify?在Linux上安装部署Dify的技巧》随着云计算和容器技术的快速发展,Docker已经成为现代软件开发和部署的重要工具之一,Dify作为一款优秀的云原生应用... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。它