\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,4 +1,3 @@
1
-
2 1
# 分布式系统升级技术指引文档
3 2
---
4 3
... ...
@@ -156,17 +155,38 @@ smi:
156 155
iidp.com/installedApps: smi-base-asset.master,smi-base-common.master,smi-base-data-permission.master,smi-base-datasource.master,smi-base-dispatch.master,smi-base-license.master,smi-base-monitor.master,smi-base-notice.master,smi-base-testpoint.master,smi-ida-alarm.master,smi-ida-base.master,smi-ida-broadcast.master,smi-ida-chart.master,smi-ida-comcanvas.master,smi-ida-common.master,smi-ida-design.master,smi-ida-newscene.master,smi-ida-problem.master,smi-ida-report.master
157 156
158 157
```
158
+将对应的配置信息写入到service 的yaml 文件中
159 159
160
-[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/10.png]]
160
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/11.png]]
161 161
162 162
---
163 163
164 164
## 四、网关部署验证
165
-### 4.1 滚动更新操作
166
-```bash
167
-kubectl scale deployment nginx --replicas=0 # 停止旧网关
168
-kubectl apply -f gw.yaml --dry-run=server # 预校验配置
169
-```
165
+### 4.1 pod更新
166
+
167
+先把nginx pod数量减0停掉nginx,开始编辑配置
168
+
169
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/12.png]]
170
+
171
+挂载iidp-nginx下面的gw.yaml
172
+
173
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/13.png]]
174
+
175
+挂载iidp-app下面的application-dev.properties
176
+
177
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/14.png]]
178
+
179
+Ngxin和gw同时挂载/socket,用于uds通信
180
+
181
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/15.png]]
182
+
183
+为了提高uds性能,继续编辑yaml,设置为基于内存的临时存储
184
+
185
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/16.png]]
186
+
187
+启动nginx并观察容器状态
188
+
189
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/17.png]]
170 190
171 191
### 4.2 存储优化配置
172 192
```yaml
... ...
@@ -174,68 +194,56 @@ volumes:
174 194
- name: uds-socket
175 195
emptyDir:
176 196
medium: Memory # 启用内存存储提升性能
197
+ sizeLimit: 1Gi
177 198
```
178 199
179 200
### 4.3 连通性验证
180 201
```bash
181 202
# 路由信息验证
182
-curl -sS localhost:8060/route | jq . # 预期包含所有注册应用
203
+curl -sS localhost:8060/route # 获取app以及其所在service的信息
204
+```
205
+
206
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/18.png]]
207
+
208
+```bash
183 209
# 服务映射检查
184
-curl -sS localhost:8060/svc2app | grep "mbm-main.master"
210
+curl -sS localhost:8060/svc2app # 获取service上已安装的app
211
+```
212
+
213
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/19.png]]
214
+
215
+```bash
185 216
# 端点健康状态
186
-curl -sS localhost:8060/endpoints | jq '.[].status'
217
+curl -sS localhost:8060/endpoints # 获取服务的ip信息
187 218
```
188 219
220
+[[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/20.png]]
221
+
222
+到此就可以确定nginx和gw安装完成,且能够获取app安装的路由信息。
223
+
189 224
---
190 225
191
-## 五、业务POD迁移方案
226
+## 五、业务POD迁移
192 227
### 5.1 停机迁移步骤
228
+
229
+同样地先将pod数量减为0,停止服务,并编辑配置。
230
+首先配置 engine.model2ddl.mode=NONE
231
+删除sidecar 容器,修改iidp的镜像为对应新模式分布式的镜像,并调整configmap为iidp-app
232
+
193 233
1. **前置操作**
194 234
```bash
195 235
kubectl scale deployment {service} --replicas=0
196 236
```
237
+ [[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/21.png]]
238
+
197 239
2. **配置清理**
198 240
删除旧版dapr注解:
199 241
```yaml
200 242
annotations:
201 243
- dapr.io/enabled: "false" # 禁用遗留sidecar
202 244
```
245
+ [[http://iidp.chinasie.com:9999/iidpminio/distributed-v2/22.png]]
203 246
204
-### 5.2 启动验证标准
205
-1. **日志监控关键点**
206
- ```bash
207
- kubectl logs -f {pod_name} | grep -E "IIDP_ENGINE_READY|CLUSTER_SYNC_COMPLETED"
208
- ```
209
-2. **就绪探针配置**
210
- ```yaml
211
- readinessProbe:
212
- httpGet:
213
- path: /healthz
214
- port: 8080
215
- initialDelaySeconds: 20
216
- ```
217
-
218
----
219
-
220
-## 六、回退与监控方案
221
-### 6.1 快速回退机制
222
-```bash
223
-# 配置回滚命令
224
-kubectl rollout undo deployment/iidp-nginx --to-revision=3
225
-```
226
-
227
-### 6.2 监控指标阈值
228
-| 指标名称 | 告警阈值 | 检测频率 |
229
-|-------------------------|----------------|----------|
230
-| 路由同步延迟 | >500ms | 10s |
231
-| 节点心跳丢失率 | >5% (持续1min)| 30s |
232
-
233
----
234
-
235
-**升级验证清单**
236
-✅ 所有配置项已按`iidp-`前缀标准化
237
-✅ 网关路由接口返回完整服务拓扑
238
-✅ 业务POD启动后输出IIDP BANNER
239
-✅ 旧版sidecar组件已完全移除
247
+继续编辑探针,指向pod自身。然后启动,观察输出日志,当看到大的 IIDP logo时,说明启动成功。
240 248
241
-> 注:本方案参考了系统升级文档规范和Kubernetes最佳实践,建议在预发布环境完成全量验证后执行生产环境变更。升级过程中如遇异常,可通过`kubectl describe configmap/iidp-app`检查配置注入状态。
... ...
\ No newline at end of file
0
+预祝升级顺利!
... ...
\ No newline at end of file