1000节点集群,5秒搭建好
时间:2023-08-04 06:28:24来源:哔哩哔哩

你是否曾想过在几秒钟内搭建一个由数千个节点构成的集群,如何用少量资源模拟真实的节点, 如何不耗费太多基础设施就能大规模地测试你的 Kubernetes 控制器?

如果你曾有过这些想法,那你可能会对 KWOK 有兴趣。KWOK 是一个工具包,能让你在几秒钟内创建数千个节点构成的集群。


(资料图片仅供参考)

什么是 KWOK?

KWOK 是 Kubernetes WithOut Kubelet 的缩写,即没有 Kubelet 的 Kubernetes。到目前为止,KWOK 提供了两个工具:

• kwok是这个项目的基石,负责模拟伪节点、Pod 和其他 Kubernetes API 资源的生命周期。

• kwokctl是一个 CLI 工具,设计用于简化创建和管理由 kwok模拟节点组成的集群。

为什么使用 KWOK?

KWOK 具有下面几点优势:

• 速度:你几乎可以实时创建和删除集群及节点,无需等待引导或制备过程

• 兼容性:KWOK 能够与兼容 Kubernetes API 的所有工具或客户端(例如 kubectl、helm、kui)协同作业。

• 可移植性:KWOK 没有特殊的软硬件要求。一旦安装了 Docker 或 Nerdctl,你就可以使用预先构建的镜像来运行 KWOK。另外,二进制文件包适用于所有平台,安装简单。

• 灵活:你可以配置不同类型的节点、标签、污点、容量、状况等,还可以配置不同的 Pod 行为和状态来测试不同的场景和边缘用例。

• 性能:你在自己的笔记本电脑上就能模拟数千个节点,无需大量消耗 CPU 或内存资源。

使用场景是什么?

KWOK 可用于各种用途:

• 学习:你可以使用 KWOK 学习 Kubernetes 概念和特性,无需顾虑资源浪费或其他后果。

• 开发:你可以使用 KWOK 为 Kubernetes 开发新特性或新工具,无需接入真实的集群,也不需要其他组件。

• 测试

• 你可以衡量自己的应用程序或控制器在使用不同数量节点和 Pod 时的扩缩表现如何。

• 你可以用不同的资源请求或限制创建大量 Pod 或服务,在集群上营造高负载的环境

• 你可以通过更改节点状况或随机删除节点来模拟节点故障或网络分区

• 你可以通过启用不同的特性门控或 API 版本来测试控制器如何与其他组件交互

有哪些限制?

KWOK 并非试图完整替代其他什么。当然也有一些限制需要你多加注意:

• 功能性:KWOK 不是 kubelet。KWOK 在 Pod 生命周期管理、卷挂载和设备插件方面所展现的行为与 kubelet 不同。 KWOK 的主要功能是模拟节点和 Pod 状态的更新。

• 准确性:需要重点注意 KWOK 还不能确切地反映各种工作负载或环境下真实节点的性能或行为。KWOK 只能使用一些公式来逼近真实的节点行为。

• 安全性KWOK 没有对模拟的节点实施任何安全策略或安全机制。KWOK 假定来自 kube-apiserver 的所有请求都是经过授权且是有效的。

kwok的主要组件是一个Kubernetes控制器,它模拟集群资源,包括节点和pod。这可以在现有的 Kubernetes 集群(即 Kind)上完成,或者你可以使用提供的 kwokctl 工具创建类似集群。

KWOK入门

该项目相当新,可以使用Homebrew进行安装。

如果你不使用 Homebrew,那么你将需要执行几个步骤。

安装kwokctl

安装kwok

这将在你的本地计算机上安装两个二进制文件:

• kwokctl — 也是一个 CLI 管理,允许你使用 Docker 建立独立集群(类似于 Kind 集群)。

• kwok — 负责模拟集群及其资源的资源控制器。

创建集群

要在本地模拟假集群,请确保你的 Docker 守护进程已启动并正在运行。然后使用以下命令创建集群

这将下载并运行必要的 Docker 镜像来设置新集群。你可以通过以下方式验证这一点:

验证集群是否已创建:

启动资源控制器

接下来,你需要启动 kwok 资源控制器。你可以通过在单独的终端中运行 kwok 二进制文件(如此处演示)来完成此操作。你还可以在集群中运行控制器(有关详细信息,请参阅 kwok 文档)。

上面的命令启动 kwok 资源控制器,并指定该控制器将所有节点作为 Kwok 节点进行管理。由于该集群不与另一个集群共享,因此这是有道理的。否则,你需要添加其他参数来过滤 Kwok 节点和资源。

添加节点

接下来,使用节点定义创建一个文件,如下所示。你可以将任意数量的节点添加到你想要模拟的 YAML 文件中。

