边缘设备
添加边缘设备
通过额外的边缘设备(即工业 PC),您可以将 IronFlock 应用部署到更多机器上,并将应用运行负载从 Appliance 分流出来。 Appliance 本身已作为一台边缘设备,但您可以以与在 IronFlock 云端部署边缘设备相同的方式接入更多边缘设备。 只需进入 项目设置 -> 设备 -> 新建设备 并按照说明操作即可。
设备代理程序更新
连接到 Appliance 的边缘设备从 Appliance 自身获取 IronFlock 设备代理程序的更新——它们从不访问 instance-registry.ironflock.com,也不需要为此接入互联网:
- 简单模式(IP):
http://<appliance-host>:15002/dl——与设备已用于获取镜像仓库令牌的端口相同。 - 域名/TLS 模式:
https://registry.<appliance-domain>/dl,通过端口443。
Appliance 在本地保留一份代理程序二进制文件的镜像副本,并每 6 小时从 https://instance-registry.ironflock.com(已在防火墙放行列表中)刷新一次;也可以在 设置 → 许可证/Appliance → 设备代理程序更新 → 立即同步 中按需刷新。您也可以从 IronFlock 云端刷新某个 Appliance 的镜像副本,无需打开该实例,也无需登录 Appliance 本身:在云端 Studio 中进入 个人资料 → 实例,您拥有的每个 Appliance 在那里都有一个 设备代理程序更新 列,显示其镜像副本当前向设备提供的代理程序版本(下方是设备安装程序的版本),并可在同一单元格中执行 立即同步。镜像副本遵循云端的发布清单:云端清单当前引用的每个代理程序版本都会被保留——涵盖所有 Linux 目标平台和 Windows——而某个版本只有在 Appliance 上完整就绪后才会提供给设备。如果云端发布了一个在 Appliance 上尚未完整的版本,设备将继续看到之前的版本。
代理程序从已签名的目录树 <base>/device-agent/(已签名的 manifest.json 和带 .sig 签名的二进制文件)下载,在应用前校验每次更新,如果新版本无法启动则自动回滚。更新只会在代理程序启动时,或用户在 Studio 中发起更新时应用。
设备从其 .flock 文件(update_url)获知更新地址;从代理程序版本 0.21.2 起,还会在每次心跳时从 Appliance 获取。因此,Appliance IP 的变更或切换到域名模式都会自动传播到设备。
在此功能推出之前配置的设备如果仍运行旧版代理程序,需要重新下载一次其
.flock文件。在 Windows 上:停止该服务(device-agent.exe service stop),用新文件(保存时不带 BOM)替换%ProgramData%\IronFlock\DeviceAgent\device.flock——在代理程序 1.4.0 之前安装的设备上,该文件夹为%ProgramData%\IronFlock\Reagent——然后重新启动该服务(device-agent.exe service start)。
注册无法访问互联网的设备
Appliance 还会镜像设备安装程序(ironflock-init)及其安装脚本,因此只能访问 Appliance 的新边缘设备同样可以完成注册。在 项目设置 → 设备 → 新建设备 中显示的命令已经指向 Appliance——简单模式(IP)下为 http://<appliance-host>:15002/dl/...,域名模式下为 https://registry.<appliance-domain>/dl/...:
- Linux: 一行命令的形式为
curl -fsSL <base>/device-init/install.sh | sudo IRONFLOCK_DL_BASE=<base> bash -s -- -c <file>.flock。请先把设备的.flock文件复制到设备上。ironflock-init会从.flock文件中读取下载基址;--download-base可覆盖该设置。 - Windows: 从
<base>/device-agent/windows/amd64/latest/device-agent.exe下载device-agent.exe,并按照连接设备中的说明安装服务。
无法访问互联网的设备的前提条件: 必须预先安装 Docker(Engine + Compose 插件)和基础软件包。Appliance 镜像的是 IronFlock 自身的二进制文件,而不是发行版软件包——只有在缺少 Docker 时,
ironflock-init才会尝试访问get.docker.com。
安装程序存储会与代理程序镜像一起刷新——同样的 6 小时周期,同样的 立即同步 按钮。