保姆级教程:在CentOS 7上用Docker Compose一键部署EdgeX Foundry 3.1(含虚拟设备服务)
保姆级教程在CentOS 7上用Docker Compose一键部署EdgeX Foundry 3.1含虚拟设备服务EdgeX Foundry作为开源物联网边缘计算框架正成为工业4.0和智能家居领域的基础设施。本教程将带您从零开始在CentOS 7系统上完成EdgeX 3.1的完整部署特别包含虚拟设备服务(ds-virtual)的集成方案。整个过程就像搭积木一样简单——只要跟着步骤操作30分钟内就能拥有完整的边缘计算平台。1. 环境准备打造EdgeX的温床在开始部署前我们需要确保系统环境满足以下要求全新安装的CentOS 7.6建议最小化安装至少4GB内存运行所有服务约需3.2GB20GB可用磁盘空间稳定的网络连接系统基础配置是第一步。登录服务器后建议立即执行这些命令# 关闭SELinux避免权限问题 sudo setenforce 0 sudo sed -i s/^SELINUXenforcing/SELINUXpermissive/ /etc/selinux/config # 关闭防火墙测试环境建议操作 sudo systemctl stop firewalld sudo systemctl disable firewalld # 设置主机名 sudo hostnamectl set-hostname edgex-node提示生产环境应配置防火墙规则而非直接关闭需开放端口4000(UI)、8500(Consul)、5563(MQTT)等。2. Docker生态安装与优化EdgeX 3.1完全容器化部署我们需要先搭建Docker环境。以下是针对CentOS 7的优化安装方案# 添加Docker官方源使用阿里云镜像加速 sudo yum install -y yum-utils sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装指定版本Docker兼容性最佳 sudo yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io # 配置镜像加速和cgroup驱动 sudo mkdir -p /etc/docker cat EOF | sudo tee /etc/docker/daemon.json { registry-mirrors: [https://registry.cn-hangzhou.aliyuncs.com], exec-opts: [native.cgroupdriversystemd] } EOF # 启动并设置开机自启 sudo systemctl enable --now docker验证安装是否成功docker --version # 应显示19.03.15 docker run hello-world # 测试镜像拉取接下来安装Docker Compose。EdgeX 3.1需要v2.x版本# 下载二进制文件国内用户可使用代理地址 sudo curl -L https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose # 赋予执行权限 sudo chmod x /usr/local/bin/docker-compose # 验证版本 docker-compose --version # 应显示2.18.13. 获取EdgeX部署工具链EdgeX团队提供了compose-builder工具可以智能生成docker-compose文件。我们先获取部署包# 克隆仓库建议使用国内镜像加速 git clone https://gitee.com/mirrors_edgex/edgex-compose.git cd edgex-compose # 切换到3.1版本分支 git checkout v3.1关键目录结构说明edgex-compose ├── compose-builder # 核心部署工具 ├── docker-compose-base.yml # 基础服务模板 ├── add-device-virtual.yml # 虚拟设备插件 └── Makefile # 构建脚本4. 生成定制化部署文件进入compose-builder目录使用make命令生成配置文件。我们将启用两个关键选项no-secty非安全模式适合开发环境ds-virtual虚拟设备服务cd compose-builder make gen ds-virtual no-secty生成过程会输出以下文件docker-compose.yml主部署文件.env环境变量配置检查生成结果ls -l docker-compose.yml # 应显示约200KB左右 head -n 10 docker-compose.yml # 查看文件头部注意如果遇到make命令未找到需先安装开发工具包yum install -y make gcc5. 服务启动与验证现在可以拉起所有EdgeX服务了# 先拉取镜像国内用户建议分段执行 docker compose pull # 后台启动所有服务 docker compose up -d启动过程约需3-5分钟可以通过以下命令监控状态# 查看容器状态等待所有服务变为healthy watch -n 2 docker compose ps # 或者查看实时日志 docker compose logs -f常见问题排查如果容器不断重启检查docker compose logs [服务名]端口冲突时修改.env中的端口配置内存不足会导致某些服务启动失败6. 访问管理界面成功启动后可以通过以下入口访问服务名称访问地址默认账号EdgeX UIhttp://服务器IP:4000无Consul配置中心http://服务器IP:8500无虚拟设备管理http://服务器IP:59882无在EdgeX UI的Device页面应该能看到自动注册的Virtual-Device设备。我们可以通过REST API测试数据采集curl -X GET http://localhost:59882/api/v3/device/name/Virtual-Device/command/RandomValue_Int8预期返回结果示例{ apiVersion: v3, statusCode: 200, event: { apiVersion: v3, id: d3838c7a-1df5-4b0d-a3f0-af21c14a7268, deviceName: Virtual-Device, sourceName: RandomValue_Int8, origin: 1689324567890, readings: [ { id: 8a90b1b2-3f4a-4e5d-b678-910111213141, origin: 1689324567890, deviceName: Virtual-Device, resourceName: RandomValue_Int8, profileName: Virtual-Device, valueType: Int8, value: 23 } ] } }7. 虚拟设备高级配置默认虚拟设备会生成随机数据我们可以自定义其行为。首先进入Consul界面:8500找到edgex-core-metadata服务的配置导航到/v1/kv/edgex/core/3.0/edgex-core-metadata/Device/Virtual-Device编辑配置文件修改deviceResources部分添加新的数据点例如{ name: Temperature, description: 模拟温度传感器, properties: { valueType: Float32, readWrite: R, minimum: -20.0, maximum: 60.0, defaultValue: 25.0 } }保存后需要重启设备服务使配置生效docker compose restart device-virtual现在可以通过API获取新的数据点curl http://localhost:59882/api/v3/device/name/Virtual-Device/command/Temperature8. 生产环境优化建议虽然我们已经完成基础部署但在实际应用中还需要考虑性能调优参数可添加到docker-compose.ymlservices: core-data: environment: - SERVICE_HOST0.0.0.0 - MESSAGEQUEUE_HOSTedgex-redis - DATABASE_HOSTedgex-redis - METRICS_INTERVAL60s deploy: resources: limits: cpus: 0.5 memory: 512M日志管理方案# 配置日志轮转 docker compose stop mkdir -p /var/log/edgex cat EOF | sudo tee /etc/docker/daemon.json { log-driver: json-file, log-opts: { max-size: 10m, max-file: 3 } } EOF systemctl restart docker docker compose up -d备份关键数据# 导出Consul配置 docker exec edgex-core-consul consul kv export edgex-config-backup.json # 备份Redis数据 docker exec edgex-redis redis-cli SAVE docker cp edgex-redis:/data/dump.rdb ./edgex-data-backup.rdb遇到网络问题时可以尝试替换容器镜像源。编辑.env文件修改以下变量REGISTRYregistry.cn-hangzhou.aliyuncs.com IMAGE_VERSION3.1.0部署完成后建议运行基础测试套件验证各服务功能git clone https://github.com/edgexfoundry/edgex-taf.git cd edgex-taf docker compose -f docker-compose-taf.yml up -d
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2584233.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!