EdgeX Foundry 安全模式安装部署

本文详细介绍了如何在Linux服务器上安装和部署EdgeXFoundry,包括准备阶段(如克隆服务器、安装Docker和docker-compose),以及具体的部署步骤,如使用docker-compose启动EdgeXFoundry、配置Consul和EdgeXConsole的访问。

# EdgeX Foundry

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

一、安装准备

1.官方文档

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

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

# Secure Consul
https://docs.edgexfoundry.org/3.1/security/Ch-Secure-Consul/

# Authenticating to EdgeX Microservices
https://docs.edgexfoundry.org/3.1/security/Ch-Authenticating/#how-to-make-authenticated-edgex-calls

2. 克隆服务器

# 克隆机器

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

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

# 设置主机名
hostnamectl set-hostname edgex

3.安装 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

4.安装 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


# 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
echo MQTT_VERBOSE=
MQTT_VERBOSE=
docker compose  -p edgex -f docker-compose-base.yml -f add-device-virtual.yml -f ./gen_ext_compose/add-device-virtual-secure.yml -f add-security.yml -f add-secure-redis-messagebus.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
509bd0ae-2fdc-110e-f404-23942a9d1143


# make get-consul-acl-token

[root@edgex compose-builder]# make get-consul-acl-token
509bd0ae-2fdc-110e-f404-23942a9d1143

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

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

eyJhbGciOiJFUzM4NCIsImtpZCI6IjY0YTI4ZTk5LWY2YmMtZDQwYi00OWQ1LTZjMzIzM2UzMWJhYiJ9.eyJhdWQiOiJlZGdleCIsImV4cCI6MTcwODQ1MTkwNiwiaWF0IjoxNzA4NDQ4MzA2LCJpc3MiOiIvdjEvaWRlbnRpdHkvb2lkYyIsIm5hbWUiOiJlZGdleHVzZXIiLCJuYW1lc3BhY2UiOiJyb290Iiwic3ViIjoiZTJiZmM4MDMtMzQ5Mi1hYjBhLWE0OTUtMzNjMmY1MzEzYjU3In0.xERcFnGr42rImdzquED6NEIebw4ZV_67z_AMoLp7LmDCRaB8mF3fwSawpuhoSOyiSKmFKb_ZL9O7q3K0-y-xN4c8-Gcg4GgTwLi4lQ_A6jB0sUmuUkLITQUa__CGDHvX



# make get-token

[root@edgex compose-builder]# make get-token
eyJhbGciOiJFUzM4NCIsImtpZCI6IjY0YTI4ZTk5LWY2YmMtZDQwYi00OWQ1LTZjMzIzM2UzMWJhYiJ9.eyJhdWQiOiJlZGdleCIsImV4cCI6MTcwODQ1MTkwNiwiaWF0IjoxNzA4NDQ4MzA2LCJpc3MiOiIvdjEvaWRlbnRpdHkvb2lkYyIsIm5hbWUiOiJlZGdleHVzZXIiLCJuYW1lc3BhY2UiOiJyb290Iiwic3ViIjoiZTJiZmM4MDMtMzQ5Mi1hYjBhLWE0OTUtMzNjMmY1MzEzYjU3In0.xERcFnGr42rImdzquED6NEIebw4ZV_67z_AMoLp7LmDCRaB8mF3fwSawpuhoSOyiSKmFKb_ZL9O7q3K0-y-xN4c8-Gcg4GgTwLi4lQ_A6jB0sUmuUkLITQUa__CGDHvX

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

# EdgeX Foundry

