基于K8S+eureka的java应用快速上下线的WEB平台

文章描述了一位技术专家改进公司应用发布的流程,从手动操作转变为基于K8S和注册中心的脚本方案,最终实现WEB化和白屏化的版本回退系统。该系统涉及Vue和Flask技术栈,包含应用选择、服务状态管理和安全控制等功能,确保在生产环境的安全操作。
摘要由CSDN通过智能技术生成

刚进公司时,由于历史原因,应用发布通过:发布新版(新老并存)->下线老版->删除老版的方式,每次通过手工处理,蛋疼(不方便且高风险)。于是马上写了比较直观的脚本方案:基于K8S和注册中心的一种版本快速回退方案。当时也默默许愿,要实现WEB化,白屏化。事隔1年,愿望终于实现了。

1.主要功能页面

(1)穿梭框,选择应用列表,生成这次的发布清单

(2)标签页,步骤1中选中的每个应用有一个页面

(3)下线老的版本,注册状态变成“DOWN”,“删除”按钮激活

(4)删除老版本后,只剩新版

2.项目介绍

功能看起来很简单,但麻雀虽小五脏俱全。直接操作生产环境的eureka\k8s,做了很多校验和保护,最终才敢在生产环境上线。

技术栈:vue(element-plus)+flask

第一次用vue写完整的线上项目,遇到不少难题,正好前端的飙哥坐我隔壁,多次请教,顺便感谢下。

技术上的关键点

  1. 标签页和穿梭框,父子组件之间的通信,子组件选择应用后父组件动态响应;

  1. 前后端分离,每个后端接口需要认证才能访问;

  1. 每个应用的2个服务,在K8S中必须有1个共同的标签,和1个不同的标签

如order-server应用,2个deployment的标签:

order-server1:app:order-server, name:order-server1

order-server2:app:order-server, name:order-server2

功能上的关键点

  1. 每个应用页面刷新,要多次请求k8s api,刷新按钮限制3秒1次;

  1. 获取服务列表后检验准确性,如果信息不准确(如IP有重复),不渲染页面,直接显示错误信息;

  1. 按钮设计:

  • 应用只有1个服务时,所有按钮禁用;

  • 只有下线状态的服务才能激活“删除”按钮;

  • 应用有2个服务并存时,A服务状态正常时,才激活B服务的“下线”和“删除”按钮;

  • 以上按钮设计不仅仅在前端控制,后端“下线”和“删除”操作时也要做相应检查。

好了,等我脱敏上传github吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值