Flawless - Kubernetes AI SRE 自动运维控制平面
William-Lu-stack/Flawless
为 Kubernetes 和云基础设施打造的 AI 原生 SRE 控制平面,将告警、证据收集、拓扑分析、人工审批、自动修复和恢复验证连接成可审计的 AgenticOps 闭环
成熟度:维护活跃,4天前最新提交,当前版本5.0.9,开放问题2个
项目体检
部署 · 基于 Docker 多阶段构建,前端 Node.js 静态产物 + Python 后端 + Nginx,支持多架构(amd64/arm64),提供国内镜像加速参数,需配置 Kubernetes 集群连接(Rancher 或 kubeconfig)
成本 · 核心开箱即用:本地 LLM(Ollama/vLLM)+ Kubernetes API,可选外部服务包括 Prometheus/Loki/Tempo/Grafana、自托管 Langfuse、CMDB、Rancher 多集群管理,凭证加密需 Fernet 密钥
技术 · Python 3.13 + FastAPI + Kubernetes SDK + LangChain/LangGraph + MCP,前端 TypeScript + Vite,集成 Argo Rollouts 灰度发布
许可 · PolyForm Noncommercial License,禁止商业用途,开源但不可用于盈利性生产环境或 SaaS 服务
活跃 · 无正式 release 标签,但代码活跃(4天前推送),2位核心贡献者,852 stars,版本号已迭代至 5.0.9
解决什么
传统 SRE 运维面临"告警-人工排查-手动修复-事后复盘"的低效循环:告警系统只报问题不给方案,工程师需要手动收集日志、检查拓扑、猜测根因,修复后缺乏自动化验证,事故经验难以沉淀。Flawless 通过 AI Agent 将整个流程自动化:从 Kubernetes 告警触发开始,自动收集 Pod 日志、Workload 状态、网络拓扑等证据,LLM 分析根因并生成修复预案,人工审批后执行变更(支持 Argo Rollouts 灰度发布),最后通过 Prometheus SLO 验证恢复效果,所有步骤可审计。这不是另一个"AI 聊天助手给建议",而是真正执行变更并验证结果的闭环系统。
为何火
在 HN 上引发 304 点赞和 117 条讨论(注意:讨论的是同名 Rust 持久化执行引擎项目,与本 Python Kubernetes 项目不同),核心争议在于"副作用标记"和 WebAssembly 沙箱的可靠性。本项目的火点在于:1) AI SRE 实战落地,不是 Demo 而是包含真实 K3s 测试用例的生产级代码;2) 中国本地化友好,支持 Ollama 等本地 LLM、内置阿里云/DaoCloud 镜像加速、无需翻墙;3) 灰度发布 + SLO 验证,集成 Argo Rollouts 和 Prometheus AnalysisRun,自动回滚失败变更;4) 可审计性,每个修复动作都有证据链、审批记录和恢复证明。Windmill.dev 创始人在 HN 评论中认可其"轻量级持久化"设计,比传统工作流引擎更适合基础设施场景。
核心功能
- 智能故障诊断:从 Kubernetes Events/Pod 日志/Workload 状态自动提取证据,LLM 分析根因(CrashLoop、OOMKilled、网络故障等),支持多 Pod 关联诊断
- Skill 路由系统:内置可执行修复策略库(如调整资源限制、修复权限、回滚镜像),根据根因自动匹配 Skill,支持自定义策略
- 人工审批门禁:高风险操作(如修改 securityContext、扩容副本)需双重审批,支持爆炸半径评估
- 灰度发布集成:通过 Argo Rollouts 执行金丝雀部署,每批次运行 Prometheus AnalysisRun 验证 SLI,失败自动回滚并恢复 Deployment 模板
- 恢复验证:修复后跟踪新 Pod 日志、Workload 收敛状态、稳定性窗口,生成恢复证明报告
- 多集群管理:支持 Rancher API 或直接上传 kubeconfig,凭证 Fernet 加密存储
- 可观测性融合:集成 Prometheus/Loki/Tempo/Grafana,支持 Beyla 网络拓扑分析和 CMDB 关联
安装
前置条件:Docker、Kubernetes 集群(K3s/K8s)、本地 LLM(推荐 Ollama)
# 1. 克隆仓库
git clone https://github.com/William-Lu-stack/Flawless.git
cd Flawless
# 2. 配置环境变量
cp .env.example .env
# 编辑 .env:设置 LLM_API_BASE(如 http://localhost:11434/v1)、RANCHER_URL 或准备 kubeconfig
# 3. 国内网络构建镜像(使用阿里云镜像加速)
docker build \
--build-arg PYTHON_IMAGE=docker.m.daocloud.io/library/python:3.13-slim \
--build-arg NGINX_IMAGE=docker.m.daocloud.io/nginxinc/nginx-unprivileged:stable-alpine3.23 \
--build-arg DEBIAN_MIRROR=https://mirrors.aliyun.com/debian \
--build-arg PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple \
-t flawless:latest .
# 4. 运行(需挂载集群凭证和持久化目录)
docker run -d \
-p 8080:8080 \
-v $(pwd)/.env:/app/.env \
-v ~/.kube/config:/root/.kube/config:ro \
-v /var/lib/flawless:/var/lib/flawless \
flawless:latest
访问 http://localhost:8080 进入控制台,在"集群接入"页面上传 kubeconfig 或配置 Rancher。
适合谁
- SRE/平台工程团队:需要自动化 Kubernetes 故障处理,减少夜间告警人工介入
- 中小型技术团队:没有专职 SRE,希望 AI 辅助运维决策和执行
- 私有化部署场景:数据敏感不能用云服务,需要本地 LLM + 自托管可观测性栈
- 灰度发布重度用户:已使用 Argo Rollouts,需要 AI 自动分析 SLO 并决策回滚
不适合:1) 纯公有云托管服务(如 EKS Fargate)无 Kubernetes API 访问;2) 需要商业授权的生产环境(PolyForm Noncommercial 禁止商用);3) 期望零配置开箱即用(需要配置 LLM、集群凭证、Prometheus 等)。
社区评价
HN 讨论主要围绕同名 Rust 持久化执行引擎项目,但技术理念有相通之处:
正面观点:
- Windmill.dev 创始人认可"轻量级持久化"设计,认为比传统工作流引擎(如 Temporal)更适合基础设施场景,因为不需要为每个步骤存储完整状态
- 动画演示清晰展示了核心原理(故障检测 → 证据收集 → AI 分析 → 人工审批 → 执行修复 → 验证恢复)
- WebAssembly 沙箱机制提供了"默认防呆"能力,副作用必须显式声明
争议点:
- 副作用标记的可靠性:如果开发者使用非 Flawless 命名空间的函数(如标准库 RNG),系统能否检测到副作用?
- WASM 生态限制:需要使用
flawless::命名空间的函数而非整个 Rust 生态,更像"使用 Rust 语法的脚本运行时" - 与 Temporal 的对比:Temporal 联合创始人曾创建 Amazon Flow Framework(2009)和 Azure Durable Task Framework(2014),技术血统深厚
本 Python 项目的中立评估:代码活跃(4天前更新至 5.0.9),包含真实 K3s 测试用例(如 CrashLoop 修复、权限提升、灰度发布验证),文档详尽(中文技术材料 + Argo Rollouts 配置指南),但缺乏正式 release 标签和广泛社区验证,建议先在测试环境试用。
选型对比
vs PagerDuty/Opsgenie(商业告警平台):
- Flawless:开源自托管,AI 自动分析根因并执行修复,支持本地 LLM
- PagerDuty:SaaS 服务,主要做告警聚合和排班,依赖人工处理
vs Temporal(工作流引擎):
- Flawless:专注 Kubernetes 运维场景,内置 Skill 库和灰度发布,轻量级持久化
- Temporal:通用工作流引擎,需要自己编写业务逻辑,重量级状态存储
vs Keptn/Argo Rollouts(渐进式交付):
- Flawless:AI 驱动的全流程自动化(诊断 + 修复 + 验证),集成 Argo Rollouts
- Keptn:专注交付流程编排,不包含故障诊断和自动修复
取舍:Flawless 适合"希望 AI 自动处理 80% 常见故障"的团队,但 PolyForm Noncommercial 许可禁止商用;若需商业授权或更成熟生态,考虑 Temporal + 自建 AI 层。
已知坑
- 许可证限制:PolyForm Noncommercial 明确禁止商业用途,不能用于盈利性生产环境或 SaaS 服务,需评估法律风险
- LLM 依赖:诊断质量依赖 LLM 能力,小模型(如 Qwen2.5:7B)可能误判复杂故障,建议用 14B+ 模型
- Prometheus 强依赖:灰度发布验证需要 Prometheus + AnalysisTemplate,若无可观测性栈需先搭建
- 凭证管理:kubeconfig 加密需要 Fernet 密钥,生产环境必须放 Kubernetes Secret 而非 .env 文件
- 多集群复杂度:Rancher API 超时或 CMDB 降级可能导致证据收集卡住(5.0.3 已优化为按需探测)
- 恢复验证边界:5.0.8 修复了"旧 Pod 被删除后无法跟踪新 Pod"的问题,但仍需人工确认最终恢复状态
- 国内网络:Dockerfile 默认拉取国外镜像,必须用
--build-arg指定国内镜像源,否则构建失败 - 文档语言混杂:README 中英文混排,部分高级配置(如 Skill 自定义)文档不全
来源:GitHub README + 项目技术文档 + HN 社区讨论(注意区分同名 Rust 项目)
安装方式:docker