go语言开发的的k8s集群管理工具,基于web可视化的方式对k8s集群进行管理,简化k8s集群操作难度
同时整合Harbor与 prometheus实现镜像管理和仪表盘监控
开发环境说明:
- go语言版本:go1.19 windows/amd64
- 编译环境:Linux
- 开发工具:goland
go get -u github.com/gin-gonic/gin@v1.8.1
go get github.com/spf13/viper@v1.13.0
go get k8s.io/client-go@v0.20.4
- 命名空间列表接口
- Pod创建
- Pod编辑 (更新/升级)
- Pod查看-详情 展示 podrequest 数据 用于重新创建
- Pod查看-列表
- Pod删除
接口调优:
- pod更新会多出一个挂载卷 (serviceAccount)
- 计算那些是emtydir volume mount 进行非emtydir过滤
- 更新pod超时
- pod删除等待时间不确定,改为强制删除,减少删除等待时间,防止前端删除超时
- pod列表支持关键字搜索
- node列表/详情(kubectl get nodes / kubectl describe node -node-x)
- node标签管理(kubectl label node node-x label-x=label-value-x)
- 所有的标签上传
- node污点(taint)管理
- 查看node上所有的Pod(kubectl get pod -n ns-x -o wide)
pod管理接口改动:
- pod新增容忍(tolerations)参数
- pod选择哪种调度方式:nodeName/nodeSelector/nodeAffinity
ConfigMap
- 新增|修改
- 查询(列表|详情)
- 删除
Secret
- 新增|修改
- 查询(列表|详情)
- 删除
Pod管理接口改动:
- 新增ConfigMap和ConfigMapKeY
- 新增Secret和SecretKey
PersistentVolume
- 创建
- 删除
- 查询--列表
PersistentVolumeClaim
- 创建
- 删除
- 查询--列表
StorageClass
- 创建
- 删除
- 查询--列表
pod管理接口改动:
- Pod管理 (卷管理部分逻辑新增存储卷支持,支持
emptydir|confiMap|secret|hostPath|downward|pvc
)
优化点:
- downward fileRefPath没有显示
- PVC选择PV或SC只能二选一
- SC PVC PV 添加keyword搜索字段
- PV显示StorageClassName字段
Service
- 创建/更新
- 删除
- 查询 (列表和详情)
Ingress
- 创建/更新
- 删除
- 查询 (列表和详情)
IngressRoute(traefik的自定义资源)
- 创建/更新
- 删除
- 查询 (列表和详情)
- Middleware的查询接口
自定义资源接口详情参考文档: https://github.com/kubernetes-client/python/blob/master/kubernetes/README.md
StatefulSet
- 创建/更新
- 删除
- 查询 (列表和详情)
Deployment
- 创建/更新
- 删除
- 查询 (列表和详情)
DaemonSet
- 创建/更新
- 删除
- 查询 (列表和详情)
Job
- 创建/更新
- 删除
- 查询 (列表和详情)
CronJob
- 创建/更新
- 删除
- 查询 (列表和详情)
在集群内初始化,不需要知道.kube/config
ServiceAccount
- 创建
- 删除
- 查询(列表)
Role/ClusterRole
- 创建/更新
- 删除
- 查询(详情/列表)
RoleBinding/ClusterRoleBinding
- 创建/更新
- 删除
- 查询(详情/列表)
通过kubebuilder脚手架开发数据备份服务
实现按指定时间与间隔,将数据源备份到目标存储源
此处配置的数据源为mysql8.0, 目标存储源为oss
在管理平台整合Harbor v2实现容器镜像管理
- 集成HarborAPI
- Projects 列表查询(分页|模糊查询)
- Repositories 列表查询(分页|模糊查询)
- Artifacts 列表查询(分页|模糊查询)
- 镜像匹配接口(用户Pod输入镜像信息时,自动匹配)
在管理平台实现监控信息展示,整合prometheus
- 基础信息查看(k8s版本信息,集群初始化时间等)
- 各资源的统计信息
- 集群pod、cpu、内存耗用情况(瞬时)
- 安装metrics-server
- 调用metrics-server接口,计算集群的cpu和内存的耗用
- 集群 cpu、内存变化趋势
- 安装prometheus
- 提供prometheus pull 数据的接口(exporter)
- 调用提供prometheus 查询指标统计数据