\346\234\211\350\276\271\350\275\246\345\215\207\347\272\247\344\270\272\346\227\240\350\276\271\350\275\246\346\214\207\345\274\225.md
... ...
@@ -1 +1,175 @@
1
-### 1,获取边车路由信息
... ...
\ No newline at end of file
0
+
1
+
2
+# 分布式系统升级技术指引文档
3
+---
4
+
5
+## 一、路由信息迁移规范
6
+### 1.1 边车路由提取
7
+1. **服务访问**
8
+ ```bash
9
+ kubectl -n {namespace} get svc redis-stack # 确认NodePort端口(默认8001)
10
+ ```
11
+2. **数据查询**
12
+ 通过RedisInsight执行查询指令:
13
+ ```redis
14
+ SCAN 0 MATCH *statestore||app_key* # 获取全量路由键
15
+ ```
16
+3. **格式转换**
17
+ 使用平台提供的`route-converter`工具进行数据迁移:
18
+ ```bash
19
+ ./converter --input=redis_export.json --output=new_arch_routes.yaml
20
+ ```
21
+
22
+---
23
+
24
+## 二、配置管理标准化
25
+### 2.1 命名规范重构
26
+| 原配置项 | 新标准配置项 | 变更类型 |
27
+|-------------------|------------------|----------------|
28
+| snest-nginx | iidp-nginx | 强制重建 |
29
+| snest-app | iidp-app | 配置迁移 |
30
+
31
+### 2.2 网关配置新增(gw.yaml)
32
+```yaml
33
+apiVersion: v1
34
+kind: ConfigMap
35
+metadata:
36
+ name: iidp-gw-config
37
+ namespace: {target_namespace}
38
+data:
39
+ routing-policy: |
40
+ # 核心路由策略
41
+ engine.store.meta.mode=CLOUD
42
+ engine.run.mode=DISTRIBUTED_V2
43
+ image-config: |
44
+ app.install.image=registry.iidp.cn/core/gateway:v3.2.1
45
+```
46
+
47
+### 2.3 应用配置迁移
48
+1. **配置文件继承**
49
+ ```bash
50
+ kubectl get cm snest-app -o yaml > iidp-app.yaml
51
+ sed -i 's/snest-app/iidp-app/g' iidp-app.yaml
52
+ ```
53
+2. **关键参数注入**
54
+ 在`application-dev.properties`追加:
55
+ ```properties
56
+ # 分布式模式配置
57
+ cluster.node.ttl=300s
58
+ service.discovery.interval=30s
59
+ ```
60
+
61
+---
62
+
63
+## 三、服务声明更新流程
64
+### 3.1 服务依赖声明
65
+```yaml
66
+# iidp-core-services.yaml
67
+apiVersion: iidp.io/v1beta1
68
+kind: ServiceDefinition
69
+spec:
70
+ components:
71
+ - name: iidp
72
+ dependencies: ""
73
+ installedApps:
74
+ - newSdkApp.master
75
+ - oppmApp.master
76
+ - sf-auto-interface-app.master
77
+ - name: iiot
78
+ dependencies:
79
+ - iiot_apiAdapter.master
80
+ - iiot_base.master
81
+ installedApps:
82
+ - iiot_project.master
83
+ - iiot_access.master
84
+```
85
+
86
+### 3.2 版本控制策略
87
+1. 使用GitOps进行配置版本管理
88
+2. 每次变更需生成新的`configVersion`标签
89
+ ```yaml
90
+ metadata:
91
+ annotations:
92
+ iidp.com/configVersion: 20250318-01
93
+ ```
94
+
95
+---
96
+
97
+## 四、网关部署验证
98
+### 4.1 滚动更新操作
99
+```bash
100
+kubectl scale deployment nginx --replicas=0 # 停止旧网关
101
+kubectl apply -f gw.yaml --dry-run=server # 预校验配置
102
+```
103
+
104
+### 4.2 存储优化配置
105
+```yaml
106
+volumes:
107
+ - name: uds-socket
108
+ emptyDir:
109
+ medium: Memory # 启用内存存储提升性能
110
+```
111
+
112
+### 4.3 连通性验证
113
+```bash
114
+# 路由信息验证
115
+curl -sS localhost:8060/route | jq . # 预期包含所有注册应用
116
+# 服务映射检查
117
+curl -sS localhost:8060/svc2app | grep "mbm-main.master"
118
+# 端点健康状态
119
+curl -sS localhost:8060/endpoints | jq '.[].status'
120
+```
121
+
122
+---
123
+
124
+## 五、业务POD迁移方案
125
+### 5.1 停机迁移步骤
126
+1. **前置操作**
127
+ ```bash
128
+ kubectl scale deployment {service} --replicas=0
129
+ ```
130
+2. **配置清理**
131
+ 删除旧版dapr注解:
132
+ ```yaml
133
+ annotations:
134
+ - dapr.io/enabled: "false" # 禁用遗留sidecar
135
+ ```
136
+
137
+### 5.2 启动验证标准
138
+1. **日志监控关键点**
139
+ ```bash
140
+ kubectl logs -f {pod_name} | grep -E "IIDP_ENGINE_READY|CLUSTER_SYNC_COMPLETED"
141
+ ```
142
+2. **就绪探针配置**
143
+ ```yaml
144
+ readinessProbe:
145
+ httpGet:
146
+ path: /healthz
147
+ port: 8080
148
+ initialDelaySeconds: 20
149
+ ```
150
+
151
+---
152
+
153
+## 六、回退与监控方案
154
+### 6.1 快速回退机制
155
+```bash
156
+# 配置回滚命令
157
+kubectl rollout undo deployment/iidp-nginx --to-revision=3
158
+```
159
+
160
+### 6.2 监控指标阈值
161
+| 指标名称 | 告警阈值 | 检测频率 |
162
+|-------------------------|----------------|----------|
163
+| 路由同步延迟 | >500ms | 10s |
164
+| 节点心跳丢失率 | >5% (持续1min)| 30s |
165
+
166
+---
167
+
168
+**升级验证清单**
169
+✅ 所有配置项已按`iidp-`前缀标准化
170
+✅ 网关路由接口返回完整服务拓扑
171
+✅ 业务POD启动后输出IIDP BANNER
172
+✅ 旧版sidecar组件已完全移除
173
+
174
+> 注:本方案参考了系统升级文档规范和Kubernetes最佳实践,建议在预发布环境完成全量验证后执行生产环境变更。升级过程中如遇异常,可通过`kubectl describe configmap/iidp-app`检查配置注入状态。
... ...
\ No newline at end of file