跳到主要内容

升级

容器模式 (2026.05+, 推荐)

# 자동 (META-INF/VERSION.JSON 의 최신 build_date)
sudo bash /opt/kopens/install/upgrade.sh

# 특정 tag
sudo bash /opt/kopens/install/upgrade.sh --to 2026-20260601

# 직전 tag 로 rollback
sudo bash /opt/kopens/install/upgrade.sh --rollback

# 새 빌드 존재 여부만 확인
sudo bash /opt/kopens/install/upgrade.sh --check

执行顺序(自动):

  1. 比较 META-INF/VERSION.JSON 中的 build_date
  2. pre-snapshot/data1/pp-backups/pe-backup-<ts>.tar.zst(调用 backup.sh,可通过 SKIP_BACKUP=1 跳过)
  3. docker pull <new-tag>
  4. /etc/kopens/version.env 更新 + systemctl restart
  5. /api/v1/system/health 90 秒 probe
  6. all UP → success / DEGRADED → 自动 rollback + 提示 snapshot 路径

进度状态:cat /etc/kopens/upgrade.status — JSON (idle / running / success / rolling-back / rolled-back / error + snapshot path)。

UI / API 触发:

# 컨테이너 안 (ConfigController) 에서 자동
echo '{"target_tag":"2026-20260601"}' > /etc/kopens/upgrade.request
# 호스트의 kopens-upgrade.path (inotify) 감지 → upgrade.sh --from-trigger 실행

详细指南:容器模式运维指南 的 “OTA 升级” 一节。


(legacy) Native 模式

$PE_HOME/bin/upgrade.sh

执行顺序:

  1. 调用 backup.sh(自动)
  2. product.kopens.io 下载最新的 install.sh
  3. install.sh 下载产物(KOPENS_EDGE_V<VER>.tar.zstd)→ 替换 /opt/kopens
  4. 调用新的 start.sh

正常输出

[1] BACKUP ... done (/data1/pp-backup/20260508-040215/)
[2] DOWNLOAD install.sh ... 22 KB OK
[3] EXEC install.sh ...
- downloading KOPENS_EDGE_V2026.tar.zstd ... 727 MB OK
- extracting ... OK
- finalizing ...
[4] START ... (start.sh 호출됨)
UPGRADE COMPLETED.

耗时取决于产物大小 + 线路 + 解压(通常 5–15 分钟)。

升级期间网关处于停机状态

upgrade.sh 运行期间,网关处于 停止状态。请提前通知外部 SCADA / Sparkplug 接收端。尽量在 夜间巡检窗口 执行。


2. 事前巡检

开始升级之前:

# 1. 외부 망이 충분히 빠른지 — 회선이 느리면 download 만 수십 분
$PE_HOME/bin/network-speed-test.sh

# 2. 디스크 여유 (산출물 크기의 2–3배는 있어야)
df -h /opt /data1

# 3. 살아있는 백업이 있는지
ls -lt /data1/pp-backup | head -3

3. 升级结果验证

$PE_HOME/bin/ps.sh # 모든 컴포넌트 살아있는지
curl -s http://127.0.0.1/api/v1/edge | jq # 버전/엣지 ID 새 값 확인
curl -s http://127.0.0.1/ui/opcua/tree | jq '.data.tree | length' # 사이트/태그 정상
$PE_HOME/bin/log-viewer.sh # 30초 정도 봐서 SEVERE 없는지
# (Ctrl+C)

同时在外部 SCADA / Sparkplug 接收端确认数据是否正常到达。


4. 常见陷阱

症状原因 / 解决
卡在 download install.sh检查外网 / product.kopens.io。用 curl -v http://product.kopens.io/... 直接确认
extracting 后新产物损坏下载中断。检查磁盘空间并重试
升级后只有部分组件存活start.sh 的分步失败 — 用 log-viewer.sh 确认卡在哪一步
升级后需 回滚到旧版本从备份恢复 → 备份 / 恢复

5. firmware.sh — OS 软件包更新

$PE_HOME/bin/firmware.sh

内部执行:

dnf update -y
dnf clean all

用于按季度应用安全补丁。若包含内核更新,则需要 reboot

$PE_HOME/bin/firmware.sh
needs-restarting -r # 새 커널이 깔렸는지 확인
# 결과가 "Reboot is required" 이면
$PE_HOME/bin/stop.sh
$PE_HOME/bin/reboot.sh

6. 了解更多

  • 升级整合场景(安全流程) → 运维场景 — 新版本发布
  • 产物由 GitLab 发布链(edge:libsedge:deploy-devedge:imageedge:stagingedge:version)生成。
  • 安装 / 部署(面向开发者):安装 / 部署