主页

KWOK (Kubernetes WithOut Kubelet) #

KWOK 发音为 /kwɔk/

KWOK 是一个工具包,可以在几秒钟内设置一个包含数千个节点的集群。在场景中,所有节点都被模拟为像真实的节点一样,因此整体方法采用了非常低的资源占用,你可以在笔记本电脑上轻松使用。

什么是 KWOK? #

KWOK 代表 Kubernetes WithOut Kubelet。到目前为止,它提供了两个工具

  • kwok 是此项目的基石,负责模拟假节点、Pod 和其他 Kubernetes API 资源的生命周期。
  • kwokctl 是一个 CLI 工具,旨在简化集群的创建和管理,节点由 kwok 模拟。

kubemark有什么区别 #

kubemark 是一个实际上并不运行容器的 kubelet。它的行为与 kubelet 完全相同,这意味着模拟大量节点和 Pod 需要大量的内存。

然而,kwok 仅模拟节点的行为。因此,它可以使用极少的内存模拟大量节点和 Pod。

kind 有什么区别 #

kind 在 Docker 中运行 Kubernetes,创建真正的集群。如果你将 nginx Pod 部署到 kind 集群,你可以 curl 到其 IP 地址并获取包含其 HTML 页面的 HTTP 响应。但在 KWOK 集群中,你什么都得不到,因为 Pod 不是真实的。

在某些情况下,你可以将 kwokctl 用作 kind 的替代品,在这些情况下,你无需实际运行任何 Pod。

为什么选择 KWOK? #

  • 轻量级:你可以在笔记本电脑上模拟数千个节点,而不会显著消耗 CPU 或内存资源。目前,KWOK 可以轻松可靠地维护 1k 个节点和 100k 个 Pod。
  • 快速:你可以几乎立即创建和删除集群和节点,而无需等待启动或预配。目前,KWOK 每秒可以创建 20 个节点或 Pod。
  • 兼容性:KWOK 与符合 Kubernetes API 的任何工具或客户端配合使用,例如 kubectl、helm、kui 等。
  • 可移植性:KWOK 没有特定的硬件或软件要求。一旦安装了 Docker/Podman/Nerdctl,你就可以使用预构建的镜像运行它。或者,也可以为所有平台提供二进制文件,并且可以轻松安装。
  • 灵活性:你可以配置不同的节点类型、标签、污点、容量、条件等,并且可以配置不同的 Pod 行为、状态等,以测试不同的场景和边缘情况。

入门 #

下面的动画展示了一个测试过程,用于使用最新版本的 kwok/kwokctl

欢迎开始使用安装、基本用法、自定义配置以及对 KWOK 的贡献

kwokctl 运行时支持矩阵 #

运行时表示 kwokctl 将使用哪个介质来启动集群

\linux/

amd64
linux/

arm64
darwin/

amd64
darwin/

arm64
windows/

amd64
windows/

arm64
二进制文件 ⭐️🟢🔵🟢🟢🟢🟣
docker ⭐️🟢🔵🔵🔵🟣🟣
podman ⭐️🟢🔵🔵🔵🟣🟣
nerdctl🟢🔵🔴🔴🔴🔴
lima ⚠️🟣🟣🟣🟣🔴🔴
finch ⚠️🔴🔴🟣🟣🟣🟣
kind🟢🔵🔵🔵🟣🟣
kind-podman🟢🔵🔵🔵🟣🟣
kind-nerdctl ⚠️🟣🟣🔴🔴🔴🔴
kind-lima ⚠️🟣🟣🟣🟣🔴🔴
kind-finch ⚠️🔴🔴🟣🟣🟣🟣
  • ⭐️ 推荐
  • ⚠️ 正在进行中
  • 🟢 CI 支持和测试
  • 🔵 手动支持和测试
  • 🟣 支持但未完全测试
  • 🔴 尚未支持

社区 #

参见我们自己的 贡献者指南 和 Kubernetes 社区页面

参与 #

如果您有兴趣参与与 KWOK 相关的未来讨论或开发,有几种参与方式

行为准则 #

参与 Kubernetes 社区受 Kubernetes 行为准则 管辖。