百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

花折 - KubeDoor正式开源:基于AI推荐+专家经验的K8S负载感知与容量管控系统

off999 2025-04-08 17:26 36 浏览 0 评论

花折 - KubeDoor

花开堪折直须折莫待无花空折枝

开思 开源第一弹:基于AI推荐+专家经验的K8S负载感知调度与容量管控系统

概述

花折 - KubeDoor 是一个使用Python + Vue开发,基于K8S准入控制机制的微服务资源管控平台。专注微服务每日高峰时段的资源视角,实现了微服务的资源分析统计与强管控,确保微服务资源的资源申请率和真实使用率一致。

项目仓库:
https://github.com/CassInfra/KubeDoor

架构图

功能描述

采集K8S微服务每日业务高峰时段P95的CPU内存消耗,以及需求、限制值与Pod数。基于采集的数据实现了一个Grafana看板并集成到了WEB UI。

  • 基于日维度采集每日高峰时段P95的资源数据,可以很好的观察各微服务长期的资源变化情况,即使查看1年的数据也很流畅。
  • 高峰时段全局资源统计与各资源TOP10
  • 命名空间级别高峰时段P95资源使用量与资源消耗占整体资源的比例
  • 微服务级别高峰期整体资源与使用率分析
  • 微服务与Pod级别的资源曲线图(需求值,限制值,使用值)


每日从采集的数据中,获取最近10天各微服务的资源信息,获取资源消耗最大日的P95资源,作为微服务的需求值写入数据库。

  • 基于准入控制机制实现K8S微服务资源的真实使用率和资源申请需求值保持一致,具有非常重要的意义。
  • K8S调度器通过真实的资源需求值就能够更精确地将Pod调度到合适的节点上,避免资源碎片,实现节点的资源均衡
  • K8S自动扩缩容也依赖资源需求值来判断,真实的需求值可以更精准的触发扩缩容操作
  • K8S的保障服务质量(QoS机制)与需求值结合,真实需求值的Pod会被优先保留,保证关键服务的正常运行

实现了一个K8S管控与展示的WEB UI。

  • 对微服务的最新、每日高峰期的P95资源展示,以及对Pod数、资源限制值的维护管理。
  • 支持即时、定时、周期性任务执行微服务的扩缩容和重启操作。
  • 基于NGINX basic认证,支持LDAP,支持所有操作审计日志与通知。
  • 在前端页面集成Grafana看板,更优雅的展示与分析采集的微服务数据。

当微服务更新部署时,基于K8S准入控制机制对资源进行管控【默认不开启】:

  • 控制每个微服务的Pod数、需求值、限制值必须与数据库一致,以确保微服务的真实使用率和资源申请需求值相等,从而实现微服务的统一管控与Pod的负载感知调度均衡能力。
  • 对未管控的微服务,会部署失败并通知,必须在WEB UI新增微服务后才能部署。(作为新增微服务的唯一管控入口,杜绝未经允许的新服务部署。)
  • 通过本项目基于K8S准入机制的扩展思路,大家可以自行简单定制需求,即可对K8S实现各种高灵活性与扩展性附加能力,诸如统一或者个性化的拦截、管理、策略、标记微服务等功能。
K8S准入控制逻辑

如果觉得项目不错,麻烦动动小手点个Star 如果你还有其他想法或者需求,欢迎在 issue 中交流

项目仓库:

https://github.com/CassInfra/KubeDoor

2025 KubeDoor RoadMap

  • 多K8S支持:在统一的WebUI对多K8S做管控和资源分析展示。

  • 英文版发布

  • 集成K8S实时监控能力,实现一键部署,整合K8S实时资源看板,接入K8S异常AI分析能力。

  • 微服务AI评分:根据资源使用情况,发现资源浪费的问题,结合AI缩容,降本增效,做AI综合评分。

  • 微服务AI缩容:基于微服务高峰期的资源信息,对接AI分析与专家经验,计算微服务Pod数是否合理,生成缩容指令与统计。

  • 根据K8S节点资源使用率做节点管控与调度分析

  • 采集更多的微服务资源信息: QPS/JVM/GC

  • 针对微服务Pod做精细化操作:隔离、删除、dump、jstack、jfr、jvm

部署说明

0. 需要已有 Prometheus监控K8S

