运维在版本发布过程中,如果没有专门的发布系统,那在发布时我们通常会关注自己发布的镜像版本是否正确,以及发布之后pod的更新状态,可能会在命令行kubectl get pods去观察,非常不方便。本发布系统可以更直观的帮助发布人员了解发布的详细信息。
UI
前置条件
在使用此系统之前,有两个前置条件
- 代码都是通过merge合并到主要分支来实现代码更新的
- 镜像已存在于远程仓库中
流程说明
- 读取gitlab仓库中所有有权限的项目
- 展示远程镜像仓库中该项目下的所有镜像tag
- 读取本次提交的merge信息,代码改动,备注等信息展示出来
- 选择对应环境和项目以及tag,发布
- 该系统调用jenkins项目开始发布(简易发布使用 kubectl set image)
- 接收jenkins发布结果展示
- 读取k8s集群该应用的状态,展示在右上方
组成
- 使用gitlab作为项目元数据,提供项目列表和merge等信息
- 使用jenkins作为发布工具
- 使用k8s api查看pod状态和image信息
用到的框架组件
前端:
react + ant Design + soctet IO + pubsub-js
后端
python + kubernets API + gitlab API + socket IO + redis + Jenkins Api + 腾讯云镜像仓库 api
2 条评论
不错不错,可以了解一下DHorse(https://github.com/tiandizhiguai/dhorse), 是一个开源的多云云原生应用管理平台和发布平台,部署简单,快速易用。
DHorse(GitHub - tiandizhiguai/dhorse: 一个简单易用的DevOps开发平台)也是一个基于k8s的自动化开发平台。