v2.2新增 LDAP 登录 · K8S 集群级权限

花折 · KubeDoor AI 驱动的
多 K8S 集群
智能管控平台

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

一个平台统一纳管多套 Kubernetes —— 监控、资源管理、告警事件、高峰期资源治理与准入管控一站搞定;内置可审批、可审计的 AI 运维助手,并以标准 MCP 对外开放。

  • MIT
  • Python
  • Vue 3
  • PostgreSQL
  • Kubernetes

示意动画 · 工具名与审批流程取自真实实现,数据仅为演示

  • 63项业务操作接入 AI37 项查询 · 26 项变更
  • 5类通用 K8S 执行器API · CLI · Pod exec
  • 17个 MCP 工具Streamable HTTP + SSE
  • 44条内置告警规则Pod · JVM · Deploy · 节点
  • 4种 IM 通知渠道企微 · 钉钉 · 飞书 · Slack
  • 1个业务数据库PostgreSQL · 另需时序库

// 01 · 架构

控制端一套,集群端按需扩展

控制端与集群端可以装在同一个集群(单集群场景),也可以分开部署,纳管任意多套 Kubernetes。

KubeDoor 2.x 架构图:浏览器和外部 MCP 客户端经 kubedoor-web(nginx 反向代理,登录与权限由 master 统一校验)访问 kubedoor-master 与 kubedoor-ai;各业务集群的 kubedoor-agent 主动以 WebSocket 连接 master,在集群内执行操作并回传事件、日志与实时状态;master 与 kubedoor-ai 共用一个 PostgreSQL,监控数据来自 VictoriaMetrics 或已有 Prometheus,告警经 vmalert、Alertmanager 与 kubedoor-alarm 推送 IM。
左右滑动查看,或点开大图缩放 · 在新标签页打开高清架构图
  • 内置 AI 运维助手

    选定集群用一句话排障与运维,自动联合日志、事件、监控与历史数据定位原因;变更先冻结参数、展示差异,经人工批准才执行,会话与每次操作全程入库审计,模型自由选。同一能力也以标准 MCP 开放。

  • Agent 主动外连

    每个业务集群的 kubedoor-agent 主动以 WebSocket 连接 master(同集群走 Service,跨集群经 Web 入口),统一用内置 Agent 账号认证;控制端默认无需反向访问业务集群。

  • 单一 PostgreSQL

    管控配置、高峰资源、K8S 事件、告警记录、Istio 路由与 AI 会话都存在 PostgreSQL 原生表,不依赖扩展;启动自动建表,事件、告警与高峰快照按保留天数每天清理。

  • 监控栈可内置也可外接

    时序库必需(Deployment 列表、资源总览与高峰采集都依赖它):可一并部署 VictoriaMetrics、vmalert、Alertmanager 与 Grafana,也可对接已有VictoriaMetrics。

// 02 · AI 运维助手

会排障,更守规矩的 K8S 运维助手

在 Web 顶部打开「AI 助手」,选定一个集群,用一句话描述问题。助手自动选择数据来源,联合日志、事件、监控与历史数据定位原因;任何变更都先冻结参数并展示变更预览(K8S API 写入附服务端 Dry-run 差异),默认人工批准后才执行。

一句话运维 K8S

选定集群即可用自然语言提问,每轮只操作所选集群;统一网关覆盖 63 项 KubeDoor 业务操作与 5 类通用执行器,查询类自动执行。

  • K8S API / CRD
  • kubectl
  • istioctl
  • jq · yq · curl · dig · openssl · rg
  • Pod exec

例如这个服务最近频繁重启,结合日志、事件和监控帮我找原因

先审批,再执行

KubeDoor 业务操作与 Pod 内命令展示准确参数和变更预览;通用 K8S API 写入与 kubectl apply 另附服务端 Dry-run 配置差异。批准后按冻结参数原样执行,模型无法偷换。

示意 · 字段与按钮取自真实审批卡,数据仅为演示

平台能力优先

重启、扩缩容、定时 / 周期任务与资源管控优先走 KubeDoor 已验证的接口,覆盖不到才用通用工具,不让模型凭空拼 YAML。

  • restart_deployment
  • scale_deployment
  • cron_deployment_restart
  • resource_config_update

绝不盲目重放

超时或断线导致写入结果未知时,标记「执行结果不确定」,本轮不再执行任何写操作、也不会换通道重试,需先查询实际状态;服务重启也不会重发已派发的操作。

模型自由选

任意兼容 OpenAI Chat Completions、支持工具调用的模型均可接入,含免鉴权的自建模型;DeepSeek 思考模式专项适配,「测试连接」实测工具调用。

Agent 直通 · 加密直连

在线 Agent 以集群内身份执行,无需上传 kubeconfig;也可上传 kubeconfig(AES-256-GCM 加密保存)直连,Agent 离线照样可用。

历史 + 实时 + 监控联合分析

入库的资源与 JVM 快照、历史事件与告警,加上实时日志、事件与 VictoriaMetrics 自由 MetricsQL 查询,服务端强制限定当前集群。

全局记忆 · DeepAgents

会话一键总结为可编辑的经验草稿,审核后存入全局记忆、下一轮按需引入;基于 DeepAgents,内置运维 Skill 与子 Agent 并行调查。

// 安全护栏

每一次变更,都可审批、可追溯

  1. 1只读查询自动执行
  2. 2变更请求冻结完整参数
  3. 3变更预览API 写入附 Dry-run 差异
  4. 4批准执行30 分钟内有效
  5. 5派发账本同一动作只派发一次
  6. 6结果核验不确定就先查询,不重放
  • 按集群授权,只读集群无法发起变更
  • 所选集群是本轮硬边界
  • Pod exec / curl / openssl 一律审批
  • 参数数组执行,不开放 shell
  • 模型 API Key 不落服务端,流式输出、checkpoint 与日志中全程脱敏
  • 「自动批准执行」需对该集群有读写权限并手动勾选,仅当前页面有效
  • 会话、动作与事件全部入库

// 标准 MCP

一个地址,接入主流 AI 客户端

同一套工具网关、权限、审批与审计,以标准 MCP 对外开放。外部 MCP 默认开启(ENABLE_MCP="true"),关闭它只会撤掉对外入口,不影响网页里的 AI 助手。

  • /mcpStreamable HTTP · 推荐
  • /sseSSE · 兼容旧客户端
  • 复用 Web 账号(本地或 LDAP,Basic 认证),按集群权限执行:只读集群只能调用查询类工具,「无」权限的集群不可见
  • 保留 1.x 的 16 个工具名,新增统一工具 kubedoor_tool 与 Skill 资源 skills://kubedoor-k8s
  • 写操作返回待批准动作与浏览器链接,用同一账号在 Web 中批准后才执行
阅读 AI 助手与 MCP 文档
{
  "mcpServers": {
    "kubedoor": {
      "url": "http://<节点IP>:<Web NodePort>/mcp",
      "headers": {
        "Authorization": "Basic <base64(用户名:密码)>"
      }
    }
  }
}

示例按接口推导,字段名以各客户端文档为准;只支持 SSE 的客户端把地址改为 /sse。生产环境建议为 MCP 单独建账号,并在入口前置 HTTPS。

// 03 · 全栈能力

一个平台,管好多套 K8S

从监控大屏到准入控制,从实时日志到节点均衡,覆盖 K8S 日常运维的完整链路;其中的查询与运维操作,大多也能直接交给 AI 助手完成。

多集群统一监控 · 总览大屏 · Grafana

资源总览大屏汇总各集群的节点、工作负载、Pod 与 PVC,标出风险节点、Top10 异常告警与事件,30 秒自动刷新;另内嵌 K8S、节点与高峰资源三套 Grafana 看板。指标来自内置 VictoriaMetrics,也可对接已有 Prometheus。

K8S 监控看板(Grafana)截图:节点内存与 CPU 比例、命名空间资源统计、工作负载与节点数量、网络流量曲线

K8S 资源管理

Deployment、Pod、Service、Ingress、ConfigMap、StatefulSet、DaemonSet 与节点统一管理,Monaco 在线编辑 YAML,支持批量删除、扩缩容与重启;Istio VirtualService 管理为试用功能。

实时状态 · Pod 日志

Deployment 就绪与滚动状态经 K8S Watch 实时推送;Pod 日志实时跟随,异常多色标记、关键字定位,可按容器或整个 Deployment(全部 Pod 聚合)查看,单个 Pod 的完整日志可 gzip 下载。

发布管控

镜像更新自动列出仓库最近 20 个标签(阿里云 ACR、华为云 SWR、Harbor);只读账号可按集群、时段与用户授权发布,进度推送 IM。

定时任务 · Pod 隔离 · 弹性

扩缩容与重启支持立即、定时、周期执行;Pod 一键隔离保留现场,可同时临时扩容、调度到指定节点;支持华为云 CCI 弹性扩容。

告警聚合 · 事件告警 · 告警屏蔽

内置 44 条告警规则,Pod 告警按日聚合、可标记处理;K8S 事件全量入库并按 JSON 规则告警;指标告警支持 Alertmanager 风格屏蔽(= != =~ !~),命中仍入库留痕。

高峰资源画像 · 准入控制

每天采集业务高峰时段的资源数据,取近 10 天集群 CPU 总消耗最大的一天写入管控表;在「Agent管理」开启「准入控制」后,Deployment 创建与发布时由 Mutating Webhook 按管控表改写副本数和第一个容器的 requests / limits,扩缩容时只改写副本数,让资源申请与真实使用保持一致。

  1. 每日高峰采集CPU / 内存取 P80
  2. 近 10 天最大日写入管控表
  3. 准入 Webhook改写副本数 · requests · limits

JVM 参数管控 · Java 诊断

采集并管控 Xms、Xmx、Xss、MaxMetaspaceSize,开启准入控制后在下次发布或重启时替换已有参数;展示堆与 G1 Eden 使用率,一键 Dump、Jstack、JFR。

节点负载均衡

按节点 CPU 极差判断失衡,迭代生成迁移计划(整体标准差下降才采纳),分批隔离式迁移并轮询新 Pod 就绪;手动触发,需 metrics-server。

账号权限与审计2.2

本地账号与 LDAP 统一登录,按用户 × 集群授权「读写 / 只读 / 无」,Web、Grafana、AI 助手与 MCP 共用一套权限;登录、权限变更与所有写操作(含越权被拒)进入操作审计,AI 操作的参数、审批与结果全部入库。

// 2.2 新增 · 账号与权限

LDAP 统一登录,权限细到每个集群

登录、会话与权限改由 master 统一管理,nginx 只做反向代理:Web、Grafana、AI 助手与 MCP 共用一个入口、一套账号、一套权限。

  • 本地账号 + LDAP:Web 上配置并一键测试,本地账号优先,LDAP 用户首次登录自动开通
  • 全局权限「管理员 / 读写 / 只读 / 无」兜底,再按用户 × 集群单独授权,单独授权优先
  • 「无」权限的集群在页面、下拉框、告警与 AI 助手中都不可见;只读集群上 AI 只查询、不变更
  • 登录、账号与权限变更、所有写操作(含越权被拒)进入操作审计,默认保留 180 天
  • 全新水墨登录页:HttpOnly 会话、7 天内免登录、连续输错自动锁定
阅读账号与权限说明
KubeDoor 2.2 登录页截图:水墨宣纸背景,左侧是「花折」书法与 KubeDoor 标题,毛玻璃登录框位于中右侧发光的月洞门中

// 04 · 界面一览

看得见的多集群全景

点击截图查看大图,可用 ← / → 键或左右滑动切换,Esc 关闭。点击截图查看大图,左右滑动切换。

截图来自真实环境,集群名、IP、域名等已遮挡;标注 1.x 的为早期界面,细节以当前版本为准。

// 05 · 三步部署

一个脚本,三步上线

一份配置文件 + 一个 bash 脚本完成部署,不再需要 Helm。PostgreSQL 独立运行在 K8S 之外,也可以直接使用现成的数据库。

  • 前置条件
  • K8S ≥ 1.21
  • bash 4+ 与 kubectl
  • 时序库内置 VictoriaMetrics 或已有 Prometheus
  • StorageClass启用内置 VictoriaMetrics 时需要
  • metrics-server用量列、节点均衡
  • 镜像仅 amd64
  1. 01

    起数据库

    在一台 K8S 节点能访问到的机器上用 docker compose 启动 PostgreSQL。无需手动建表,master 与 kubedoor-ai 启动时会自动建表。

    bash · 数据库主机
    git clone \
      https://github.com/CassInfra/KubeDoor.git
    cd KubeDoor/deploy/postgres
    cp .env.example .env
    # 至少改掉 PG_PASSWORD
    vi .env
    docker compose up -d
  2. 02

    装控制端

    PG_HOST 要填 K8S 里的 Pod 能访问到的地址(不能是 127.0.0.1)。装完会打印 Web 控制台地址与内置管理员 kubedoor / kubedoor,首次登录会强制修改口令;之后在「系统管理」里添加账号、接入 LDAP、按集群授权。内置 Agent 账号的出厂口令是公开的,上线前请在「用户与权限」里重置,并同步修改各集群的 MASTER_WS。

    bash · 可执行 kubectl 的机器
    # 与数据库不在同一台机器时,先在这里 git clone 仓库
    cd KubeDoor/deploy
    # 从模板复制一份配置,再改 PG_HOST / PG_PASSWORD / MSG_TOKEN 等
    cp kubedoor.conf.example kubedoor.conf
    vi kubedoor.conf
    ./install.sh master
  3. 03

    装集群端

    到每个业务集群执行。K8S_NAME 是集群唯一标识;MASTER_WS 必须带内置 Agent 账号,同集群填 ws://Up4biLko1dNh:<口令>@kubedoor-master.kubedoor,跨集群填 ws://Up4biLko1dNh:<口令>@<控制端节点IP>:<Web NodePort>(装控制端后脚本会打印这两行),跨集群还要把 REMOTE_WRITE_URL 改成控制端时序库的外部地址(用内置 VictoriaMetrics 时同样会打印)。

    bash · 每个业务集群
    # 改 K8S_NAME 和 MASTER_WS(带 Agent 账号口令;跨集群再改 REMOTE_WRITE_URL);换机器执行时先从 kubedoor.conf.example 复制
    vi kubedoor.conf
    ./install.sh agent

