kubeedge-temperature-demo 示例

    技术2022-07-10  167

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

    1、准备工作

    1)kubeedge v1.2.0版本安装成功,并正常运行。 2)本文接下来的验证将使用边缘节点bluejoy-jing进行(如果你参考本文进行相关验证,后续边缘节点名称的配置需要根据你的实际情况进行更改)。 3)从github上clone示例代码

    mkdir /home/bluejoy/kubeedge/kubeedge-example/ git clone https://github.com/kubeedge/examples.git

    2、temperature-mapper代码的修改

    修改temperature-mapper/main.go中的代码,主要修改以下三部分: 1)注释硬件相关的代码 2)增加温度生成的代码(通过随机函数生成) 3)配置MQTT服务器的地址 具体修改部分如下图所示:

    3、创建device model和device

    3.1 创建device model

    cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-temperature-demo/crds kubectl apply -f devicemodel.yaml

    3.2 修改device.yaml文件的边缘节点名称

    vim device.yaml apiVersion: devices.kubeedge.io/v1alpha1 kind: Device metadata: name: temperature labels: description: 'temperature' manufacturer: 'test' spec: deviceModelRef: name: temperature-model nodeSelector: nodeSelectorTerms: - matchExpressions: - key: 'name' operator: In values: - bluejoy-jing status: twins: - propertyName: temperature-status desired: metadata: type: string value: ''

    3.3 部署设备

    kubectl apply -f device.yaml

    4、构建temperature-mapper镜像

    4.1 构建temperature-mapper镜像 (master节点)

    cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-temperature-demo/ docker build -t kubeedge-temperature-mapper:test-0629 . docker save -o kubeedge-temperature-mapper.tar kubeedge-temperature-mapper:test-0629

    4.2 拷贝temperature-mapper镜像到边缘节点bluejoy-jing (master节点)

    scp kubeedge-temperature-mapper.tar root@bluejoy-jing:/home/bluejoy/

    4.3 load temperature-mapper镜像(edge节点)

    docker load -i kubeedge-temperature-mapper.tar

    5、部署temperature mapper(master节点)

    5.1 修改deployment.yaml文件

    cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-temperature-demo/ vim deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: temperature-mapper labels: app: temperature spec: replicas: 1 selector: matchLabels: app: temperature template: metadata: labels: app: temperature spec: hostNetwork: true nodeSelector: name: "bluejoy-jing" containers: - name: temperature image: kubeedge-temperature-mapper:test-0629 imagePullPolicy: IfNotPresent securityContext: privileged: true

    根据你的实际情况修改如下两个地方: a. 边缘节点名称 b. 镜像名称

    5.2 部署temperature-mapper

    kubectl create -f deployment.yaml

    6、观察temperature的变化情况(master节点)

    多次执行以下命令,将会看到temperature的变化:

    kubectl get device temperature -o yaml

    Processed: 0.010, SQL: 9