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 |