EdgeX 树莓派实践部署

前言

初识EdgeX,想理清楚设备接入及微服务间关系,最好的办法还是亲自动手部署,把数据交互功能实现出来,才能更清晰的理解EdgeX框架的各种微服务。
实践过程中,有几个坑要提前说明一下:

  1. 因为我使用树莓派进行部署,树莓派是ARM架构,EdgeX部署时指定的Service镜像一定选用ARM架构,不然容器是无法正常运行的。
  2. EdgeX部署指定的镜像只找到arm64位,而我原来树莓派操作系统是32位,导致容器无法运行,需要重新安装64位linux操作系统,新版Raspbian有64位版本。
  3. EdgeX服务的compose配置文件中,服务访问IP地址有限制设置,导致仅本地可以访问,后面有详细描述。

安装docker-ce

$curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt-key add -

获取docker-ce安装包
https://download.docker.com/linux/

因为arm64位,debian目录下找
https://download.docker.com/linux/debian/dists/buster/pool/edge/arm64/

$sudo dpkg -i containerd.io_1.3.7-1_arm64.deb  
$sudo dpkg -i docker-ce-cli_19.03.13_3-0_debian-buster_arm64.deb
$sudo dpkg -i docker-ce_19.03.13_3-0_debian-buster_arm64.deb  

设置docker镜像:

$sudo cat /etc/docker/daemon.json 
{
   
   
        "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
$sudo systemctl daemon-reload
$sudo systemctl restart docker

安装docker-compose

$sudo apt-get install libffi-dev 
$sudo apt-get install openssl

$pip3 install --default-timeout=100000 docker-compose

docker-compose安装过程中出现错误尝试upgrade参数解决

$pip3 install --upgrade --default-timeout=100000 docker-compose -i http://pypi.douban.com/simple

EdgeX跑起来

https://docs.edgexfoundry.org/1.2/getting-started/quick-start/

在这里插入图片描述

github获取compose file

https://github.com/edgexfoundry/developer-scripts/tree/master/releases/geneva/compose-files
可选compose文件,跟据需求参考修改
在这里插入图片描述

获取arm64 docker-compose.yml

$curl https://raw.githubusercontent.com/edgexfoundry/developer-scripts/master/releases/geneva/compose-files/docker-compose-geneva-redis-no-secty-arm64.yml -o docker-compose.yml

在这里插入图片描述

获取服务列表

$docker-compose config --services
consul
redis
notifications
metadata
data
command
scheduler
system
app-service-rules
rulesengine
device-virtual
device-rest
device-random
device-mqtt
ui

启动EdgeX微服务

$docker-compose up -d

在这里插入图片描述

启动device-random服务

$sudo docker-compose up -d device-random

获取device-random数据

$curl http://localhost:48080/api/v1/event/device/Random-Integer-Generator01/1
[{"id":"de7af9df-38ed-4900-b387-e1629d4f1472","device":"Random-Integer-Generator01","created":1613828304134,"origin":1613828304126888670,"readings":[{"id":"2f88dea3-15a6-44d6-980a-a1dfab38a113","created":1613828304134,"origin":1613828304126291278,"device":"Random-Integer-Generator01","name":"RandomValue_Int16","value":"-21446","valueType":"Int16"}]}]

查看可用命令

$curl http://localhost:48082/api/v1/device/name/Random-Integer-Generator01

返回如下结果

{
	"id": "edf4b3b2-9015-4ae6-afdb-f8b5e462d317",
	"name": "Random-Integer-Generator01",
	"adminState": "UNLOCKED",
	"operatingState": "ENABLED",
	"labels": ["device-random-example"],
	"commands": [{
		"created": 1613828283875,
		"modified": 1613828283875,
		"id": "025b1242-c66c-4d96-b470-70a93308eede",
		"name": "GenerateRandomValue_Int32",
		"get": {
			"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int32",
			"responses": [{
				"code": "200",
				"expectedValues": ["RandomValue_Int32"]
			}, {
				"code": "503",
				"description": "service unavailable"
			}],
			"url": "http://edgex-core-command:48082/api/v1/device/edf4b3b2-9015-4ae6-afdb-f8b5e462d317/command/025b1242-c66c-4d96-b470-70a93308eede"
		},
		"put": {
			"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int32",
			"responses": [{
				"code": "200"
			}, {
				"code": "503",
				"description": "service unavailable"
			}],
			"url": "http://edgex-core-command:48082/api/v1/device/edf4b3b2-9015-4ae6-afdb-f8b5e462d317/command/025b1242-c66c-4d96-b470-70a93308eede",
			"parameterNames": ["Min_Int32", "Max_Int32"]
		}
	}, {
		"created": 1613828283874,
		"modified": 1613828283874,
		"id": "6943feba-f7eb-46f2-b120-d3c9890be1a1",
		"name": "GenerateRandomValue_Int8",
		"get": {
			"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int8",
			"responses": [{
				"code": "200",
				"expectedValues": ["RandomValue_Int8"]
			}, {
				"code": "503",
				"description": "service unavailable"
			}],
			"url": "http://edgex-core-command:48082/api/v1/device/edf4b3b2-9015-4ae6-afdb-f8b5e462d317/command/6943feba-f7eb-46f2-b120-d3c9890be1a1"
		},
		"put": {
			"path": "/api/v1/device/{deviceId}/GenerateRandomValue_Int8",
			"respon
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白錵錵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值