接下来,我们需要将节点应用到集群中。执行此操作之前,请确保你使用正确的集群上下文:

然后,使用 kubectl 工具应用节点:

成功应用 YAML 后,你可以在集群中看到你的节点:

部署应用

现在你已经有了一个运行着多个假节点的 kwok 集群,你可以向其部署应用,就像它是一个真正的集群一样

定义具有大量副本的Deployment。

和以前一样,你可以根据需要添加任意数量的虚假资源。接下来,应用 YAML 文件,如下所示:

几秒钟之内,你将看到你的假资源出现在集群中:

总结

相比于kubemark,kubemark是一个 kubelet,实际上并不运行容器。它的行为与 kubelet 完全相同,这意味着模拟大量节点和 pod 需要大量内存。然而,kwok只是模拟节点的行为。因此,它可以使用很少的内存来模拟大量节点和 Pod

相比于kind,kind在 Docker 中运行 Kubernetes,创建一个真正的集群。kwokctl在某些不需要实际运行任何 pod 的场景中,可以用作 kind的替代方案

简而言之,Kwok 是云原生生态系统的一个重要补充,能让你在几秒钟内创建数千个节点构成的集群,用来测试集群和应用的性能是如此地丝滑和简便

行万里路,此处相逢,共话云原生之道。

偶逗趣事,明月清风,与君同坐。

琦彦,在云原生百宝箱公众号等你,与你一起探讨应用迁移,GitOps,二次开发,解决方案,CNCF生态,以及生活况味。

标签:

生活指南
  • 春兰股份:公司没有向其他领域进行投资的计划

    同花顺金融研究中心8月3日讯,有投资者向春兰股份提问,公司有现金约10

  • 银行业7月罚单出炉!涉房业务仍是监管重点

    进入2023年下半年,监管整治银行业乱象的力度依然不减。  根据同花顺

  • 韩旭回顾大运会1/4决赛:开局我没有做好准备 接下来会认真总结

    昨晚结束的一场大运会1 4决赛,中国女篮84比64战胜了巴西女篮。赛后韩

  • 五部门:积极推动一批链上中小微企业入板培育

    五部门:积极推动一批链上中小微企业入板培育,融资,信贷,增信,银行业,

  • 艾德生物上半年净利润同比增长超四成

    艾德生物上半年净利润同比增长超四成,肿瘤,病理,医学,艾德生物,公司股东

  • 过会价123900元/㎡,高阳新里约68-140㎡多层+联排户型七批次入市在即

    上海城投全新力作建面约68-140㎡多层+联排风貌别墅预计最快三季度上市

  • 江西运动员熊亚瑄夺得金牌

    8月1日,成都第31届世界大学生夏季运动会射击项目迎来了倒数第二个比赛

  • “福建土楼”申遗成功十五年:在保护与活化中传承

    乐山新闻网站是由市委宣传部主管的全民所有制事业单位,乐山地区唯一有

  • 中国(山东)—乌兹别克斯坦投资、工业、贸易与旅游推介会在济南举行 深化丝路合作

    中国(山东)—乌兹别克斯坦投资、工业、贸易与旅游推介会在济南举行深

  • 刘凌云离任山西证券裕享增强发起式

    刘凌云离任山西证券裕享增强发起式---中国经济网北京7月7日讯今日,山

  • 目标“世界最快”:El Capitan超算部署AMD Instinct MI300计算卡

    目标“世界最快”:ElCapitan超算部署AMDInstinctMI300计算卡

  • 张之臻五盘落败,鲁德遭爆冷,王欣瑜止步次轮,中国两对双打晋级

    在当天进行的第二轮一场焦点战中,4号种子、挪威名将鲁德在前三盘2-1领

  • 元库资产新时代

    2021年以来,面对严峻复杂的国际形势和国内疫情散发等多重考验,我

  • 习近平:维护地区和平,保障共同安全 当前视讯

    国家主席习近平7月4日下午在北京以视频方式出席上海合作组织成员国元首

  • 古代圣旨内容是什么?古代的圣旨都是让谁来宣读? 世界观天下

    古代的圣旨都是让谁来宣读?在古代,诏书是由专门的人来宣读的,一般

  • 每日快讯!如何申请大连购房贷款?购房贷款利率的要素有什么?

    如何申请大连购房贷款?1 现场申请借款人可以亲临各大银行等金融机

  • 民生
    • 叶县“四位一体”创业扶持为大学生就业开辟“新赛道”

    • 康辰药业:公司一直严格按照相关法律法规的规定履行信息披露义务,信息披露真实、准确,不存在财务造假

    • 怀化城发集团30亿元私募债更新为“已反馈”

    • 从放牛娃到“牛司令”,阳新养牛大户见证乡村巨变