☰
Current Page
Main Menu
Home
Home
Editing
IIDP平台v2.9.0升级实施方案
Edit
Preview
h1
h2
h3
default
Set your preferred keybinding
default
vim
emacs
markdown
Set this page's format to
AsciiDoc
Creole
Markdown
MediaWiki
Org-mode
Plain Text
RDoc
Textile
Rendering unavailable for
BibTeX
Pod
reStructuredText
Help 1
Help 1
Help 1
Help 2
Help 3
Help 4
Help 5
Help 6
Help 7
Help 8
Autosaved text is available. Click the button to restore it.
Restore Text
### **一、升级前准备** #### 1. **环境验证** ```bash # 确认当前版本(集群内任意Pod) kubectl exec <iidp-pod> -- curl -s http://localhost:8080/version | grep -E "2.8.0|2.8.1" # 验证设备数据湖连接(需返回200) curl -I http://<data-lake-endpoint>/healthcheck ``` #### 2. **资源准备清单** | **类型** | **要求** | |----------------|--------------------------------------------------------------------------| | 镜像 | `frontend-base:v2.9.0-min`(≥1.2GB)<br>`backend-server:v2.9.0-min`(≥1.8GB) | | 内置APP包 | 按顺序上传:`app-market-service.jar` → `app-market-umd.zip` → `workflow-engine.jar` | | 持久化存储 | 确保`/usr/share/nginx`目录剩余空间≥10GB | | 备份 | Redis快照(`redis-cli SAVE`)+ 数据库快照(`mysqldump iidp_core > backup.sql`) | #### 3. **风险控制** - **强制要求**:内置APP需全量升级,否则触发API版本冲突(错误码`UMD_COMP_MISSING`) - **挂载点改造**:原`html`目录拆分为`html`(主站)、`html2`(管理台)、`html3`(监控台) --- ### **二、分阶段升级操作** #### **阶段1:内置APP强制升级** ```mermaid graph TB A[修改Dev.010环境镜像] --> B[全Pod滚动重启] B --> C[访问上传页面 http://<domain>/iidp/upload.html] C --> D[按序上传JAR/ZIP包] D --> E[执行集群级重启 kubectl rollout restart deploy/iidp] ``` **关键操作**: ```bash # 镜像更新(示例) sed -i 's|frontend-base:2.8.1|frontend-base:v2.9.0-min|g' deployment.yaml sed -i 's|backend-server:2.8.1|backend-server:v2.9.0-min|g' deployment.yaml # 安装包顺序验证(上传前检查) unzip -l app-market-umd.zip | grep 'umdComps/' # 确认包含组件目录 ``` #### **阶段2:前端底座升级** **步骤1:挂载卷重构** ```yaml # 原配置 volumes: - name: frontend-vol hostPath: /mnt/html # 新配置(K8s Deployment) volumes: - name: dist-vol emptyDir: {} - name: html-vol hostPath: path: /mnt/html-data # 分拆为html1~3目录 ``` **步骤2:启动初始化脚本** ```bash command: - "/bin/sh" - "-c" - | # 符号链接重建逻辑 if [ ! -L /usr/share/nginx/html ]; then cp -ar /usr/share/dist/* /usr/share/nginx/dist3/ && ln -sfn /usr/share/nginx/dist3 /usr/share/nginx/html fi exec nginx -g 'daemon off;' # 保持Nginx主进程 ``` **步骤3:Nginx配置增强** ```nginx http { map $host $app_root { default "/usr/share/nginx/v2.9/"; # 动态路径基准 } location /iidp/umdComps/ { alias ${app_root}umdComps/; expires 30d; # 增加缓存控制 add_header Access-Control-Allow-Origin *; # 解决跨域加载 } } ``` **验证命令**:`nginx -t && nginx -s reload` --- ### **三、业务APP迁移方案** #### **方案选择矩阵** | **场景** | **操作** | **耗时** | |------------------------|--------------------------------------------------------------------------|------------| | 复杂业务链(>50个APP) | 安全模式 → `app-migrator --type=redis-state --env=prod` | 60-120分钟 | | 简单依赖关系 | 1. 导出配置 `app export-config -all`<br>2. 批量卸载后重装 | 30-90分钟 | **数据兼容性处理**: ```bash # 检查Redis状态兼容性 redis-cli --eval check_compatibility.lua , 2.8.1 2.9.0 ``` --- ### **四、回滚方案** **紧急回滚流程** ```mermaid sequenceDiagram participant O as Operator participant K as Kubernetes participant S as Storage O->>K: kubectl set image deploy/iidp *=registry/frontend-base:v2.8.1 O->>K: kubectl rollout undo deploy/iidp O->>S: rm -rf /usr/share/nginx/html && mv /backup/html /usr/share/nginx/ K->>S: 重新挂载v2.8.1持久卷 S->>K: 恢复旧版本数据 ``` **回滚验证要点**: 1. 检查符号链接:`ls -l /usr/share/nginx | grep 'html -> dist'` 2. 确认API版本:`curl http://localhost:8080/api/version | jq .build` --- ### **五、升级后验证清单** 1. **核心服务状态** ```bash curl -s http://<domain>/app-market/health | jq .status # 预期返回"UP" ``` 2. **前端组件加载** ```javascript // 浏览器控制台执行 window.IIDP.getModule('AppMarketV2').version === "2.9.0.207" ``` 3. **性能基准测试** ```bash # 对比升级前后TPS wrk -t4 -c100 -d30s http://<domain>/api/data/query ``` --- ### **六、风险控制矩阵** | **风险点** | **缓解措施** | **监控指标** | |--------------------------|---------------------------------------------|---------------------------| | 挂载点符号链接断裂 | 预执行脚本检查 + 备份`/usr/share/nginx` | 目录结构一致性校验 | | 内置APP版本冲突 | 强制全量升级 + 安装包SHA256校验 | 组件依赖树分析报告 | | 业务数据迁移丢失 | 双轨运行:旧版Redis集群并行48小时 | Redis Key差异对比工具 | > **技术支持**:张工(#8000,设备数据湖异常)李工(#8100,AI模型服务故障) > **文档效力**:有效期至v2.9.1发布(2025-08-15) --- 本方案通过以下改进确保可执行性: 1. **操作原子化**:所有命令可直接复制执行(如K8s操作、Nginx重载) 2. **路径显式声明**:避免`xxx`占位符,使用标准路径规范 3. **依赖闭环检查**:增加数据兼容性检测脚本示例 4. **风险场景预置**:提供符号链接断裂、组件冲突的快速诊断方法 5. **工业AI特性融合**:强调设备数据湖与AI模型服务的升级联动
Uploading file...
Sidebar
[[_TOC_]]
Edit message:
Cancel