为kubernetes集群部署提供版本回滚功能

需求场景

  1. 当master节点上存放的yaml无法在使用kubect set image时进行同步更新

  2. 官方提供的—record参数仅可能在kubectl set image时使用,回滚还需要额外的回滚操作命令,没有统一的UI界面

功能描述

  1. 提供展示部署后所有命名空间下的Deployment的容器镜像信息

  2. 提供回滚到对应版本的按钮update

  3. 提供本地存储的yaml文件预览(鼠标滑动到对应的yaml路径即可)

  4. 清理不需要的镜像版本信息delete(假删除,数据库中还有记录)

UI效果预览

部署要求

K8simage-operator默认会统计集群中所有的Deployment,yamlfile文件在部署k8simage-operator容器时,此处默认挂载了/etc/kubernetes目录到容器中的/etc/kubernetes,使用nodeselector默认调度到master1,即存放yaml的机器。

想展示yaml的本地文件内容,需要在deployment中添加  annotations信息,例如:   

1
2
3
4
5
6
7
8
9
10
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nginx
version: v1
annotations:
yamlfile.huisebug.io/yamlfile: /etc/kubernetes/nginx/test-k8s-nginx.yaml
name: nginxredis

yamlfile.huisebug.io/yamlfile是固定字段,后面是对应的yaml的文件路径(注意:挂载到k8simage-operator后路径是容器中的路径)

项目地址

https://github.com/huisebug/k8simage-operator.git