基于K8S+eureka的java应用快速上下线的WEB平台
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
刚进公司时由于历史原因应用发布通过发布新版新老并存->下线老版->删除老版的方式每次通过手工处理蛋疼不方便且高风险。于是马上写了比较直观的脚本方案基于K8S和注册中心的一种版本快速回退方案。当时也默默许愿要实现WEB化白屏化。事隔1年愿望终于实现了。
1.主要功能页面
1穿梭框选择应用列表生成这次的发布清单
2标签页步骤1中选中的每个应用有一个页面
3下线老的版本注册状态变成“DOWN”,“删除”按钮激活
4删除老版本后只剩新版
2.项目介绍
功能看起来很简单但麻雀虽小五脏俱全。直接操作生成环境的eureka\k8s做了很多校验和保护最终才敢在生产环境上线。
技术栈vueelement-plus+flask
第一次用vue写完整的线上项目遇到不少难题正好前端的飙哥坐我隔壁多次请教顺便感谢下。
技术上的关键点
标签页和穿梭框父子组件之间的通信子组件选择应用后父组件动态响应
前后端分离每个后端接口需要认证才能访问
每个应用的2个服务在K8S中必须有1个共同的标签和1个不同的标签
如order-server应用2个deployment的标签:
order-server1app:order-server, name:order-server1
order-server2app:order-server, name:order-server2
功能上的关键点
每个应用页面刷新要多次请求k8s api刷新按钮限制3秒1次
获取服务列表后检验准确性如果信息不准确如IP有重复不渲染页面直接显示错误信息
按钮设计
应用只有1个服务时所有按钮禁用
只有下线状态的服务才能激活“删除”按钮
应用有2个服务并存时A服务状态正常时才激活B服务的“下线”和“删除”按钮
以上按钮设计不仅仅在前端控制后端“下线”和“删除”操作时也要做相应检查。
好了等我脱敏上传github吧