kube-deploymentimage:k8simage-operator改良版本
为kubernetes集群中,由deployment方式进行部署的服务提供image版本回滚功能
需求场景
当master节点上存放的yaml无法在使用kubect set image时进行同步更新
官方提供的—record参数仅可能在kubectl set image时使用,回滚还需要额外的回滚操作命令,没有统一的UI界面
服务描述
提供展示部署后所有命名空间下的Deployment的容器镜像信息
提供回滚到对应版本的按钮update
提供本地存储的yaml文件预览(鼠标滑动到对应的yaml路径即可)
清理不需要的镜像版本信息delete(假删除,数据库中还有记录)
修复k8simage-operator中Create,Update event多次触发Reconcile方法
增加对容器列表增加和减少场景的处理
部署配置
需要准备一个mysql5.7的数据库服务,需提前建立好数据库,项目数据库名为:kube-deploymentimage,可使用下面sql进行创建即可。
1 | CREATE DATABASE IF NOT EXISTS `kube-deploymentimage` DEFAULT CHARSET utf8 COLLATE utf8_general_ci; |
由部署文件中的变量MYSQL_HOST、MYSQL_USER、MYSQL_PASSWORD进行传递,例如:
1 | env: |
如果需要开启密码认证,由部署文件中的变量auth.user、auth.password进行传递,如果不需要则去掉此两项配置,例如:
1 | env: |
kube-deploymentimage默认会统计集群中所有的Deployment,yamlfile文件在部署kube-deploymentimage容器时,此处默认挂载了/etc/kubernetes目录到容器中的/etc/kubernetes,使用nodeselector默认调度到master1,即存放yaml的机器。不存在目录也不影响使用
想展示yaml的本地文件内容,需要在deployment中添加 annotations信息,例如:
1 | apiVersion: apps/v1 |
yamlfile.huisebug.io/yamlfile是固定字段,后面是对应的yaml的文件路径(注意:填写挂载到kube-deploymentimage容器中的路径)