Open Horizon 边缘计算平台的边缘代理,负责在边缘节点上通过策略驱动的协商机制管理工作负载与服务的全生命周期。
项目定位#
anax 是 Open Horizon 边缘计算平台的核心边缘代理组件,属于 LF Edge(Linux Foundation Edge)基金会 Stage Two 项目。它采用 Go 语言开发(84.4%),运行于边缘设备或 Kubernetes 集群中,作为边缘侧的"执行者"与管理 Hub 交互,自主决定本地部署内容并管理运行状态。
核心能力#
- 工作负载协商与部署:通过 abstractprotocol、basicprotocol 等协议与管理 Hub 的 Agbot 进行工作负载协商,基于 Deployment Policy、Node Policy、Business Policy 三层策略体系自主决定本地部署内容
- 服务全生命周期管理:完整覆盖边缘服务的下载、安装、启动、监控、升级与回滚流程,内置节点管理与集群升级模块(
nodemanagement、clusterupgrade),支持自动更新 - 边缘数据与模型分发:内嵌边缘同步服务(ESS/MMS),支持 AI 模型和文件在 Hub 与边缘节点间的安全分发
- 安全与凭据管理:集成 Secrets Manager 实现凭据安全管理;集成 SDO/FDO 实现零接触设备上线
- 高可用:支持高可用节点分组(HA groups)
- 运维与可观测性:提供本地 REST API(自动生成 Swagger 文档)和 Agbot 安全 API,内置计量/遥测模块(
metering),支持多级别调试日志(ANAX_LOG_LEVEL)
部署形态#
- 裸机/设备部署:Docker 容器化(
anax-in-container),面向 Debian 系发行版 - Kubernetes 集群部署:
anax-in-k8s、kube_operator,兼容 OCP、K3s、MicroK8s - 支持 amd64、arm64、armhf、ppc64el 等架构交叉编译
架构要点#
anax 为单体 Go 程序(入口 main.go),可通过不同部署模式同时充当边缘代理和 Agbot(Agreement Bot)。运行时以 horizon.service Systemd 服务形式驻留,依赖 Exchange API、Cloud Sync Service(CSS)和 Agbot 实例协同工作。
核心模块:agreement/(协商协议)、agreementbot/(Agbot 模式)、api/(REST API)、exchange/(Exchange 交互)、policy//businesspolicy//externalpolicy/(策略引擎)、container/(容器管理)、ess/(边缘同步服务)、kube_operator/(K8s 操作器)、imagefetch/(镜像拉取)、governance/(治理)、metering/(计量遥测)、microservice/(微服务管理)、worker/(后台线程)、cli/(hzn CLI)、nodemanagement//clusterupgrade/(节点与集群升级)、helm/(Helm chart)、i18n/(国际化)。
协商与部署流程:边缘节点启动 → anax 连接 Exchange API 注册 → 与 Agbot 基于策略进行协议协商 → 匹配成功后拉取工作负载镜像 → 部署并监控服务运行状态 → 持续上报遥测数据。
CLI 与配置#
CLI 工具 hzn 支持国际化(通过 HZN_LANG 环境变量切换语言)。关键命令:hzn version(查看版本)、hzn policy update(更新节点策略,替代已废弃的 hzn policy patch)、hzn exchange node addpolicy(更新 Exchange 中的节点策略)。调试日志通过 ANAX_LOG_LEVEL=5(debug)或 =6(trace)启用。
安装路径#
预编译包(推荐):从 GitHub Releases 下载对应平台和架构的 deb/snap 包,官方还提供自动化 agent 安装脚本。
从源码构建:git clone → make(构建)→ make check(lint+测试)→ make test-integration(集成测试),需 Go ≥ 1.19。
适用场景#
工业物联网边缘计算、边缘集群管理、AI/ML 模型边缘分发、零接触设备上线、多环境边缘部署。
关联项目#
- exchange-api:Exchange API 服务端
- edge-sync-service:边缘同步服务(MMS Hub 端)
- horizon-deb-packager:deb 包打包工具
待确认信息#
- GitHub Releases 最新为 v2.32.0-1767,但官方文档 Components 页面列出 Edge device agent 为 2.30.0-1177,版本号存在不一致
- 是否支持 Windows 或 macOS 作为边缘节点生产环境
- 缺乏性能基准数据与大规模部署数量级参考