分布式系统升级技术指引文档
一、路由信息迁移规范
1.1 边车路由提取
-
服务访问
kubectl -n {namespace} get svc redis-stack # 确认NodePort端口(默认8001)
-
数据查询
通过RedisInsight执行查询指令:
SCAN 0 MATCH *statestore||app_key* # 获取全量路由键
-
格式转换
使用平台提供的route-converter
工具进行数据迁移:
./converter --input=redis_export.json --output=new_arch_routes.yaml
二、配置管理标准化
2.1 命名规范重构
| 原配置项 | 新标准配置项 | 变更类型 | |——————-|——————|—————-| | snest-nginx | iidp-nginx | 强制重建 | | snest-app | iidp-app | 配置迁移 |
2.2 网关配置新增(gw.yaml)
apiVersion: v1
kind: ConfigMap
metadata:
name: iidp-gw-config
namespace: {target_namespace}
data:
routing-policy: |
# 核心路由策略
engine.store.meta.mode=CLOUD
engine.run.mode=DISTRIBUTED_V2
image-config: |
app.install.image=registry.iidp.cn/core/gateway:v3.2.1
2.3 应用配置迁移
-
配置文件继承
kubectl get cm snest-app -o yaml > iidp-app.yaml sed -i 's/snest-app/iidp-app/g' iidp-app.yaml
-
关键参数注入
在application-dev.properties
追加:
# 分布式模式配置 cluster.node.ttl=300s service.discovery.interval=30s
三、服务声明更新流程
3.1 服务依赖声明
# iidp-core-services.yaml
apiVersion: iidp.io/v1beta1
kind: ServiceDefinition
spec:
components:
- name: iidp
dependencies: ""
installedApps:
- newSdkApp.master
- oppmApp.master
- sf-auto-interface-app.master
- name: iiot
dependencies:
- iiot_apiAdapter.master
- iiot_base.master
installedApps:
- iiot_project.master
- iiot_access.master
3.2 版本控制策略
- 使用GitOps进行配置版本管理
- 每次变更需生成新的
configVersion
标签
metadata: annotations: iidp.com/configVersion: 20250318-01
四、网关部署验证
4.1 滚动更新操作
kubectl scale deployment nginx --replicas=0 # 停止旧网关
kubectl apply -f gw.yaml --dry-run=server # 预校验配置
4.2 存储优化配置
volumes:
- name: uds-socket
emptyDir:
medium: Memory # 启用内存存储提升性能
4.3 连通性验证
# 路由信息验证
curl -sS localhost:8060/route | jq . # 预期包含所有注册应用
# 服务映射检查
curl -sS localhost:8060/svc2app | grep "mbm-main.master"
# 端点健康状态
curl -sS localhost:8060/endpoints | jq '.[].status'
五、业务POD迁移方案
5.1 停机迁移步骤
-
前置操作
kubectl scale deployment {service} --replicas=0
-
配置清理
删除旧版dapr注解:
annotations: - dapr.io/enabled: "false" # 禁用遗留sidecar
5.2 启动验证标准
-
日志监控关键点
kubectl logs -f {pod_name} | grep -E "IIDP_ENGINE_READY|CLUSTER_SYNC_COMPLETED"
-
就绪探针配置
readinessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 20
六、回退与监控方案
6.1 快速回退机制
# 配置回滚命令
kubectl rollout undo deployment/iidp-nginx --to-revision=3
6.2 监控指标阈值
| 指标名称 | 告警阈值 | 检测频率 | |————————-|—————-|———-| | 路由同步延迟 | >500ms | 10s | | 节点心跳丢失率 | >5% (持续1min)| 30s |
升级验证清单
✅ 所有配置项已按iidp-
前缀标准化
✅ 网关路由接口返回完整服务拓扑
✅ 业务POD启动后输出IIDP BANNER
✅ 旧版sidecar组件已完全移除
注:本方案参考了系统升级文档规范和Kubernetes最佳实践,建议在预发布环境完成全量验证后执行生产环境变更。升级过程中如遇异常,可通过
kubectl describe configmap/iidp-app
检查配置注入状态。