运维在版本发布过程中,如果没有专门的发布系统,那在发布时我们通常会关注自己发布的镜像版本是否正确,以及发布之后pod的更新状态,可能会在命令行kubectl get pods去观察,非常不方便。本发布系统可以更直观的帮助发布人员了解发布的详细信息。

UI

前置条件

在使用此系统之前,有两个前置条件

  1. 代码都是通过merge合并到主要分支来实现代码更新的
  2. 镜像已存在于远程仓库中

流程说明

  1. 读取gitlab仓库中所有有权限的项目
  2. 展示远程镜像仓库中该项目下的所有镜像tag
  3. 读取本次提交的merge信息,代码改动,备注等信息展示出来
  4. 选择对应环境和项目以及tag,发布
  5. 该系统调用jenkins项目开始发布(简易发布使用 kubectl set image)
  6. 接收jenkins发布结果展示
  7. 读取k8s集群该应用的状态,展示在右上方

组成

  1. 使用gitlab作为项目元数据,提供项目列表和merge等信息
  2. 使用jenkins作为发布工具
  3. 使用k8s api查看pod状态和image信息

用到的框架组件

前端:

react + ant Design + soctet IO + pubsub-js

后端

python + kubernets API + gitlab API + socket IO + redis + Jenkins Api + 腾讯云镜像仓库 api

项目链接

最后修改:2021 年 11 月 24 日 08 : 51 PM