首页 / 文章 / 将 Kubernetes 移植到浏览器
← 返回
AI技术

将 Kubernetes 移植到浏览器

✍️ zhirenhun 📅 2026/7/1 👁 87 阅读 ⏱ 5 分钟
将 Kubernetes 移植到浏览器

将 Kubernetes 移植到浏览器

作者成功将 Kubernetes 的部分核心功能移植到了浏览器中运行,生成了近 10 万行 TypeScript 代码,涉及 552 次提交和 629 个文件,耗时 2 个月。

项目动机

Kubernetes 已经成为云原生计算的事实标准,但它的学习曲线非常陡峭。作者希望降低 K8s 学习门槛,让开发者在浏览器中就能体验完整的 K8s 集群——不用安装 Minikube、Kind,不需要云服务账号。

此外,在浏览器中运行 K8s 还有以下价值:

  • 测试环境:提交 PR 前可以在本地浏览器预演
  • 教育工具:K8s 入门教学无需复杂环境配置
  • 开发调试:快速验证资源配置和调度行为

技术实现

核心挑战

Kubernetes 是用 Go 编写的,无法直接在浏览器中运行。作者采取了以下策略:

  1. 将 K8s API 服务器的核心逻辑重写为 TypeScript
  2. 使用 WebAssembly 运行关键的原生组件(etcd 模拟、容器运行时模拟)
  3. 实现轻量级的 Pod 调度器(在浏览器中模拟调度逻辑)

项目结构

  • API Server:实现了 Kubernetes API 的核心 REST 接口(Pod、Deployment、Service 等)
  • Controller Manager:关键控制循环(ReplicaSet、Deployment 控制器)
  • Scheduler:基于 node 资源的调度模拟
  • kubelet 模拟:用 Web Worker 模拟节点状态上报
  • etcd 模拟:基于 IndexedDB 的键值存储

TypeScript 实现要点

Kubernetes 的 core API 类型通过 OpenAPI spec 自动生成 TypeScript 接口定义。核心资源(Pod、Service、Deployment 等)的结构完全遵循原版 K8s API 规范。

Watch API 通过 WebSocket 模拟实现。


功能与限制

已实现:

  • 创建/管理 Pod、Deployment、Service
  • 水平自动扩缩容
  • ConfigMap/Secret 管理
  • kubectl 兼容接口

暂未实现:

  • 真正的容器运行时(用模拟替代)
  • 网络插件(CNI)
  • 持久化存储(PV/PVC)
  • 多节点集群(限于单节点模拟)

部署和使用

项目开源(webernetes),访问 GitHub 仓库即可在线体验。浏览器中运行无需任何依赖,打开页面即可创建一个"集群"。


总结

将 Kubernetes 移植到浏览器是一次有趣的工程尝试,证明了现代浏览器(WebAssembly + Web Worker + IndexedDB)的能力边界远超想象。虽然不能取代生产环境的 K8s,但在学习、测试和演示场景中提供了极低的入门门槛。

原文出处:https://ngrok.com/blog/i-ported-kubernetes-to-the-browser

🧑‍💻

zhirenhun

一个热爱技术的程序员,喜欢分享前沿AI知识和开发经验。

Kubernetes 浏览器 WebAssembly 云原生 TypeScript
← 上一篇
Claude Code 的隐写标记:你的 AI 编程助手可能在悄悄打小报告
下一篇 →
Box3D 发布:一个基于 Box2D 的开源 3D 物理引擎

📌 相关推荐

结构化输出 vs 工具使用 vs 预填充:2026年从Claude获取JSON
2026/7/11
在AWS Bedrock上构建生产级AI代理——值得关注的架构与代码决策
2026/7/11
如何为你的AI代理构建评估框架(确保其在生产环境中不崩溃)
2026/7/11
← 返回文章列表