本文是基于github上提供的kubeedge-temperature-demo进行的。
由于没有硬件设备,所以本示例中注释了硬件相关的代码,并通过随机生成数字的方式来实现temperature的变化。
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
修改temperature-mapper/main.go中的代码,主要修改以下三部分:
1)注释硬件相关的代码
2)增加温度生成的代码(通过随机函数生成)
3)配置MQTT服务器的地址
具体修改部分如下图所示:
cd /home/bluejoy/kubeedge/kubeedge-example/examples/kubeedge-temperature-demo/crds
kubectl apply -f devicemodel.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: ''
kubectl apply -f device.yaml
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
scp kubeedge-temperature-mapper.tar root@bluejoy-jing:/home/bluejoy/
docker load -i kubeedge-temperature-mapper.tar
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. 镜像名称
kubectl create -f deployment.yaml
多次执行以下命令,将会看到temperature的变化:
kubectl get device temperature -o yaml