EdgeX Foundry 安装部署

文章目录

    • 一、概述
      • 1.官方文档
      • 2.Docker Compose 生成器
      • 3.创建 docker-compose 文件
    • 二、安装准备
      • 1. 克隆服务器
      • 2.安装 Docker
      • 3.安装 docker-compose
    • 三、非安全模式部署
      • 1.docker-comepse
      • 2.启动 EdgeX Foundry
      • 3.访问 UI
        • 3.1. consul
        • 3.2. EdgeX Console

  • EdgeX Foundry
# EdgeX Foundry

https://iothub.org.cn/docs/edgex/
https://iothub.org.cn/docs/edgex/deploy/deploy/

一、概述

1.官方文档

# Quick Start
https://docs.edgexfoundry.org/3.1/getting-started/quick-start/

# edgexfoundry/edgex-compose
https://github.com/edgexfoundry/edgex-compose

# Edgex Docker Compose Builder
https://github.com/edgexfoundry/edgex-compose/tree/main/compose-builder

2.Docker Compose 生成器

生成 docker-compose.yml 选项

gen [options]
Generates temporary single file compose file (`docker-compose.yml`) as specified by:

Options:
    no-secty:         Generates non-secure compose,
                      otherwise generates secure compose file
    arm64:            Generates compose file using ARM64 images
    dev:              Generates using local built images from edgex-go repo
                      'make docker' creates local docker images 
                      tagged with '0.0.0-dev'
    app-dev:          Generates using local built images from application 
                      service repos
                      'make docker' creates local docker images 
                      tagged with '0.0.0-dev`
    device-dev:       Generates using local built images from device service repos
                      'make docker' creates local docker images 
                      tagged with '0.0.0-dev'
    ui-dev:           Generates using local built images from edgex-ui-go repo
                      'make docker' creates local docker image tagged with '0.0.0-dev'
    delayed-start:    Generates compose file with delayed start services- spire 
                      related services and spiffe-token-provider service included
    ds-modbus:        Generates compose file with device-modbus included
    ds-bacnet-ip:     Generates compose file with device-bacnet-ip included
    ds-bacnet-mstp:   Generates compose file with device-bacnet-mstp included
    ds-onvif-camera:  Generates compose file with device-onvif-camera included
    ds-usb-camera:    Generates compose file with device-usb-camera included
    ds-mqtt:          Generates compose file with device-mqtt included
    ds-rest:          Generates compose file with device-rest included
    ds-snmp:          Generates compose file with device-snmp included
    ds-virtual:       Generates compose file with device-virtual included
    ds-coap:          Generates compose file with device-coap included
    ds-gpio:          Generates compose file with device-gpio included
    ds-uart:          Generates compose file with device-uart included
    ds-llrp:          Generates compose file with device-rfid-llrp included
    modbus-sim:       Generates compose file with ModBus simulator included
    asc-http:         Generates compose file with App Service HTTP Export included
    asc-mqtt:         Generates compose file with App Service MQTT Export included
    asc-metrics:      Generates compose file with App Service 
                      Metrics InfluxDb included
    asc-sample:       Generates compose file with App Service Sample included
    as-llrp:          Generates compose file with App RFID LLRP Inventory included
    as-record-replay: Generates compose file with App Record & Replay included
    asc-ex-mqtt:      Generates compose file with App Service 
                      External MQTT Trigger included
    mqtt-broker:      Generates compose file with a MQTT Broker service included
    mqtt-bus:         Generates compose file with services configured 
                      for MQTT Message Bus
                      The MQTT Broker service is also included.
    mqtt-verbose      Enables MQTT Broker verbose logging.
    nanomq:           ** Experimental ** 
                      Generates compose file with NonoMQ MQTT broker 
                      when mqtt-broker or mqtt-bus are specified
                      Not valid in secure mode when uses with mqtt-bus
    nats-bus:         Generates compose file with services 
                      configured for NAT Message Bus
                      The NATS Server service is also included.

在这里插入图片描述