https://iothub.org.cn/docs/edgex/
https://iothub.org.cn/docs/edgex/deploy/deploy-secty/
<think>好的,我现在需要帮助用户在Kubernetes集群上部署EdgeX Foundry物联网平台。首先,我得回顾一下用户提供的引用资料,看看有没有相关的指导步骤。根据引用[1]提到可以一键安装边缘独立的Kubernetes集群,然后安装EdgeX Foundry的组件。这可能是一个关键点,但具体的安装步骤可能需要更详细的说明。 接下来,用户引用了其他资料,比如引用[2]提到下篇会介绍如何通过Kubernetes部署EdgeX Foundry到设备上,但可能用户现在需要的就是这部分内容。引用[3]和[4]说明Kubernetes在边缘计算中的应用案例,特别是港珠澳大桥的例子,可能涉及到如何管理边缘设备,但具体的部署步骤可能不在此处。引用[5]提到了EdgeX Foundry中国社区的负责人,可能相关的社区资源会有帮助。 用户的问题是在Kubernetes集群上部署EdgeX Foundry。我需要先确认EdgeX Foundry是否有官方的Kubernetes部署方案。根据我的知识,EdgeX Foundry支持容器化部署,通常使用Docker Compose,但Kubernetes的部署可能需要使用Helm Chart或者YAML文件进行配置。 可能需要以下步骤: 1. 准备Kubernetes集群,可能使用边缘集群,如引用[1]提到的。 2. 安装Helm,如果尚未安装。 3. 添加EdgeX的Helm仓库。 4. 配置Helm Chart的参数,比如选择需要的服务模块,调整持久化存储设置,网络配置等。 5. 部署并验证安装。 同时,需要考虑EdgeX的版本,不同版本可能有不同的配置方式。另外,边缘环境可能需要特定的配置,比如节点选择器、容忍污点等,确保Pod在边缘节点上正确调度。 还要注意EdgeX Foundry的组件是否都适合在Kubernetes上运行,比如设备服务可能需要访问特定的硬件,这时候可能需要DaemonSet或者HostPath挂载。 可能遇到的问题包括网络策略、服务暴露方式(NodePort、LoadBalancer还是Ingress),以及持久化存储的配置,特别是在边缘环境中可能使用本地存储而非云存储。 需要确保用户具备基本的Kubernetes操作知识,比如kubectl和helm的使用。此外,检查EdgeX社区或官方文档是否有最新的部署指南,确保步骤的准确性。 最后,根据用户提供的引用,特别是引用[1]提到的安装方法,可能需要结合具体的边缘集群配置,比如使用kubeedge或者其他边缘Kubernetes解决方案。可能需要参考EdgeX Foundry官方文档或社区提供的Helm Chart进行部署。</think>在Kubernetes集群中部署EdgeX Foundry的步骤如下: ### 一、环境准备 1. **安装Kubernetes集群** 推荐使用边缘优化的Kubernetes发行版(如K3s/KubeEdge),可参考[一键安装边缘独立Kubernetes集群](^1)。 2. **安装Helm工具** ```bash curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash ``` ### 二、部署EdgeX Foundry 1. **添加EdgeX Helm仓库** ```bash helm repo add edgex https://edgexfoundry.github.io/helm-charts/ helm repo update ``` 2. **自定义配置(可选)** 创建`custom-values.yaml`文件,按需调整配置: ```yaml # 示例:启用核心服务并配置持久化 core-metadata: enabled: true persistence: enabled: true storageClass: "local-path" ``` 3. **执行部署** ```bash helm install edgex edgex/edgex -f custom-values.yaml -n edgex --create-namespace ``` ### 三、验证部署 1. **检查Pod状态** ```bash kubectl get pods -n edgex # 应看到core-metadata、core-data等组件运行正常 ``` 2. **暴露服务访问** ```bash kubectl port-forward svc/edgex-core-command 59882:59882 -n edgex ``` 通过`http://localhost:59882/api/v2/ping`验证服务连通性。 ### 四、边缘设备集成 参考港珠澳大桥案例模式,可通过以下方式扩展: 1. **定义设备CRD** 创建自定义资源描述边缘设备特性,例如传感器设备: ```yaml apiVersion: devices.edgex/v1alpha1 kind: SensorDevice metadata: name: bridge-sensor-01 spec: protocol: Modbus-TCP connection: host: 192.168.1.100 port: 502 ``` 2. **CI/CD流水线集成** 使用Argo CD等工具实现配置的GitOps管理,确保边缘节点应用版本一致性[^4]。 --- ### 注意事项 - **存储配置**:边缘环境建议使用`local-path-provisioner`提供本地存储 - **网络策略**:需开放设备服务使用的端口(如Modbus 502/TCP) - **设备服务部署**:对需要直连硬件的服务,使用`hostNetwork: true`或`DaemonSet`部署模式 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IoTHub - 物联网开源技术社区

支持开源技术! 传播开源文化!

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

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

打赏作者

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

抵扣说明:

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

余额充值