9797d95b6e2441b36b11a3e8cc24fefb9289cb29
\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 |