生成 docker-compose.yml 说明:

  • no secty:生成非安全的 docker-compose.yml 文件,否则生成安全的合成文件
  • arm64: 生成 docker-compose.yml 文件用 ARM64 容器镜像
  • ds-mqtt: 生成 docker-compose.yml 文件包含 MQTT 设备服务
  • ds-modbus: 生成 docker-compose.yml 文件包含 Modbus 设备服务
  • ds-rest: 生成 docker-compose.yml 文件包含 REST 设备服务
  • ds-virtual: 生成 docker-compose.yml 文件包含虚拟设备服务
  • mqtt-broker: 生成 docker-compose.yml 文件包含 mqtt-broker 设备服务
  • asc-mqtt: 生成 docker-compose.yml 文件包含 MQTT 导出数据服务
  • asc-http: 生成 docker-compose.yml 文件包含 HTTP 导出数据服务

3.创建 docker-compose 文件

# 1.克隆 edgex-compose
$ git clone https://github.com/edgexfoundry/edgex-compose.git
$ cd edgex-compose 
# 切换分支
$ git checkout v3.1


# 2.生成 docker-compose.yml 文件
$ cd compose-builder
$ make gen ds-virtual no-secty


# 3.检查生成的文件
$ ls | grep 'docker-compose.yml'
docker-compose.yml

二、安装准备

1. 克隆服务器

# 克隆机器

# 修改IP地址
cd /etc/sysconfig/network-scripts
vim ifcfg-ens33
192.168.202.233

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 设置主机名
hostnamectl set-hostname edgex

2.安装 Docker

安装版本19.03.*

$ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

$ yum -y install docker-ce

$ systemctl enable docker && systemctl start docker

$ docker --version
  • 添加阿里云加速镜像
# 添加阿里云加速镜像

cat > /etc/docker/daemon.json << EOF
{
   "registry-mirrors": ["https://gcctk8ld.mirror.aliyuncs.com"],
   "exec-opts": ["native.cgroupdriver=cgroupfs"]
} 
EOF
  • 重启docker
#重启docker
systemctl restart docker

3.安装 docker-compose

安装 docker-compose

#下载源码
curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose


#给docker-compose添加执行权限
sudo chmod +x /usr/local/bin/docker-compose

#查看docker-compose是否安装成功
docker-compose -version

docker-compose 基本操作

# 安装并启动EdgeX
sudo docker-compose up -d     # -d 后台运行容器
 
# 查看所有容器运行状况
sudo docker-compose ps
 
# 显示容器日志
docker-compose logs -f [compose-contatainer-name]
 
# 停止容器
sudo docker-compose stop
 
# 启动容器
sudo docker-compose start
 
# 停止和删除所有容器
sudo docker-compose down


# 常用命令:
启动:docker-compose up -d 注意这里需要在yml配置文件路径执行,其他路径执行需要-f指定配置文件地址。
查看日志:docker-compose logs -f ${compose-contatainer-name}
停止:docker-compose stop
停止并删除容器:docker-compose down
其他命令帮助:docker-compose --help

三、非安全模式部署

1.docker-comepse

# 1.克隆 edgex-compose
$ git clone git@github.com:edgexfoundry/edgex-compose.git 
$ git clone https://github.com/edgexfoundry/edgex-compose.git
$ cd edgex-compose 
$ git checkout v3.1


# 2.生成 docker-compose.yml 文件(注意这包括 mqtt-broker)
$ cd compose-builder
$ make gen ds-virtual no-secty


# 3.检查生成的文件
$ ls | grep 'docker-compose.yml'
docker-compose.yml
[root@edgex mqtt-device]# git clone https://github.com/edgexfoundry/edgex-compose.git
Cloning into 'edgex-compose'...
remote: Enumerating objects: 4779, done.
remote: Counting objects: 100% (2916/2916), done.
remote: Compressing objects: 100% (173/173), done.
remote: Total 4779 (delta 2831), reused 2804 (delta 2741), pack-reused 1863
Receiving objects: 100% (4779/4779), 1.22 MiB | 450.00 KiB/s, done.
Resolving deltas: 100% (4042/4042), done.


[root@edgex mqtt-device]# ll
total 4
drwxr-xr-x. 6 root root 4096 Feb  1 04:10 edgex-compose


[root@edgex mqtt-device]# cd edgex-compose/
[root@edgex edgex-compose]# git checkout v3.1
Note: checking out 'v3.1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 488a3fe... Merge pull request #424 from lenny-intel/device-mqtt-secure-mode-napa


[root@edgex edgex-compose]# cd compose-builder/

[root@edgex compose-builder]# make gen ds-virtual no-secty
echo MQTT_VERBOSE=
MQTT_VERBOSE=
docker compose  -p edgex -f docker-compose-base.yml -f add-device-virtual.yml convert > docker-compose.yml
rm -rf ./gen_ext_compose


[root@edgex compose-builder]# ls | grep 'docker-compose.yml'
docker-compose.yml

2.启动 EdgeX Foundry

使用以下命令部署 EdgeX:

$ cd edgex-compose/compose-builder
$ docker compose pull
$ docker compose up -d


# 修改配置文件
替换IP地址 127.0.0.1 为 0.0.0.0
# docker compose pull

# docker compose up -d

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.访问 UI

3.1. consul
# 访问地址
http://192.168.202.233:8500

在这里插入图片描述

3.2. EdgeX Console
# 访问地址
http://192.168.202.233:4000/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • EdgeX Foundry
# EdgeX Foundry

https://iothub.org.cn/docs/edgex/
https://iothub.org.cn/docs/edgex/deploy/deploy/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/427052.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI:144-通过机器学习预测股票市场趋势

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

IO 与 NIO

优质博文&#xff1a;IT-BLOG-CN 一、阻塞IO / 非阻塞NIO 阻塞IO&#xff1a;当一条线程执行read()或者write()方法时&#xff0c;这条线程会一直阻塞直到读取到了一些数据或者要写出去的数据已经全部写出&#xff0c;在这期间这条线程不能做任何其他的事情。 非阻塞NIO&…

大数据技术(一)

大数据技术概述 大数据技术层面及其功能 数据采集与预处理 利用ETL(extract-transform-load)工具将分布的、异构数据源中的数据&#xff0c;如关系数据、平面数据文件等&#xff0c;抽取到临时中间层后进行清洗、转换、集成&#xff0c;最后加载到数据仓库或数据集市中&…

单例模式及应用场景

如果希望自己的代码更优雅、可维护性更高以及更简洁&#xff0c;往往离不开设计模式这一解决方案。 在JS设计模式中&#xff0c;最核心的思想&#xff1a;封装变化&#xff08;将变与不变分离&#xff0c;确保变化的部分灵活&#xff0c;不变的部分稳定&#xff09;。 那么来…

RISC-V特权架构 - CSR寄存器

RV32/64 特权架构 - CSR寄存器 1 CSR地址空间2 CSR定义2.1 用户级2.2 监管级2.3 超级监管级2.4 机器级 3 CSR访问3.1 CSRRW3.2 CSRRS3.3 CSRRC3.4 CSRRWI3.5 CSRRSI3.6 CSRRCI 本文属于《 RISC-V指令集基础系列教程》之一&#xff0c;欢迎查看其它文章。 1 CSR地址空间 RISC&…

[笔记] 使用 Java Swing 实现一个简单的窗口

Java Swing 是一个用于构建图形用户界面&#xff08;GUI&#xff09;的Java库&#xff0c;它提供了丰富的组件和工具&#xff0c;用于创建交互式的桌面应用程序。Swing 是 Java Foundation Classes&#xff08;JFC&#xff09;的一部分&#xff0c;它是 Java 平台的一种标准用户…

超全面!Linux学习资料大合集,21套从入门到进阶,看这篇就够了

本文将为那些渴望学习Linux&#xff0c;但又缺乏相应资料和方向的朋友&#xff0c;提供21套Linux优质资料&#xff0c;包含入门到进阶&#xff0c;希望能对大家有所帮助。 此合集内容及其丰富&#xff0c;涉及方面颇多&#xff0c;不仅适合Linux入门学习的朋友&#xff0c;运维…

麻省理工最新开发AI模型,让机器人实现自主规划路线

文 | BFT机器人 麻省理工学院的研究人员独具匠心地应用了人工智能来解决仓库中的机器人路径规划问题&#xff0c;以此缓解交通拥堵的难题。据该学院介绍&#xff0c;他们的团队开发了一种深度学习模型&#xff0c;其效率比传统的强随机搜索方法高出近四倍&#xff0c;极大地提…

彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战

自主导航是机器人与自动驾驶的核心功能&#xff0c;而SLAM技术是实现自主导航的前提与关键。现有的机器人与自动驾驶车辆往往会安装激光雷达&#xff0c;相机&#xff0c;IMU&#xff0c;GPS等多种模态的传感器&#xff0c;而且已有许多优秀的激光SLAM与视觉SLAM算法。但是每种…

nginx主动检测后端健康模块

一、前言 nginx也有自带的后端检测模块ngx_http_upstream_module&#xff0c;该模块可以做到基本的健康检查&#xff0c;因为该健康检查是被动的&#xff0c;当nginx有请求后&#xff0c;才会对后端服务进行健康检测&#xff0c;当检测到有故障时会将这个请求转发到正常的后端服…

云计算市场,从追求“规模制胜”到走向“用户分化”

文|智能相对论 作者|叶远风 通常来说&#xff0c;价格战放到任何行业&#xff0c;都不是什么好事。 如今&#xff0c;作为曾经的前沿技术创新&#xff0c;云计算行业正在被迫走入价格战的阴霾当中&#xff0c;引发业界担忧。 ECS&#xff08;云服务器&#xff09;最高降36%…

数据库之间数据迁移工具datax

简介 DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databe…

2024.3.1 网络编程

1.思维导图 2.TCP机械臂测试 程序代码&#xff1a; #include <myhead.h> #define SER_IP "192.168.125.254" //服务器端IP #define SER_PORT 8888 //服务器端端口号#define CLI_IP "192.168.199.131" //客户端IP …

C++_数据类型_字符串型

作用 用于表示一串字符 两种风格 C风格字符串&#xff1a;char 变量名[] "字符串值” 示例 注意 C风格的字符串要用双括号括起来 C风格字符串&#xff1a;string 变量名 "字符串值” 注意 用C风格字符串的时候&#xff0c;要包含这个头文件#include <st…

基于React低代码平台开发:构建高效、灵活的应用新范式

文章目录 一、React与低代码平台的结合优势二、基于React的低代码平台开发挑战三、基于React的低代码平台开发实践四、未来展望《低代码平台开发实践&#xff1a;基于React》编辑推荐内容简介作者简介目录前言为什么要写这本书 读者对象如何阅读本书 随着数字化转型的深入&…

GraphView实时图像刷新

代码&#xff1a; GraphViewTest::GraphViewTest(QWidget *parent): QWidget(parent) {ui.setupUi(this);m_bll BllData::getInstance();connect(m_bll, &BllData::returnImgDataSignal, this, &GraphViewTest::returnImgDataSlot);ui.graphicsView->setHorizonta…

RabbitMQ分享

RabbitMQ遵循AMQP协议&#xff0c;自身采用Erlang RabbitMQ工作模式 生产者发消息&#xff0c;启动多个消费者实例来消费消息&#xff0c;每个消费者仅消费部分信息&#xff0c;可达到负载均衡的效果。 RabbitMQ三种常用交换机类型&#xff1a; 交换机主要起调度分发作用。 …

正弦波生成的傅里叶级数展开法

目录&#xff1a; 一、积分法 二、傅里叶级数展开法 附录、常见波形的傅里叶级数 一、积分法 通过对三角波进行积分&#xff0c;即可得到正弦波。有关内容移步&#xff1a;运算放大器应用汇总1之六、积分电路。 下面对傅里叶级数展开法进行描述。 二、傅里叶级数展开法 三…

高通QNX基线编译原理

下面代码以高通智驾平台为例。 1 QNX应用程序编译原理 在高通提供的qnx开发包中,qnx的内核已经由qnx所提供,所以qnx的编译,其实就是大量应用程序的编译,以及最后利用buildfile文件,把内核,库文件以及应用程序打包在一起的过程。 1.1 qnx的工程目录 应用程序的编译,可…

Tomcat服务部署优化

目录 一.Tomcat的基本内容 1.概念 2.构成 &#xff08;1&#xff09;web容器 &#xff08;2&#xff09;servlet容器&#xff08;catalina&#xff09; &#xff08;3&#xff09;JSP容器 3.Tomcat顶层架构 &#xff08;1&#xff09;Tomcat中最顶层的容器是Server&…