先看看会生成什么

./install.sh render master -o /tmp/out 只渲染 YAML 不部署,适合改完配置后先 review;./install.sh status 查看部署状态。

1.x(Helm)用户请全新安装

2.x 的数据库已从 ClickHouse / MySQL 换成 PostgreSQL,旧版 Helm chart 不能与新代码混用,旧数据也不能直接沿用。请先在旧版「Agent管理」关闭「准入控制」,再 helm uninstall 旧版本,然后按全新安装部署。

更多场景

已有 Prometheus / VictoriaMetrics、离线内网、账号与权限、从旧版升级等,见 完整部署文档。

// 06 · 版本演进

从资源管控到 AI 运维

  1. 2.2.0 · 当前

    LDAP 登录与 K8S 集群级权限

    登录与权限改由 master 统一管理:本地账号 + LDAP,全局权限兜底、按用户 × 集群授权「读写 / 只读 / 无」,Web、Grafana、AI 助手与 MCP 共用一套权限;新增操作审计、Agent 账号认证与全新水墨登录页。

  2. 2.1.0

    内置 AI 运维助手,MCP 并入 AI 服务

    Web 内置 AI 助手(审批、Dry-run 差异、全局记忆、kubeconfig 加密直连);外部 MCP 并入 kubedoor-ai,新增 Streamable HTTP 入口并接入读写权限与浏览器审批;Deployment 实时状态推送;JVM 启动参数管控与高峰期堆、G1 Eden 使用率。

  3. 2.0.0

    统一 PostgreSQL,脚本化部署

    移除 ClickHouse / MySQL,统一使用 PostgreSQL;install.sh 取代 Helm;新增告警屏蔽、节点负载均衡、华为云 CCI 弹性扩容与 Pod 日志下载。

  4. 1.7.0

    K8S 资源总览大屏

    多集群资源总览大屏:风险节点、最高使用率、Top10 异常 Pod 告警与 K8S 事件、近 10 日告警趋势;重构 Agent 架构,增加接口缓存与分页。

  5. 1.6.0

    全面的 K8S 资源管理

    Deployment、Pod、Service、Ingress、ConfigMap、StatefulSet、DaemonSet、节点与 Istio 的增删改查及批量操作。

  6. 1.5.2

    K8S 事件监控与告警

    K8S 事件采集分析与规则告警;镜像更新自动获取标签,并可按账号、时段授权;Istio VirtualService 管理与同步(试用);新增 Slack 通知与暗黑模式。

  7. 1.3.6

    Pod 实时日志

    Pod 实时日志跟踪,支持关键字定位与过滤;优化高峰期资源采集算法。

  8. 1.3.0

    MCP 体验版

    首次以 MCP 接入大模型客户端,用对话方式操作 K8S 集群。

  9. 1.1.0

    多集群新架构,准入控制回归

    1.0 起改为多 K8S 集群统一管控架构(统一监控、告警聚合、高峰期资源管控);1.1 基于 K8S 准入控制,让微服务 Pod 数、需求值、限制值与高峰资源保持一致。

  10. 0.2.0

    正式开源

    以基于 K8S 准入控制的微服务资源管控平台在 GitHub 开源,聚焦每日高峰时段的资源;同月 0.3.0 加入多 K8S 集群统一监控、告警与通知。

查看全部版本发布记录

// 07 · 文档与社区

从这里开始

// 交流群

一起把 KubeDoor 做得更好

觉得项目不错,欢迎点个 Star;有想法或需求,欢迎在 Issue 中交流。加作者微信或关注公众号「运维如诗」加入交流群。

三个二维码:作者微信、KubeDoor 赞赏码、公众号「运维如诗」

// 贡献者

感谢每一位贡献者

特别鸣谢 CassTime 开思:KubeDoor 的诞生离不开开思的支持。

也感谢 Python、AIOHTTP、Vue、Pure Admin、Element Plus、Kubernetes、VictoriaMetrics、Grafana、PostgreSQL、Nginx、DeepAgents 等优秀的开源项目。