sajjadm624/Kubecrash

GitHub: sajjadm624/Kubecrash

KubeCrash 是一个基于浏览器的 Kubernetes 事件响应模拟与 CKA 备考平台,通过交互式终端闯关和结构化课程帮助学习者在实战中掌握 kubectl 排障技能。

Stars: 1 | Forks: 0

# KubeCrash ![技术栈](https://img.shields.io/badge/stack-FastAPI%20%2B%20React%20%2B%20xterm.js-blue) ![Python](https://img.shields.io/badge/python-3.11%2B-green) ![Node](https://img.shields.io/badge/node-18%2B-green) ![许可证](https://img.shields.io/badge/license-MIT-lightgrey) ## 什么是 KubeCrash? KubeCrash 是一个 **Kubernetes 事件训练平台**,旨在将学习者培养为自信的运维人员。 它在一个体验中结合了两种模式: - **事件游戏 (Incident Game)** — 通过真实的 `kubectl` 命令流程进行压力测试排障 - **CKA 学习之旅** — 跨 CKA 考纲的结构化、逐领域进阶学习 无需本地集群设置。一切都在浏览器中运行,模拟逻辑专为实际决策而调优。 ## 快速开始 只需几分钟即可在本地运行 KubeCrash。 ### 1. 后端 (FastAPI + WebSocket) ``` python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r backend/requirements.txt uvicorn backend.main:app --reload --port 8000 ``` ### 2. 前端 (React + Vite) ``` cd frontend npm install npm run dev ``` 打开 **http://localhost:5173** ## 事件游戏 — 命令循环 1. 从关卡选择界面选择一个事件 2. 像阅读值班交接一样阅读简报 3. 运行 `kubectl` 命令以隔离根本原因 4. 在计时器到期前应用修复 5. 提交并在排行榜上比较结果 ### 关卡 | # | 标题 | 概念 | |---|-------|---------| | 1 | 黎明时分的崩溃 | CrashLoopBackOff, 环境变量 | | 2 | 隐形的服务 | Label selectors, endpoints | | 3 | OOM 死神 | OOMKilled, 资源限制 | | 4 | 幽灵镜像 | ImagePullBackOff, rollback | | 5 | 死亡节点 | 节点生命周期, drain | ## CKA 学习之旅 专为操作熟练度而构建的结构化 CKA 备考,而非被动阅读。 ### 功能 - 跨越 **初级 → 基础 → 中级** 轨道的 15 节结构化课程 - 为每条命令路径提供 **模拟 `kubectl` 输出** 的交互式 shell - 每个检查点提供 **为何使用此命令** 的解释,以快速构建心智模型 - 带有实时动词/资源/标志拆解的 **命令语法教练** - **课程回顾测验**,在继续前进之前巩固理解 - 限时 **迷你模拟考** 和完整的 **120 分钟加权 CKA 模拟考** - **自适应提示模式**:`beginner`、`standard`、`exam`、`adaptive` - 按课程领域更新的 **实时架构图** - 通过 localStorage 持久化保存分数、连续记录、徽章和证书状态 - 课程直接链接到 Kubernetes 官方文档 - 内置 30 天学习路线图 ### CKA 考纲覆盖率 | 领域 | 权重 | |--------|--------| | 故障排除 | 30% | | 集群架构、安装和配置 | 25% | | 服务与网络 | 20% | | 工作负载与调度 | 15% | | 存储 | 10% | ### 课程轨道 | 轨道 | 课程 | |-------|---------| | 初级 | 课程 0:Kubernetes 从零开始 | | 基础 | 课程 1–6:环境变量、服务、资源、RBAC、PVC、Ingress | | 中级 | 课程 7–14:Taints、Rollout、ConfigMaps、StatefulSets、DNS、升级、TLS | ## KubeCrash 精通路线图 KubeCrash 最初以专注的事件场景入手,让新手入门变得更平易近人。 KubeCrash 现在正扩展为一个完整的精通平台,具备可衡量的技能增长、作品集证明和基于角色的路径。 ### 北极星目标 - 培养学习者应对真实的生产事件,而不是死记硬背 - 在平台、安全、运维和交付方面建立具备就业竞争力的信心 - 产出能证明能力的作品集产出物(回顾报告、运维手册、毕业项目) - 通过长期展现的表现来衡量掌握程度 ### 产品演进图 | 阶段 | 体验 | 范围 | |------|------------|-------| | 1. 新手入门 | 事件游戏介绍 | 5 个快速入门事件 | | 2. 核心训练 | CKA 学习之旅 | 15 节课程 + 模拟考 | | 3. 高级轨道 | 事件案例学院 | 4 个轨道 x 4 节课程 | | 4. 精通平台 | 角色路径 + 毕业项目 + 技能图谱 | 60+ 个实验 + 5 个项目 | ### 课程目标 | 层级 | 目标数量 | 成果 | |------|--------------|---------| | 入门事件 | 10 | 建立命令流畅度的初始信心 | | 基础实验 | 30 | 覆盖所有考纲领域的扎实 CKA 基础 | | 高级事件 | 24 | 在现实约束下的多信号诊断 | | 角色路径任务 | 16 | SRE、平台、安全、DevOps 专业化 | | 毕业项目 | 5 | 达到作品集级别的端到端 Kubernetes 项目 | ### 角色路径(新增) - SRE 路径:可观测性、SLO、告警、事件指挥、事后复盘 - 平台工程师路径:集群运维、成本控制、多租户架构 - 安全工程师路径:RBAC、策略、secrets、供应链和审计控制 - DevOps/GitOps 路径:发布策略、渐进式交付、回滚治理 ### 掌握程度模型与进阶规则 学习者通过能力证明解锁新内容,而不仅仅是完成学习。 #### 技能图谱节点 - 命令流畅度 - 调试工作流 - 工作负载可靠性 - 网络诊断 - 存储可靠性 - 安全加固 - 可观测性推理 - 交付安全性 - 集群运维 #### 解锁逻辑(默认) 1. 基础轨道立即解锁 2. 高级轨道需要: - 基础轨道完成度达到 70% 以上 - 已完成课程的平均测验成绩至少达到 60% 3. 角色路径需要: - 完成一个高级轨道 - 至少保存 3 份事后回顾报告 4. 毕业项目需要: - 完成两条角色路径 - 至少 5 个技能节点的掌握程度得分 >= 75 ### 评分模型 总分结合了速度、正确性和学习行为。 $$ Mastery = 0.35C + 0.20S + 0.20R + 0.15Q + 0.10L $$ 其中: - $C$ = 命令正确性得分 - $S$ = 场景完成可靠性得分 - $R$ = 事后回顾报告质量/完成度得分 - $Q$ = 测验理解得分 - $L$ = 长期记忆得分(重复挑战差值) ### 作品集产出(必备) 每个高级课程和毕业项目都应产出相关制品: - 事件简报 + 时间线 - 根本原因分析 - 事后回顾答案 - 行动项 - 建议的运维手册片段 - 最终得分 + 用时 ### 12 周发布计划 | 周 | 交付重点 | 退出标准 | |------|----------------|---------------| | 1 | 将入门事件从 5 个扩展到 8 个 | 新事件可实现端到端游玩 | | 2 | 新增 2 个入门事件(共 10 个) | 入门引导完成 | | 3 | 新增 8 个基础实验(A 阶段) | 课程 + 检查 + 回顾测验上线 | | 4 | 新增 8 个基础实验(B 阶段) | 路线图分支中新增共 16 个实验 | | 5 | 新增 8 个基础实验(C 阶段) | 新增共 24 个实验 | | 6 | 新增 6 个基础实验 + 优化打磨 | 完成 30 个基础实验 | | 7 | 构建角色路径框架 + 进度规则 | 路径 UI + 解锁门禁功能可用 | | 8 | 发布 SRE + 平台路径 | 8 个角色任务上线 | | 9 | 发布安全 + DevOps 路径 | 完成 16 个角色任务 | | 10 | 实施技能图谱 + 掌握程度评分 | 个人资料中可见节点得分 | | 11 | 构建前 3 个毕业项目 | 项目评分标准 + 制品导出 | | 12 | 构建最后 2 个毕业项目 + 发布准备 | 5 个毕业项目 + 达到发布就绪状态 | ### 成功指标 - 7 天留存率 > 35% - 课程到课程的完成率 > 60% - 高级轨道完成率 > 活跃学习者的 30% - 30 天内平均掌握程度得分提升 +20 分 - 每位活跃学习者每周至少导出 1 个作品集产出 ### KubeCrash 完成定义 - 60+ 个实验上线且验证稳定 - 4 条带有进阶门禁的角色路径 - 5 个具有完整评分标准的毕业项目 - UI 中可见技能图谱和掌握程度得分 - 可导出的学习者作品集产出 ### 改造执行文档 - [执行计划](docs/revamp/EXECUTION_PLAN.md) - [Sprint 待办事项](docs/revamp/SPRINT_BACKLOG.md) - [实验规范模板](docs/revamp/LAB_SPEC_TEMPLATE.md) - [毕业项目评分标准](docs/revamp/CAPSTONE_RUBRIC.md) ## 技术栈 | 层级 | 技术 | |-------|-----------| | 前端 | React 18, Vite, Zustand, xterm.js | | 后端 | FastAPI, Uvicorn, WebSockets, Pydantic | | 模拟 | 自定义 kubectl 解析器 + 每关状态机 | | 持久化 | localStorage(客户端进度) | ## 项目结构 ``` KubeCrash/ ├── backend/ │ ├── main.py # FastAPI app + WebSocket handler │ ├── engine/ # Kubectl parser + scenario engine │ ├── scenarios/ # Per-level incident definitions │ └── routers/ # HTTP endpoints (leaderboard, session) └── frontend/ └── src/ ├── components/ # LearningJourney, Terminal, LevelSelect ├── hooks/ # useTerminal (xterm lifecycle) ├── store/ # Zustand game state └── utils/ # kubectlParser (semantic matching) ``` ## 贡献 欢迎提交 Pull requests。对于重大更改,请先开启一个 issue,以便我们就范围和设计达成一致。 ## 许可证 MIT
标签:AV绕过, CKA培训, FastAPI, React, Syscalls, 故障排查, 教育平台, 自定义脚本, 运维, 逆向工具