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




## 什么是 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, 故障排查, 教育平台, 自定义脚本, 运维, 逆向工具