需要有cadvisorkube-state-metrics这2个JOB,才能采集到K8S的以下指标

  • container_cpu_usage_seconds_total

  • container_memory_working_set_bytes

  • container_spec_cpu_quota

  • kube_pod_container_info

  • kube_pod_container_resource_limits

  • kube_pod_container_resource_requests

1. 部署 Cert-manager

用于K8S Mutating Webhook的强制https认证

1kubectl apply -f https://StarsL.cn/kubedoor/00.cert-manager_v1.16.2_cn.yaml

2. 部署 ClickHouse 并初始化

用于存储采集的指标数据与微服务的资源信息

1# 默认使用docker compose运行,部署在/opt/clickhouse目录下。
2curl -s https://StarsL.cn/kubedoor/install-clickhouse.sh|sudo bash
3# 启动ClickHouse(启动后会自动初始化表结构)
4cd /opt/clickhouse && docker compose up -d

如果已有ClickHouse,请逐条执行以下SQL,完成初始化表结构

1https://StarsL.cn/kubedoor/kubedoor-init.sql

3. 部署KubeDoor

1wget https://StarsL.cn/kubedoor/kubedoor.tgz
2tar -zxvf kubedoor.tgz
3# 编辑values.yaml文件,请仔细阅读注释,根据描述修改配置内容。
4vim kubedoor/values.yaml
5# 使用helm安装(注意在kubedoor目录外执行。)
6helm install kubedoor ./kubedoor
7# 安装完成后,所有资源都会部署在kubedoor命名空间。

4. 访问WebUI 并初始化数据

  1. 使用节点IP+kubedoor-web的NodePort访问,默认账号密码都是kubedoor

  2. 点击配置中心,输入需要采集的历史数据时长,点击采集并更新,即可采集历史数据并更新高峰时段数据到管控表。

默认会从Prometheus采集10天数据(建议采集1个月),并将10天内最大资源消耗日的数据写入到管控表,如果耗时较长,请等待采集完成或缩短采集时长。重复执行采集并更新不会导致重复写入数据,请放心使用,每次采集后都会自动将10天内最大资源消耗日的数据写入到管控表。

  1. 点击管控状态的开关,显示管控已启用,表示已开启。

注意事项

  • 部署完成后,默认不会开启管控机制,你可以按上述操作通过WebUI 来开关管控能力。特殊情况下,你也可以使用kubectl来开关管控功能:

    1# 开启管控
    2kubectl apply -f https://StarsL.cn/kubedoor/99.kubedoor-Mutating.yaml
    3
    4# 关闭管控
    5kubectl delete mutatingwebhookconfigurations kubedoor-webhook-configuration
  • 开启管控机制后,目前只会拦截deployment的创建,更新,扩缩容操作;管控pod数,需求值,限制值。不会控制其它操作和属性。

  • 开启管控机制后,通过任何方式对Deployment执行扩缩容或者更新操作都会受到管控。

  • 开启管控机制后,扩缩容或者重启Deployment时,Pod数优先取指定Pod字段,若该字段为-1,则取当日Pod字段。

管控例子

  • 你通过Kubectl对一个Deployment执行了扩容10个Pod后,会触发拦截机制,到数据库中去查询该微服务的Pod,然后使用该值来进行实际的扩缩容。(正确的做法应该是在KubeDoor-Web来执行扩缩容操作。)

  • 你通过某发布系统修改了Deployment的镜像版本,执行发布操作,会触发拦截机制,到数据库中去查询该微服务的Pod数,需求值,限制值,然后使用这些值值以及新的镜像来进行实际的更新操作。

管控原则

  • 你对deployment的操作不会触发deployment重启的,也没有修改Pod数的:触发管控拦截后,只会按照你的操作来更新deployment(不会重启Deployment)

  • 你对deployment的操作不会触发deployment重启的,并且修改Pod数的: 触发管控拦截后,Pod数会根据数据库的值以及你修改的其它信息来更新Deployment。(不会重启Deployment)

  • 你对deployment的操作会触发deployment重启的: 触发管控拦截后,会到数据库中去查询该微服务的Pod数,需求值,限制值,然后使用这些值以及你修改的其它信息来更新Deployment。(会重启Deployment)

鸣谢

感谢如下优秀的项目,没有这些项目,不可能会有KubeDoor

  • 后端技术栈

  • Flask

  • Grafana

  • Nginx

  • 前端技术栈

  • Vue

  • Element Plus

  • pure-admin

  • 特别鸣谢

  • CassTimeKubeDoor的诞生离不开开思的支持。


相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: