首页 / 开源热榜 / k8squest / 使用教程

K8sQuest 教程:先把 kubeconfig 边界守住,再开始闯关

更新于 2026-09-23 · NGJOO AI 实验室 · 约 11 分钟

K8sQuest 把 Kubernetes 排障做成 5 个世界、50 个任务。它不是网页模拟器:任务真正落在本机 kind 集群里,玩家在第二个终端用 kubectl 修复 Pod、Deployment、Service、网络和存储问题。

截至 2026-09-23,官方没有 GitHub release 或 tag。安装说明跟随 main 变化;用于课程或团队培训时,应记录具体 commit。

1. 游戏引擎和集群怎样配合

install.sh 创建 Python 虚拟环境、安装 requirements.txt、建立名为 k8squest 的 kind 集群,并切换到 kind-k8squest context。engine 负责布置任务、检查状态和记录进度,worlds 保存各关内容。

游戏终端提供 check、hint、solution、validate、skip、reset 和 quit。实际修复仍由你在另一个终端执行 kubectl,因而能练到对象状态、日志和事件的真实排查顺序。

2. 安装前先检查这六项

docker info
kind version
kubectl version --client
python3 --version   # 需要 3.9+
jq --version
bash --version

Linux 与 macOS 可按官方路径运行脚本;Windows 要使用 Git Bash,并先启动采用 WSL2 后端的 Docker Desktop。PowerShell 和 CMD 不是 README 给出的支持入口。

git clone https://github.com/Manoj-engineer/k8squest.git
cd k8squest
git rev-parse HEAD
sed -n '1,220p' install.sh
./install.sh
kubectl config current-context
./play.sh

最后一条检查应返回 kind-k8squest。如果不是,先停止,不要继续执行关卡命令。

3. RBAC 有边界,也有盲区

官方 RBAC 为 k8squest-player 创建 namespace Role。它允许在 k8squest 内操作 Pod、Secret、Service、Deployment、Job 和网络策略等对象;节点、命名空间等集群资源主要是只读。这个设计能减少误伤,却不等于沙箱。

安装脚本仍然连接 Docker daemon、下载 Python 包与 kind 镜像,还会修改当前 kubeconfig context。机器上若同时保存生产集群凭据,建议改用专用本机账户或可丢弃虚拟机,并在每次练习前检查 context。

4. 卡关、重置与清理

先用 check 看实时资源,再逐级打开 hint;需要重新开始时用游戏内 reset,或运行 python3 engine/reset.py <level>all 会重置全部进度与关卡资源,执行前同样核对 context。

仓库没有付费、订阅、充值或转售入口。

验证边界:本轮只核对官方 README、install.sh、requirements.txt、RBAC 清单和 Releases 页面。没有运行安装脚本,没有拉取镜像,没有创建集群,也没有执行 kubectl;本文属于 docs-only。

5. 与 kind 的区别

Kubernetes SIGs 的 kind负责用 Docker 节点建立本地集群,本身不提供闯关内容。K8sQuest 在 kind 之上增加故障任务、提示、校验、复盘和进度。

只需要 CI 或开发用本地集群时,直接使用 kind;需要循序练习 kubectl 排障时,再加入 K8sQuest。

这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。

先判断这个项目是否适合你

适合谁用

适合在可丢弃的本地集群中练习 kubectl 和常见故障定位,也可用作课堂演示。它不是生产集群演练器;已有 kubeconfig 中包含真实集群的人,应先备份配置并核对当前 context。

采用建议

保留。它没有商业漏斗,教程价值在于把安装脚本对 Docker、网络和 kubeconfig 的实际影响说透,并把练习严格放在 kind-k8squest 中。

原教程未展开的系统信息

架构与数据流

install.sh 建立 Python venv、安装 requirements.txt、创建 kind 集群并应用 namespace/RBAC;engine 负责关卡状态、校验与终端界面;worlds 保存 5 组任务定义;玩家的 kubectl 操作直接进入 kind-k8squest。进度保存在本地,reset.py 可重置单关或全部关卡。

官方与对比资料

以下链接用于核对版本、安装方式、功能边界和同类差异。

常见问题

K8sQuest 会操作我现有的 Kubernetes 集群吗?

install.sh 会创建名为 k8squest 的 kind 集群,并把当前 context 切到 kind-k8squest。开始前仍应备份 kubeconfig,运行后再用 kubectl config current-context 核对,不能只依赖脚本提示。

K8sQuest 的 RBAC 能保证绝对安全吗?

不能。RBAC 把常用写操作限制在 k8squest namespace,并让部分集群资源只读,但安装仍能访问 Docker daemon 和 kubeconfig。最稳妥的做法是在专用本机账户或可丢弃虚拟机里使用。

Windows 可以直接在 PowerShell 里安装 K8sQuest 吗?

官方要求 Windows 使用 Git Bash,并先启动采用 WSL2 后端的 Docker Desktop。PowerShell 和 CMD 不是 README 给出的支持路径。

K8sQuest 卡在某一关时怎样重来?

游戏内可使用 reset;仓库还提供 python3 engine/reset.py 加关卡编号或 all 的重置方式。重置会改动练习 namespace 中的资源,先确认 context 是 kind-k8squest。

K8sQuest 和 kind 是同一种工具吗?

不是。kind 负责创建本地 Kubernetes 集群;K8sQuest 使用 kind 集群承载 50 个故障任务,并加上提示、校验、讲解和进度系统。