应用
定义容器化和脚本应用,管理版本化发布,并部署到设备组。
概述
应用是可以部署到设备的命名、版本化软件单元。每个应用包含:
- 类型:
container(容器)或script(脚本) - 版本:不可变的发布快照,包含规格 JSON
- 部署:面向设备组的发布活动
应用列表
导航到应用查看租户中的所有应用。
列名:名称、类型、版本数、最新版本、创建日期。
按类型(容器/脚本)过滤。
创建应用
- 点击 + 创建应用。
- 输入名称(例如
nginx、edge-collector)。 - 选择类型:容器或脚本。
- 点击创建。
版本
版本封装了描述如何运行应用的不可变规格。
创建版本
- 打开应用,进入版本标签页。
- 点击创建版本。
- 输入版本字符串(例如
1.0.0、2024-03-15)。 - 使用以下方式填写规格:
- 表单模式 — 引导式字段(镜像、端口、卷、环境变量等)
- 原始 JSON — 直接粘贴完整的规格对象
- 点击创建。
容器规格字段
| 字段 | 描述 |
|---|---|
image | 容器镜像(例如 nginx:latest) |
ports | 端口映射(主机:容器) |
volumes | 卷挂载(主机:容器:选项) |
env | 环境变量(KEY=value) |
network_mode | Docker 网络模式 |
hostname | 容器主机名 |
restart_policy | always / on-failure / unless-stopped / no |
memory | 内存限制(例如 256m、1g) |
cpus | CPU 限制(例如 0.5、2) |
privileged | 以特权模式运行容器 |
cap_add / cap_drop | Linux 能力 |
labels | Docker 标签 |
entrypoint | 覆盖容器入口点 |
cmd | 覆盖容器命令 |
working_dir | 容器内工作目录 |
user | 以指定用户运行 |
脚本规格字段
| 字段 | 描述 |
|---|---|
command | 可执行文件路径 |
args | 命令参数 |
env | 环境变量 |
working_dir | 工作目录 |
timeout | 执行超时(例如 30s、5m) |
user | 以指定用户运行 |
部署
部署通过发布将特定版本推送到目标组的所有设备。
发起部署
- 在版本标签页中,点击要部署版本旁的部署。
- 选择一个设备组。
- 选择策略:
- 滚动 — 分批更新设备(配置批次大小和失败阈值)
- 金丝雀 — 先部署到小批量,然后扩展
- 蓝绿 — 在旧版本旁部署新版本,然后切换流量
- 点击部署。
发布会自动创建并在应用 → 部署和发布中跟踪。
监控部署
部署标签页显示应用的所有部署活动:
- 状态:运行中 / 已完成 / 失败 / 已取消
- 进度条(成功 / 失败 / 待处理设备)
- 链接到底层发布
点击部署行打开详情视图。
取消部署
在部署详情中,点击取消部署。已更新的设备保留新版本;剩余设备不会被更新。
卸载
在部署详情中,点击卸载。这会创建一个新的发布,从目标组的所有设备中移除该应用。
应用影子键
当应用被部署时,后端将设备影子中的 apps.<app-name> 键写入。Agent 的应用协调器读取此键并相应地管理容器或脚本生命周期。
影子期望状态示例:
json
{
"apps": {
"nginx": {
"version": "1.0.0",
"spec": { "image": "nginx:latest", "ports": ["80:80"] }
}
}
}